pinctrl: Add SPEAr pinctrl support
Subsystems (5)
v3 cover pinctrl: Add SPEAr pinctrl support
This patchset replaces existing pinmux framework for SPEAr family of SoC with generic pinctrl framework.
@Linus: I would need your Acks on it, after which i will take it through ARM-SoC tree, as it has dependency on that.
V2->V3
- Add DT bindings for pinmux mappings for SPEAr
- Pass pin maps from dtb instead of mach-spear3xx/spear3*0.c files
- use of_iomap() instead of devm_ioremap() and platform_get_resource()
V1->V2
- Earlier padmux support removed
- single patch for spear pinctrl drivers broken into two: one for spear and other for 3xx family
- add pinctrl support in arch/arm/mach-spear3xx/ and dts files
- pinctrl-spear.* made as library instead of platform driver
- pinctrl-spear300, spear310, spear320 are now platform drivers
- other minor fixes.
Viresh Kumar (4):
SPEAr: Remove existing padmux support for SPEAr
pinctrl: Add SPEAr pinctrl drivers
pinctrl: Add SPEAr3xx pinctrl drivers
SPEAr3xx: Add pinctrl support for boards
.../devicetree/bindings/pinctrl/pinctrl_spear.txt | 48 + MAINTAINERS | 23 +- arch/arm/boot/dts/spear300-evb.dts | 38 + arch/arm/boot/dts/spear300.dtsi | 5 + arch/arm/boot/dts/spear310-evb.dts | 61 + arch/arm/boot/dts/spear310.dtsi | 5 + arch/arm/boot/dts/spear320-evb.dts | 61 + arch/arm/boot/dts/spear320.dtsi | 7 +- arch/arm/mach-spear3xx/Kconfig | 3 + arch/arm/mach-spear3xx/include/mach/generic.h | 128 - arch/arm/mach-spear3xx/spear300.c | 389 +--- arch/arm/mach-spear3xx/spear310.c | 161 +- arch/arm/mach-spear3xx/spear320.c | 403 +--- arch/arm/mach-spear3xx/spear3xx.c | 425 --- arch/arm/plat-spear/Kconfig | 1 + arch/arm/plat-spear/Makefile | 2 +- arch/arm/plat-spear/include/plat/padmux.h | 92 - arch/arm/plat-spear/padmux.c | 164 - drivers/pinctrl/Kconfig | 2 + drivers/pinctrl/Makefile | 2 + drivers/pinctrl/spear/Kconfig | 34 + drivers/pinctrl/spear/Makefile | 7 + drivers/pinctrl/spear/pinctrl-spear.c | 349 ++ drivers/pinctrl/spear/pinctrl-spear.h | 142 + drivers/pinctrl/spear/pinctrl-spear300.c | 708 ++++ drivers/pinctrl/spear/pinctrl-spear310.c | 431 +++ drivers/pinctrl/spear/pinctrl-spear320.c | 3468 ++++++++++++++++++++ drivers/pinctrl/spear/pinctrl-spear3xx.c | 588 ++++ drivers/pinctrl/spear/pinctrl-spear3xx.h | 92 + 29 files changed, 6063 insertions(+), 1776 deletions(-) create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl_spear.txt delete mode 100644 arch/arm/plat-spear/include/plat/padmux.h delete mode 100644 arch/arm/plat-spear/padmux.c create mode 100644 drivers/pinctrl/spear/Kconfig create mode 100644 drivers/pinctrl/spear/Makefile create mode 100644 drivers/pinctrl/spear/pinctrl-spear.c create mode 100644 drivers/pinctrl/spear/pinctrl-spear.h create mode 100644 drivers/pinctrl/spear/pinctrl-spear300.c create mode 100644 drivers/pinctrl/spear/pinctrl-spear310.c create mode 100644 drivers/pinctrl/spear/pinctrl-spear320.c create mode 100644 drivers/pinctrl/spear/pinctrl-spear3xx.c create mode 100644 drivers/pinctrl/spear/pinctrl-spear3xx.h
Signature · 1 line
1.7.9
PATCH v3 1/4 SPEAr: Remove existing padmux support for SPEAr
We must use pinctrl framework instead of defining per SoC pinmux drivers. This patch removes existing padmux support present for SPEAr platform.
--- arch/arm/mach-spear3xx/include/mach/generic.h | 128 -------- arch/arm/mach-spear3xx/spear300.c | 389 +---------------------- arch/arm/mach-spear3xx/spear310.c | 161 +---------- arch/arm/mach-spear3xx/spear320.c | 403 +----------------------- arch/arm/mach-spear3xx/spear3xx.c | 425 ------------------------- arch/arm/plat-spear/Makefile | 2 +- arch/arm/plat-spear/include/plat/padmux.h | 92 ------ arch/arm/plat-spear/padmux.c | 164 ---------- 8 files changed, 4 insertions(+), 1760 deletions(-) delete mode 100644 arch/arm/plat-spear/include/plat/padmux.h delete mode 100644 arch/arm/plat-spear/padmux.c
arch/arm/mach-spear3xx/include/mach/generic.h +0 -128
@@ -20,7 +20,6 @@#include <linux/amba/bus.h> #include <asm/mach/time.h> #include <asm/mach/map.h> -#include <plat/padmux.h> /* spear3xx declarations */ /*
@@ -43,147 +42,20 @@ void __init spear3xx_dt_init_irq(void);void spear_restart (char ,const char *); -/* pad mux declarations */ -#define PMX_FIRDA_MASK (1 << 14) -#define PMX_I2C_MASK (1 << 13) -#define PMX_SSP_CS_MASK (1 << 12) -#define PMX_SSP_MASK (1 << 11) -#define PMX_MII_MASK (1 << 10) -#define PMX_GPIO_PIN0_MASK (1 << 9) -#define PMX_GPIO_PIN1_MASK (1 << 8) -#define PMX_GPIO_PIN2_MASK (1 << 7) -#define PMX_GPIO_PIN3_MASK (1 << 6) -#define PMX_GPIO_PIN4_MASK (1 << 5) -#define PMX_GPIO_PIN5_MASK (1 << 4) -#define PMX_UART0_MODEM_MASK (1 << 3) -#define PMX_UART0_MASK (1 << 2) -#define PMX_TIMER_3_4_MASK (1 << 1) -#define PMX_TIMER_1_2_MASK (1 << 0) - -/* pad mux devices */ -extern struct pmx_dev spear3xx_pmx_firda; -extern struct pmx_dev spear3xx_pmx_i2c; -extern struct pmx_dev spear3xx_pmx_ssp_cs; -extern struct pmx_dev spear3xx_pmx_ssp; -extern struct pmx_dev spear3xx_pmx_mii; -extern struct pmx_dev spear3xx_pmx_gpio_pin0; -extern struct pmx_dev spear3xx_pmx_gpio_pin1; -extern struct pmx_dev spear3xx_pmx_gpio_pin2; -extern struct pmx_dev spear3xx_pmx_gpio_pin3; -extern struct pmx_dev spear3xx_pmx_gpio_pin4; -extern struct pmx_dev spear3xx_pmx_gpio_pin5; -extern struct pmx_dev spear3xx_pmx_uart0_modem; -extern struct pmx_dev spear3xx_pmx_uart0; -extern struct pmx_dev spear3xx_pmx_timer_3_4; -extern struct pmx_dev spear3xx_pmx_timer_1_2; - -#if defined(CONFIG_MACH_SPEAR310 ) || defined(CONFIG_MACH_SPEAR320 ) -/* padmux plgpio devices */ -extern struct pmx_dev spear3xx_pmx_plgpio_0_1; -extern struct pmx_dev spear3xx_pmx_plgpio_2_3; -extern struct pmx_dev spear3xx_pmx_plgpio_4_5; -extern struct pmx_dev spear3xx_pmx_plgpio_6_9; -extern struct pmx_dev spear3xx_pmx_plgpio_10_27; -extern struct pmx_dev spear3xx_pmx_plgpio_28; -extern struct pmx_dev spear3xx_pmx_plgpio_29; -extern struct pmx_dev spear3xx_pmx_plgpio_30; -extern struct pmx_dev spear3xx_pmx_plgpio_31; -extern struct pmx_dev spear3xx_pmx_plgpio_32; -extern struct pmx_dev spear3xx_pmx_plgpio_33; -extern struct pmx_dev spear3xx_pmx_plgpio_34_36; -extern struct pmx_dev spear3xx_pmx_plgpio_37_42; -extern struct pmx_dev spear3xx_pmx_plgpio_43_44_47_48; -extern struct pmx_dev spear3xx_pmx_plgpio_45_46_49_50; -#endif -/* spear300 declarations */ #ifdef CONFIG_MACH_SPEAR300 -/* pad mux modes */ -extern struct pmx_mode spear300_nand_mode; -extern struct pmx_mode spear300_nor_mode; -extern struct pmx_mode spear300_photo_frame_mode; -extern struct pmx_mode spear300_lend_ip_phone_mode; -extern struct pmx_mode spear300_hend_ip_phone_mode; -extern struct pmx_mode spear300_lend_wifi_phone_mode; -extern struct pmx_mode spear300_hend_wifi_phone_mode; -extern struct pmx_mode spear300_ata_pabx_wi2s_mode; -extern struct pmx_mode spear300_ata_pabx_i2s_mode; -extern struct pmx_mode spear300_caml_lcdw_mode; -extern struct pmx_mode spear300_camu_lcd_mode; -extern struct pmx_mode spear300_camu_wlcd_mode; -extern struct pmx_mode spear300_caml_lcd_mode; - -/* pad mux devices */ -extern struct pmx_dev spear300_pmx_fsmc_2_chips; -extern struct pmx_dev spear300_pmx_fsmc_4_chips; -extern struct pmx_dev spear300_pmx_keyboard; -extern struct pmx_dev spear300_pmx_clcd; -extern struct pmx_dev spear300_pmx_telecom_gpio; -extern struct pmx_dev spear300_pmx_telecom_tdm; -extern struct pmx_dev spear300_pmx_telecom_spi_cs_i2c_clk; -extern struct pmx_dev spear300_pmx_telecom_camera; -extern struct pmx_dev spear300_pmx_telecom_dac; -extern struct pmx_dev spear300_pmx_telecom_i2s; -extern struct pmx_dev spear300_pmx_telecom_boot_pins; -extern struct pmx_dev spear300_pmx_telecom_sdhci_4bit; -extern struct pmx_dev spear300_pmx_telecom_sdhci_8bit; -extern struct pmx_dev spear300_pmx_gpio1; - -/* Add spear300 machine declarations here */ void __init spear300_clk_init (void );#endif /* CONFIG_MACH_SPEAR300 */ /* spear310 declarations */ #ifdef CONFIG_MACH_SPEAR310 -/* pad mux devices */ -extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5; -extern struct pmx_dev spear310_pmx_emi_cs_2_3; -extern struct pmx_dev spear310_pmx_uart1; -extern struct pmx_dev spear310_pmx_uart2; -extern struct pmx_dev spear310_pmx_uart3_4_5; -extern struct pmx_dev spear310_pmx_fsmc; -extern struct pmx_dev spear310_pmx_rs485_0_1; -extern struct pmx_dev spear310_pmx_tdm0; - -/* Add spear310 machine declarations here */ void __init spear310_clk_init (void );#endif /* CONFIG_MACH_SPEAR310 */ /* spear320 declarations */ #ifdef CONFIG_MACH_SPEAR320 -/* pad mux modes */ -extern struct pmx_mode spear320_auto_net_smii_mode; -extern struct pmx_mode spear320_auto_net_mii_mode; -extern struct pmx_mode spear320_auto_exp_mode; -extern struct pmx_mode spear320_small_printers_mode; - -/* pad mux devices */ -extern struct pmx_dev spear320_pmx_clcd; -extern struct pmx_dev spear320_pmx_emi; -extern struct pmx_dev spear320_pmx_fsmc; -extern struct pmx_dev spear320_pmx_spp; -extern struct pmx_dev spear320_pmx_sdhci; -extern struct pmx_dev spear320_pmx_i2s; -extern struct pmx_dev spear320_pmx_uart1; -extern struct pmx_dev spear320_pmx_uart1_modem; -extern struct pmx_dev spear320_pmx_uart2; -extern struct pmx_dev spear320_pmx_touchscreen; -extern struct pmx_dev spear320_pmx_can; -extern struct pmx_dev spear320_pmx_sdhci_led; -extern struct pmx_dev spear320_pmx_pwm0; -extern struct pmx_dev spear320_pmx_pwm1; -extern struct pmx_dev spear320_pmx_pwm2; -extern struct pmx_dev spear320_pmx_pwm3; -extern struct pmx_dev spear320_pmx_ssp1; -extern struct pmx_dev spear320_pmx_ssp2; -extern struct pmx_dev spear320_pmx_mii1; -extern struct pmx_dev spear320_pmx_smii0; -extern struct pmx_dev spear320_pmx_smii1; -extern struct pmx_dev spear320_pmx_i2c1; - -/* Add spear320 machine declarations here */ void __init spear320_clk_init (void );#endif /* CONFIG_MACH_SPEAR320 */
arch/arm/mach-spear3xx/spear300.c +1 -388
413 lines not on this page · raw message
arch/arm/mach-spear3xx/spear310.c +1 -160
185 lines not on this page · raw message
arch/arm/mach-spear3xx/spear320.c +1 -402
427 lines not on this page · raw message
arch/arm/mach-spear3xx/spear3xx.c +0 -425
431 lines not on this page · raw message
arch/arm/plat-spear/Makefile +1 -1
@@ -5,4 +5,4 @@ # Common support obj-y := clock.o restart.o time.o pl080.o -obj-$(CONFIG_ARCH_SPEAR3XX) += shirq.o padmux.o +obj-$(CONFIG_ARCH_SPEAR3XX) += shirq.o
arch/arm/plat-spear/include/plat/padmux.h deleted +0 -92
92 lines not on this page · raw message
arch/arm/plat-spear/padmux.c deleted +0 -164
164 lines not on this page · raw message
Signature · 1 line
1.7.9
PATCH v3 1/4 SPEAr: Remove existing padmux support for SPEAr
Quoted 4 lines · Viresh Kumar
We must use pinctrl framework instead of defining per SoC pinmux drivers. This patch removes existing padmux support present for SPEAr platform.
Signed-off-by Viresh Kumar <[email protected]>
FWIW: Acked-by: Linus Walleij <[email protected]>
But I think Viresh is the maintainer of these files :)
Yours,
Linus Walleij
PATCH v3 2/4 pinctrl: Add SPEAr pinctrl drivers
In reply to Viresh KumarThis adds pinctrl driver for SPEAr platform. It also updates MAINTAINERS file for SPEAr pinctrl drivers.
--- MAINTAINERS | 23 +-- drivers/pinctrl/Kconfig | 2 + drivers/pinctrl/Makefile | 2 + drivers/pinctrl/spear/Kconfig | 14 ++ drivers/pinctrl/spear/Makefile | 3 + drivers/pinctrl/spear/pinctrl-spear.c | 349 +++++++++++++++++++++++++++++++++ drivers/pinctrl/spear/pinctrl-spear.h | 142 +++++++++++++ 7 files changed, 520 insertions(+), 15 deletions(-) create mode 100644 drivers/pinctrl/spear/Kconfig create mode 100644 drivers/pinctrl/spear/Makefile create mode 100644 drivers/pinctrl/spear/pinctrl-spear.c create mode 100644 drivers/pinctrl/spear/pinctrl-spear.h
MAINTAINERS +8 -15
@@ -5233,6 +5233,14 @@ M: Linus Walleij <[email protected]> S: Maintained F: drivers/pinctrl/ +PIN CONTROLLER - ST SPEAR +M: Viresh Kumar <[email protected]> +L: spear-devel at list.st.com +L: linux-arm-kernel at lists.infradead.org (moderated for non-subscribers) +W: http://www.st.com/spear +S: Maintained +F: driver/pinctrl/spear/ + PKTCDVD DRIVER M: Peter Osterlund <[email protected]> S: Maintained
@@ -6329,21 +6337,6 @@ F: arch/arm/mach-spear*/clock.c F: arch/arm/plat-spear/clock.c F: arch/arm/plat-spear/include/plat/clock.h -SPEAR PAD MULTIPLEXING SUPPORT -M: Viresh Kumar <[email protected]> -L: spear-devel at list.st.com -L: linux-arm-kernel at lists.infradead.org (moderated for non-subscribers) -W: http://www.st.com/spear -S: Maintained -F: arch/arm/plat-spear/include/plat/padmux.h -F: arch/arm/plat-spear/padmux.c -F: arch/arm/mach-spear*/spear*xx.c -F: arch/arm/mach-spear*/include/mach/generic.h -F: arch/arm/mach-spear3xx/spear3*0.c -F: arch/arm/mach-spear3xx/spear3*0_evb.c -F: arch/arm/mach-spear6xx/spear600.c -F: arch/arm/mach-spear6xx/spear600_evb.c - SPI SUBSYSTEM M: Grant Likely <[email protected]> L: spi-devel-general at lists.sourceforge.net
drivers/pinctrl/Kconfig +2 -0
@@ -89,6 +89,8 @@ config PINCTRL_COH901 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 ports of 8 GPIO pins each. +source "drivers/pinctrl/spear/Kconfig" + endmenu endif
drivers/pinctrl/Makefile +2 -0
@@ -17,3 +17,5 @@ obj-$(CONFIG_PINCTRL_TEGRA20) += pinctrl-tegra20.o obj-$(CONFIG_PINCTRL_TEGRA30) += pinctrl-tegra30.o obj-$(CONFIG_PINCTRL_U300) += pinctrl-u300.o obj-$(CONFIG_PINCTRL_COH901) += pinctrl-coh901.o + +obj-$(CONFIG_PLAT_SPEAR) += spear/
drivers/pinctrl/spear/Kconfig new file +14 -0
@@ -0,0 +1,14 @@ +# +# ST Microelectronics SPEAr PINCTRL drivers +# + +if PLAT_SPEAR + +config PINCTRL_SPEAR + bool + depends on OF + select PINMUX + help + This enables pin control drivers for SPEAr Platform + +endif
drivers/pinctrl/spear/Makefile new file +3 -0
@@ -0,0 +1,3 @@ +# SPEAr pinmux support + +obj-$(CONFIG_PINCTRL_SPEAR) += pinctrl-spear.o
drivers/pinctrl/spear/pinctrl-spear.c new file +349 -0
349 lines not on this page · raw message
drivers/pinctrl/spear/pinctrl-spear.h new file +142 -0
142 lines not on this page · raw message
Signature · 1 line
1.7.9
PATCH v3 2/4 pinctrl: Add SPEAr pinctrl drivers
Quoted 4 lines · Viresh Kumar
This adds pinctrl driver for SPEAr platform. It also updates
MAINTAINERSfile for SPEAr pinctrl drivers.Signed-off-by Viresh Kumar <[email protected]>
Looks good to me.
Yours,
Linus Walleij
PATCH v3 2/4 pinctrl: Add SPEAr pinctrl drivers
In reply to Viresh KumarQuoted 5 lines · Viresh Kumar
This adds pinctrl driver for SPEAr platform. It also updates
MAINTAINERSfile for SPEAr pinctrl drivers.drivers/pinctrl/spear/pinctrl-spear.c new file +2
-0+int __devinit spear_pinctrl_probe (struct platform_device *pdev, +struct spear_pinctrl_machdata *machdata)
...
Quoted 1 line
drivers/pinctrl/spear/pinctrl-spear.c new file +1
-0+ pmx->vbase =of_iomap (np,0 );
...
drivers/pinctrl/spear/pinctrl-spear.c line 349
Quoted 10 lines
drivers/pinctrl/spear/pinctrl-spear.c new file +10
-0+} + +int __devexit spear_pinctrl_remove(struct platform_device *pdev) +{ +struct spear_pmx *pmx =platform_get_drvdata (pdev); + +pinctrl_unregister (pmx->pctl); + +return 0 ; +}
of_iomap isn't a devm function, so youo need to unmap in remove(), and in probe()'s error paths.
Or of course, you could just implement devm_of_iomap(); it's probably very simple to do.
PATCH v3 2/4 pinctrl: Add SPEAr pinctrl drivers
Quoted 5 lines · Stephen Warren
of_iomapisn't a devm function, so youo need to unmap inremove(), and in probe()'s error paths.Or of course, you could just implement
devm_of_iomap(); it's probably very simple to do.
Implemented devm_of_iomap().
Signature · 1 line
viresh
PATCH v3 4/4 SPEAr3xx: Add pinctrl support for boards
In reply to Viresh Kumar--- arch/arm/boot/dts/spear300-evb.dts | 38 ++++++++++++++++++++++ arch/arm/boot/dts/spear300.dtsi | 5 +++ arch/arm/boot/dts/spear310-evb.dts | 61 ++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/spear310.dtsi | 5 +++ arch/arm/boot/dts/spear320-evb.dts | 61 ++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/spear320.dtsi | 7 +++- arch/arm/mach-spear3xx/Kconfig | 3 ++ arch/arm/plat-spear/Kconfig | 1 + 8 files changed, 180 insertions(+), 1 deletions(-)
arch/arm/boot/dts/spear300-evb.dts +38 -0
@@ -25,6 +25,44 @@ }; ahb { + pinmux at 99000000 { + st,pinmux-mode=<2>; + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + state_default: pinmux { + i2c0 { + st,pins = "i2c0_grp"; + st,function = "i2c0"; + }; + ssp0 { + st,pins = "ssp0_grp"; + st,function = "ssp0"; + }; + mii0 { + st,pins = "mii0_grp"; + st,function = "mii0"; + }; + uart0 { + st,pins = "uart0_grp"; + st,function = "uart0"; + }; + clcd { + st,pins = "clcd_pfmode_grp"; + st,function = "clcd"; + }; + sdhci { + st,pins = "sdhci_4bit_grp"; + st,function = "sdhci"; + }; + gpio1 { + st,pins = "gpio1_4_to_7_grp", + "gpio1_0_to_3_grp"; + st,function = "gpio1"; + }; + }; + }; + clcd at 60000000 { status = "okay"; };
arch/arm/boot/dts/spear300.dtsi +5 -0
@@ -21,6 +21,11 @@ ranges = <0x60000000 0x60000000 0x50000000 0xd0000000 0xd0000000 0x30000000>; + pinmux at 99000000 { + compatible = "st,spear300-pinmux"; + reg = <0x99000000 0x1000>; + }; + clcd at 60000000 { compatible = "arm,clcd-pl110", "arm,primecell"; reg = <0x60000000 0x1000>;
arch/arm/boot/dts/spear310-evb.dts +61 -0
67 lines not on this page · raw message
arch/arm/boot/dts/spear310.dtsi +5 -0
@@ -22,6 +22,11 @@ 0xb0000000 0xb0000000 0x10000000 0xd0000000 0xd0000000 0x30000000>; + pinmux at b4000000 { + compatible = "st,spear310-pinmux"; + reg = <0xb4000000 0x1000>; + }; + fsmc: flash at 44000000 { compatible = "st,spear600-fsmc-nand"; #address-cells = <1>;
arch/arm/boot/dts/spear320-evb.dts +61 -0
67 lines not on this page · raw message
arch/arm/boot/dts/spear320.dtsi +6 -1
@@ -18,9 +18,14 @@ #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; - ranges = <0x40000000 0x40000000 0x70000000 + ranges = <0x40000000 0x40000000 0x80000000 0xd0000000 0xd0000000 0x30000000>; + pinmux at b3000000 { + compatible = "st,spear320-pinmux"; + reg = <0xb3000000 0x1000>; + }; + clcd at 90000000 { compatible = "arm,clcd-pl110", "arm,primecell"; reg = <0x90000000 0x1000>;
arch/arm/mach-spear3xx/Kconfig +3 -0
@@ -7,16 +7,19 @@ if ARCH_SPEAR3XX menu "SPEAr3xx Implementations" config MACH_SPEAR300 bool "SPEAr300 Machine support with Device Tree" + select PINCTRL_SPEAR300 help Supports ST SPEAr300 machine configured via the device-tree config MACH_SPEAR310 bool "SPEAr310 Machine support with Device Tree" + select PINCTRL_SPEAR310 help Supports ST SPEAr310 machine configured via the device-tree config MACH_SPEAR320 bool "SPEAr320 Machine support with Device Tree" + select PINCTRL_SPEAR320 help Supports ST SPEAr320 machine configured via the device-tree endmenu
arch/arm/plat-spear/Kconfig +1 -0
@@ -13,6 +13,7 @@ config ARCH_SPEAR3XX select ARM_VIC select CPU_ARM926T select USE_OF + select PINCTRL help Supports for ARM's SPEAR3XX family
Signature · 1 line
1.7.9
PATCH v3 4/4 SPEAr3xx: Add pinctrl support for boards
Quoted 1 line · Viresh Kumar
Signed-off-by Viresh Kumar <[email protected]>
Some blurb message maybe? Anyway:
Yours,
Linus Walleij
PATCH v3 4/4 SPEAr3xx: Add pinctrl support for boards
In reply to Viresh KumarQuoted 1 line · Viresh Kumar
Signed-off-by Viresh Kumar <[email protected]>
Just a couple of minor comments below.
arch/arm/boot/dts/spear300-evb.dts line 29
Quoted 4 lines
arch/arm/boot/dts/spear300-evb.dts +2
-0+ pinmux at 99000000 { + st,pinmux-mode=<2>;
spaces around = here for consistency?
arch/arm/boot/dts/spear300-evb.dts line 37
Quoted 5 lines
arch/arm/boot/dts/spear300-evb.dts +5
-0+ state_default: pinmux { + i2c0 { + st,pins = "i2c0_grp"; + st,function = "i2c0"; + };
Do the group names need the "_grp" suffix? If that's what's in your TRM, it's fine by me, but I'd guess that isn't the case, and if so I'd say either drop the _grp suffix here, or enhance the binding documentation to mention the need to add this suffix when writing the .dts file.
PATCH v3 4/4 SPEAr3xx: Add pinctrl support for boards
Quoted 4 lines · Stephen Warren
Quoted 1 line · Viresh Kumar
Signed-off-by Viresh Kumar <[email protected]>Just a couple of minor comments below.
No Probs.
Quoted 6 lines
arch/arm/boot/dts/spear300-evb.dts line 29
Quoted 4 lines
arch/arm/boot/dts/spear300-evb.dts +2
-0+ pinmux at 99000000 { + st,pinmux-mode=<2>;spaces around = here for consistency?
Ok.
Quoted 10 lines
arch/arm/boot/dts/spear300-evb.dts line 37
Quoted 5 lines
arch/arm/boot/dts/spear300-evb.dts +5
-0+ state_default: pinmux { + i2c0 { + st,pins = "i2c0_grp"; + st,function = "i2c0"; + };Do the group names need the "
_grp" suffix? If that's what's in your TRM, it's fine by me, but I'd guess that isn't the case, and if so I'd say either drop the_grpsuffix here, or enhance the binding documentation to mention the need to add this suffix when writing the .dts file.
Updated Documentation clearly for this.
As you have spent a lot of time getting these reviewed, i would add your Reviewed-by on all these patches. Hope that would be fine?
Will fix all these, resend them and send a pull request to Arnd.
Signature · 1 line
viresh
PATCH v3 4/4 SPEAr3xx: Add pinctrl support for boards
Quoted 1 line · Viresh Kumar
On 4/13/2012 9:48 PM, Stephen Warren wrote:
...
Quoted 1 line
Quoted 1 line
Just a couple of minor comments below.
...
Quoted 2 lines
As you have spent a lot of time getting these reviewed, i would add your Reviewed-by on all these patches. Hope that would be fine?
Sure. Note that I explicitly didn't review the pin/group/function data, but concentrated more on the general framework of the driver, but I think that's enough to add my Reviewed-by.
A message that is not in the archive (sent off-list or not yet received): [email protected]
Re: [PATCH V3 4/4] SPEAr3xx: Add pinctrl support for boards
Quoted 1 line · Stephen Warren
Note that I explicitly didn't review the pin/group/function data,
Even i can't review that :-)
--
Viresh
_______________________________________________
devicetree-discuss mailing list devicetree-discuss-uLR06cmDAlY/[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss
A message that is not in the archive (sent off-list or not yet received): 61fe5fe87fdddfc66d21d82b1039de3782b50201.1334207964.git.viresh.kumar@st.com
PATCH v3 3/4 pinctrl: Add SPEAr3xx pinctrl drivers
Quoted 4 lines · Viresh Kumar
This adds pinctrl driver for SPEAr3xx family. SPEAr3xx family supports three
families: SPEAr300, SPEAr310 and SPEAr320.Signed-off-by Viresh Kumar <[email protected]>
Big but easy to read and looks correct, so:
Yours,
Linus Walleij
PATCH v3 3/4 pinctrl: Add SPEAr3xx pinctrl drivers
In reply to a message not in the archiveQuoted 5 lines · Viresh Kumar
This adds pinctrl driver for SPEAr3xx family. SPEAr3xx family supports three
families: SPEAr300, SPEAr310 and SPEAr320.+++
b/Documentation/devicetree/bindings/pinctrl/pinctrl_spear.txt
Review
Quoted 9 lines
(quoted diff) +9
-0+Required subnode-properties: +- st,pins : An array of strings. Each string contains the name of a pin or + group. +- st,function: A string containing the name of the function to mux to the pin or + group. See the SPEAr's TRM to determine which are valid for each pin or group. + + Valid values for group and function names can be found from looking at the + group and function arrays in driver files: + drivers/pinctrl/spear/pinctrl-spear3*0.c
It might be nice to enumerate the pin/group/function names here, but if they're identical to the TRM I guess it's fine not to.
Looking at the Tegra binding docs, I see I forgot to enumerate the function names although I did enumerate everything else.
PATCH v3 3/4 pinctrl: Add SPEAr3xx pinctrl drivers
Quoted 5 lines · Stephen Warren
It might be nice to enumerate the pin/group/function names here, but if they're identical to the TRM I guess it's fine not to.
Looking at the Tegra binding docs, I see I forgot to enumerate the function names although I did enumerate everything else.
Ok.
Signature · 1 line
viresh