Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

blackfin: pinctrl-adi2: Enable PINCTRL framework for BF54x and BF60x.

- Remove unused macro MAX_RESOURCES
- Override blackfin legacy peripheral pinmux request and free APIs by
devm_pinctrl_get_select_default() to init the peripheral portmux setting.

v3-chagnes:
- Move pinctrl soc data out of blackfin arch folder.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Acked-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Sonic Zhang and committed by
Linus Walleij
741ecef6 7330e345

+20 -5
+4
arch/blackfin/Kconfig
··· 324 324 def_bool y 325 325 depends on (BF51x || BF52x || BF53x || BF538 || BF539 || BF561) 326 326 327 + config PINCTRL 328 + def_bool y 329 + depends on BF54x || BF60x 330 + 327 331 config MEM_MT48LC64M4A2FB_7E 328 332 bool 329 333 depends on (BFIN533_STAMP)
+16 -1
arch/blackfin/include/asm/portmux.h
··· 17 17 #define P_MAYSHARE 0x2000 18 18 #define P_DONTCARE 0x1000 19 19 20 + #ifdef CONFIG_PINCTRL 21 + #include <asm/irq_handler.h> 20 22 23 + #define gpio_pint_regs bfin_pint_regs 24 + #define adi_internal_set_wake bfin_internal_set_wake 25 + 26 + #define peripheral_request(per, label) 0 27 + #define peripheral_free(per) 28 + #define peripheral_request_list(per, label) \ 29 + (pdev ? (IS_ERR(devm_pinctrl_get_select_default(&pdev->dev)) \ 30 + ? -EINVAL : 0) : 0) 31 + #define peripheral_free_list(per) 32 + #else 21 33 int peripheral_request(unsigned short per, const char *label); 22 34 void peripheral_free(unsigned short per); 23 35 int peripheral_request_list(const unsigned short per[], const char *label); 24 36 void peripheral_free_list(const unsigned short per[]); 37 + #endif 25 38 26 - #include <asm/gpio.h> 39 + #include <linux/err.h> 40 + #include <linux/pinctrl/pinctrl.h> 27 41 #include <mach/portmux.h> 42 + #include <linux/gpio.h> 28 43 29 44 #ifndef P_SPORT2_TFS 30 45 #define P_SPORT2_TFS P_UNDEF
-2
arch/blackfin/mach-bf548/include/mach/portmux.h
··· 7 7 #ifndef _MACH_PORTMUX_H_ 8 8 #define _MACH_PORTMUX_H_ 9 9 10 - #define MAX_RESOURCES MAX_BLACKFIN_GPIOS 11 - 12 10 #define P_SPORT2_TFS (P_DEFINED | P_IDENT(GPIO_PA0) | P_FUNCT(0)) 13 11 #define P_SPORT2_DTSEC (P_DEFINED | P_IDENT(GPIO_PA1) | P_FUNCT(0)) 14 12 #define P_SPORT2_DTPRI (P_DEFINED | P_IDENT(GPIO_PA2) | P_FUNCT(0))
-2
arch/blackfin/mach-bf609/include/mach/portmux.h
··· 7 7 #ifndef _MACH_PORTMUX_H_ 8 8 #define _MACH_PORTMUX_H_ 9 9 10 - #define MAX_RESOURCES MAX_BLACKFIN_GPIOS 11 - 12 10 /* EMAC RMII Port Mux */ 13 11 #define P_MII0_MDC (P_DEFINED | P_IDENT(GPIO_PC6) | P_FUNCT(0)) 14 12 #define P_MII0_MDIO (P_DEFINED | P_IDENT(GPIO_PC7) | P_FUNCT(0))