Re: [PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
* Tony Lindgren [131127 08:49]: > * Balaji T K [131127 08:30]: > > On Wednesday 27 November 2013 03:25 AM, Tony Lindgren wrote: > > >* Dan Murphy [131121 09:28]: > > >>On 11/21/2013 10:58 AM, Tony Lindgren wrote: > > >>>* Balaji T K [131121 05:51]: > > pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core > > and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. > > > > Fix the following error message: > > pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) > > pinctrl-single 4a31e040.pinmux: could not add functions for > > pinmux_wl12xx_pins 56x > > >> > > >>Why is the led pins moved then? > > > > > >Heh the patch just looks that way, looking at the curly brackets > > >thing do get moved properly. > > > > > SDIO card is not detected after moving pin mux to omap4_pmx_core since > > sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect > > SDIO card. > > >>>Cool, does this fix the issue with the WLAN not coming up after a warm > > >>>reset > > >>>on panda? > > > > > >Also commit f446043f1aa7 (regulator: fixed: fix regulator_list_voltage() > > >for > > >regression) is needed that recently got merged. But with v3.13-rc1 + > > >f446043f1aa7 + this patch no luck whatsoever bringing up the wl12xx so > > >there > > >must be also some regression somewhere from v3.12 on that? > > > > > Hi Tony, > > > > I tried loading wl12xx as modules on latest base as yours with > > ti-connectivity/wl127x-fw-5-sr.bin firmware in place and I could connect > > and run iperf. > > Oh OK I must have missed something then. > > Does it now work after a warm reboot too? And after bringing the interface > down with "ifconfig wlan0 down" followed by "ifconfig wlan0 up"? Yes great, I can confirm that v3.13-rc1 + f446043f1aa7 (regulator: fixed: fix regulator_list_voltage() for regression) + this patch works even after a warm reset :) Will apply both to omap-for-v3.13/fixes-take4 with Cc stable. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
* Balaji T K [131127 08:30]: > On Wednesday 27 November 2013 03:25 AM, Tony Lindgren wrote: > >* Dan Murphy [131121 09:28]: > >>On 11/21/2013 10:58 AM, Tony Lindgren wrote: > >>>* Balaji T K [131121 05:51]: > pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core > and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. > > Fix the following error message: > pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) > pinctrl-single 4a31e040.pinmux: could not add functions for > pinmux_wl12xx_pins 56x > >> > >>Why is the led pins moved then? > > > >Heh the patch just looks that way, looking at the curly brackets > >thing do get moved properly. > > > SDIO card is not detected after moving pin mux to omap4_pmx_core since > sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO > card. > >>>Cool, does this fix the issue with the WLAN not coming up after a warm > >>>reset > >>>on panda? > > > >Also commit f446043f1aa7 (regulator: fixed: fix regulator_list_voltage() for > >regression) is needed that recently got merged. But with v3.13-rc1 + > >f446043f1aa7 + this patch no luck whatsoever bringing up the wl12xx so there > >must be also some regression somewhere from v3.12 on that? > > > Hi Tony, > > I tried loading wl12xx as modules on latest base as yours with > ti-connectivity/wl127x-fw-5-sr.bin firmware in place and I could connect > and run iperf. Oh OK I must have missed something then. Does it now work after a warm reboot too? And after bringing the interface down with "ifconfig wlan0 down" followed by "ifconfig wlan0 up"? Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
On Wednesday 27 November 2013 03:25 AM, Tony Lindgren wrote: * Dan Murphy [131121 09:28]: On 11/21/2013 10:58 AM, Tony Lindgren wrote: * Balaji T K [131121 05:51]: pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. Fix the following error message: pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) pinctrl-single 4a31e040.pinmux: could not add functions for pinmux_wl12xx_pins 56x Why is the led pins moved then? Heh the patch just looks that way, looking at the curly brackets thing do get moved properly. SDIO card is not detected after moving pin mux to omap4_pmx_core since sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card. Cool, does this fix the issue with the WLAN not coming up after a warm reset on panda? Also commit f446043f1aa7 (regulator: fixed: fix regulator_list_voltage() for regression) is needed that recently got merged. But with v3.13-rc1 + f446043f1aa7 + this patch no luck whatsoever bringing up the wl12xx so there must be also some regression somewhere from v3.12 on that? Hi Tony, I tried loading wl12xx as modules on latest base as yours with ti-connectivity/wl127x-fw-5-sr.bin firmware in place and I could connect and run iperf. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
On Thursday 21 November 2013 10:57 PM, Dan Murphy wrote: On 11/21/2013 10:58 AM, Tony Lindgren wrote: * Balaji T K [131121 05:51]: pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. Fix the following error message: pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) pinctrl-single 4a31e040.pinmux: could not add functions for pinmux_wl12xx_pins 56x Why is the led pins moved then? Hi Dan, I just moved 27 lines (wl12xx_pins, wl12xx_gpio) up, git diff generated smaller diff stat by moving 10 line of code (led_wkgpio_pins) further down :-) SDIO card is not detected after moving pin mux to omap4_pmx_core since sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card. Cool, does this fix the issue with the WLAN not coming up after a warm reset on panda? Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
* Dan Murphy [131121 09:28]: > On 11/21/2013 10:58 AM, Tony Lindgren wrote: > > * Balaji T K [131121 05:51]: > >> pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core > >> and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. > >> > >> Fix the following error message: > >> pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) > >> pinctrl-single 4a31e040.pinmux: could not add functions for > >> pinmux_wl12xx_pins 56x > > Why is the led pins moved then? Heh the patch just looks that way, looking at the curly brackets thing do get moved properly. > >> SDIO card is not detected after moving pin mux to omap4_pmx_core since > >> sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO > >> card. > > Cool, does this fix the issue with the WLAN not coming up after a warm reset > > on panda? Also commit f446043f1aa7 (regulator: fixed: fix regulator_list_voltage() for regression) is needed that recently got merged. But with v3.13-rc1 + f446043f1aa7 + this patch no luck whatsoever bringing up the wl12xx so there must be also some regression somewhere from v3.12 on that? Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/2] ARM: dts: omap4: Fix pin muxing for wl12xx
Balaji T K (2): ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx ARM: dts: omap4-sdp: Fix pin muxing for wl12xx arch/arm/boot/dts/omap4-panda-common.dtsi | 20 ++-- arch/arm/boot/dts/omap4-sdp.dts | 12 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. Fix the following error message: pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) pinctrl-single 4a31e040.pinmux: could not add functions for pinmux_wl12xx_pins 56x SDIO card is not detected after moving pin mux to omap4_pmx_core since sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card. Signed-off-by: Balaji T K --- arch/arm/boot/dts/omap4-panda-common.dtsi | 20 ++-- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi index 298e850..88c6a05 100644 --- a/arch/arm/boot/dts/omap4-panda-common.dtsi +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi @@ -246,15 +246,6 @@ 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */ >; }; -}; - -&omap4_pmx_wkup { - led_wkgpio_pins: pinmux_leds_wkpins { - pinctrl-single,pins = < - 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */ - 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ - >; - }; /* * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP @@ -274,7 +265,7 @@ pinctrl-single,pins = < 0x38 (PIN_INPUT | MUX_MODE3)/* gpmc_ncs2.gpio_52 */ 0x3a (PIN_INPUT | MUX_MODE3)/* gpmc_ncs3.gpio_53 */ - 0x108 (PIN_OUTPUT | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */ + 0x108 (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_clk.sdmmc5_clk */ 0x10a (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_cmd.sdmmc5_cmd */ 0x10c (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_dat0.sdmmc5_dat0 */ 0x10e (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_dat1.sdmmc5_dat1 */ @@ -284,6 +275,15 @@ }; }; +&omap4_pmx_wkup { + led_wkgpio_pins: pinmux_leds_wkpins { + pinctrl-single,pins = < + 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */ + 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ + >; + }; +}; + &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/2] ARM: dts: omap4-sdp: Fix pin muxing for wl12xx
Mux mode for wlan/sdmmc5 should be MODE0 in pinmux_wl12xx_pins and Enable Pull up on sdmmc5_clk to detect SDIO card. Signed-off-by: Balaji T K --- arch/arm/boot/dts/omap4-sdp.dts | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index 5fc3f43..dbc81fb 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts @@ -300,12 +300,12 @@ wl12xx_pins: pinmux_wl12xx_pins { pinctrl-single,pins = < 0x3a (PIN_INPUT | MUX_MODE3)/* gpmc_ncs3.gpio_53 */ - 0x108 (PIN_OUTPUT | MUX_MODE3) /* sdmmc5_clk.sdmmc5_clk */ - 0x10a (PIN_INPUT_PULLUP | MUX_MODE3)/* sdmmc5_cmd.sdmmc5_cmd */ - 0x10c (PIN_INPUT_PULLUP | MUX_MODE3)/* sdmmc5_dat0.sdmmc5_dat0 */ - 0x10e (PIN_INPUT_PULLUP | MUX_MODE3)/* sdmmc5_dat1.sdmmc5_dat1 */ - 0x110 (PIN_INPUT_PULLUP | MUX_MODE3)/* sdmmc5_dat2.sdmmc5_dat2 */ - 0x112 (PIN_INPUT_PULLUP | MUX_MODE3)/* sdmmc5_dat3.sdmmc5_dat3 */ + 0x108 (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_clk.sdmmc5_clk */ + 0x10a (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_cmd.sdmmc5_cmd */ + 0x10c (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_dat0.sdmmc5_dat0 */ + 0x10e (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_dat1.sdmmc5_dat1 */ + 0x110 (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_dat2.sdmmc5_dat2 */ + 0x112 (PIN_INPUT_PULLUP | MUX_MODE0)/* sdmmc5_dat3.sdmmc5_dat3 */ >; }; }; -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
* Balaji T K [131121 05:51]: > pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core > and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. > > Fix the following error message: > pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) > pinctrl-single 4a31e040.pinmux: could not add functions for > pinmux_wl12xx_pins 56x > > SDIO card is not detected after moving pin mux to omap4_pmx_core since > sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card. Cool, does this fix the issue with the WLAN not coming up after a warm reset on panda? Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
On 11/21/2013 10:58 AM, Tony Lindgren wrote: > * Balaji T K [131121 05:51]: >> pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core >> and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. >> >> Fix the following error message: >> pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) >> pinctrl-single 4a31e040.pinmux: could not add functions for >> pinmux_wl12xx_pins 56x Why is the led pins moved then? >> SDIO card is not detected after moving pin mux to omap4_pmx_core since >> sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO >> card. > Cool, does this fix the issue with the WLAN not coming up after a warm reset > on panda? > > Regards, > > Tony > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- -- Dan Murphy -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
pin muxing
Hello, I need to add a couple of mux entries and am refer to arch/arm/mach-omap2/mux.c file. I would like to what is the differences between BALLNUM_34XX_ and BALLNUM_3430_ entries. I could not find any mux entries specific to BALLNUM_35XX_. How does one decide if a pin needs to be pulled up or pulldown. Warm Regards, Ryan -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[APPLIED] [PATCH 2/3] [OMAP] USB: Add omap7xx-specific pin muxing
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next-vol2 Initial commit ID (Likely to change): dd1a4ddb989eded52aac34a85cea2f2b122fbc84 PatchWorks http://patchwork.kernel.org/patch/62078/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=dd1a4ddb989eded52aac34a85cea2f2b122fbc84 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/3] [OMAP] USB: Add omap7xx-specific pin muxing
This adds the initialization for the pin muxing required for USB to function properly on omap7xx hardware. Signed-off-by: Cory Maccarrone --- arch/arm/plat-omap/usb.c |8 +++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c index 51033a4..d3bf17c 100644 --- a/arch/arm/plat-omap/usb.c +++ b/arch/arm/plat-omap/usb.c @@ -137,7 +137,13 @@ static u32 __init omap_usb0_init(unsigned nwires, unsigned is_device) if (is_device) { if (cpu_is_omap24xx()) omap_cfg_reg(J20_24XX_USB0_PUEN); - else + else if (cpu_is_omap7xx()) { + omap_cfg_reg(AA17_7XX_USB_DM); + omap_cfg_reg(W16_7XX_USB_PU_EN); + omap_cfg_reg(W17_7XX_USB_VBUSI); + omap_cfg_reg(W18_7XX_USB_DMCK_OUT); + omap_cfg_reg(W19_7XX_USB_DCRST); + } else omap_cfg_reg(W4_USB_PUEN); } -- 1.6.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 04/10] omap1: Fix redundant UARTs pin muxing that can break other hardware support
From: Janusz Krzysztofik Commit 15ac408ee5a509053a765b816e9179515329369f removed enabled_uart and OMAP_TAG_UART. This works for mach-omap2, but causes issues on mach-omap1 for some boards as the mach-omap1 serial.c was muxing pins based on the enabled_uart flag for 15xx. Fix this by muxing pins in board-*.c files for the 15xx boards for the uart ports that had enabled_uart flag set before the commit above. Tested on Amsdtrad Delta only. Note that in the future we should add support for powering down the uarts with a timer like mach-omap2/serial.c does. Otherwise the enabled uarts will be blocking retention-while-idle. Signed-off-by: Janusz Krzysztofik Signed-off-by: Tony Lindgren --- arch/arm/mach-omap1/board-ams-delta.c |4 arch/arm/mach-omap1/board-generic.c |8 arch/arm/mach-omap1/board-innovator.c | 20 arch/arm/mach-omap1/board-palmte.c|8 arch/arm/mach-omap1/board-palmtt.c|8 arch/arm/mach-omap1/board-palmz71.c |8 arch/arm/mach-omap1/board-sx1.c |8 arch/arm/mach-omap1/board-voiceblue.c |8 arch/arm/mach-omap1/serial.c | 26 -- 9 files changed, 72 insertions(+), 26 deletions(-) diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index 42920f9..972499e 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c @@ -219,6 +219,10 @@ static struct platform_device *ams_delta_devices[] __initdata = { static void __init ams_delta_init(void) { + /* mux pins for uarts */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc)); omap_board_config = ams_delta_config; diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index fb47239..6c8a41f 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c @@ -64,6 +64,14 @@ static void __init omap_generic_init(void) { #ifdef CONFIG_ARCH_OMAP15XX if (cpu_is_omap15xx()) { + /* mux pins for uarts */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + omap_usb_init(&generic1510_usb_config); } #endif diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c index cc2abbb..cd6c395 100644 --- a/arch/arm/mach-omap1/board-innovator.c +++ b/arch/arm/mach-omap1/board-innovator.c @@ -376,6 +376,26 @@ static void __init innovator_init(void) { #ifdef CONFIG_ARCH_OMAP15XX if (cpu_is_omap1510()) { + unsigned char reg; + + /* mux pins for uarts */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + + reg = fpga_read(OMAP1510_FPGA_POWER); + reg |= OMAP1510_FPGA_PCR_COM1_EN; + fpga_write(reg, OMAP1510_FPGA_POWER); + udelay(10); + + reg = fpga_read(OMAP1510_FPGA_POWER); + reg |= OMAP1510_FPGA_PCR_COM2_EN; + fpga_write(reg, OMAP1510_FPGA_POWER); + udelay(10); + platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices)); spi_register_board_info(innovator1510_boardinfo, ARRAY_SIZE(innovator1510_boardinfo)); diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 90dd043..4de2584 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c @@ -342,6 +342,14 @@ static void __init palmte_misc_gpio_setup(void) static void __init omap_palmte_init(void) { + /* mux pins for uarts */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + omap_board_config = palmte_config; omap_board_config_size = ARRAY_SIZE(palmte_config); diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c index 8256139..d972cf9 100644 --- a/arch/arm/mach-omap1/board-palmtt.c +++ b/arch/arm/mach-omap1/board-palmtt.c @@ -289,6 +289,14 @@ static void __init omap_mpu_wdt_mode(int mode) { static void __init omap_palmtt_init(void) { + /* mux pins for uarts */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + omap
Re: [PATCH] OMAP1: fix redundant UARTs pin muxing that can break other hardware support
* Janusz Krzysztofik [091021 10:11]: > Wednesday 21 October 2009 02:51:35 Tony Lindgren napisał(a): > > > > Let's just remove the omap_cfg_reg() calls from mach-omap1/serial.c, and > > add them to the board-*.c files like you suggest above. We should be able > > to find which ports to mux by looking at the enabled_uarts mask in the > > commit mentioned above. > > Here you are (board-*.c changes limited to those OMAP1510 based). > Created against linux-2.6.32-rc5. > Tested on Amsdtrad Delta only. Thanks, I'll add it to the omap-fixes series for this -rc cycle with a description on how things broke. BTW, you might want to also take a look at adding support for powering down the uarts with an idle timer for mach-omap1/serial.c the same way as mach-omap2/serial.c does. Otherwise the enabled serial ports keep the system from hitting retention during idle. Regards, Tony > Signed-off-by: Janusz Krzysztofik > > --- > diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-ams-delta.c > linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-ams-delta.c > --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-ams-delta.c > 2009-10-16 02:41:50.0 +0200 > +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-ams-delta.c > 2009-10-21 17:41:29.0 +0200 > @@ -219,6 +219,10 @@ static struct platform_device *ams_delta > > static void __init ams_delta_init(void) > { > + /* setup mux pins for uarts, removed from serial.c */ > + omap_cfg_reg(UART1_TX); > + omap_cfg_reg(UART1_RTS); > + > iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc)); > > omap_board_config = ams_delta_config; > diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-generic.c > linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-generic.c > --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-generic.c 2009-10-16 > 02:41:50.0 +0200 > +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-generic.c > 2009-10-21 18:15:37.0 +0200 > @@ -64,6 +64,14 @@ static void __init omap_generic_init(voi > { > #ifdef CONFIG_ARCH_OMAP15XX > if (cpu_is_omap15xx()) { > + /* setup mux pins for uarts, removed from serial.c */ > + omap_cfg_reg(UART1_TX); > + omap_cfg_reg(UART1_RTS); > + omap_cfg_reg(UART2_TX); > + omap_cfg_reg(UART2_RTS); > + omap_cfg_reg(UART3_TX); > + omap_cfg_reg(UART3_RX); > + > omap_usb_init(&generic1510_usb_config); > } > #endif > diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-innovator.c > linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-innovator.c > --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-innovator.c > 2009-10-16 02:41:50.0 +0200 > +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-innovator.c > 2009-10-21 18:16:59.0 +0200 > @@ -376,6 +376,24 @@ static void __init innovator_init(void) > { > #ifdef CONFIG_ARCH_OMAP15XX > if (cpu_is_omap1510()) { > + /* setup mux pins for uarts, removed from serial.c */ > + omap_cfg_reg(UART1_TX); > + omap_cfg_reg(UART1_RTS); > + omap_cfg_reg(UART2_TX); > + omap_cfg_reg(UART2_RTS); > + omap_cfg_reg(UART3_TX); > + omap_cfg_reg(UART3_RX); > + > + reg = fpga_read(OMAP1510_FPGA_POWER); > + reg |= OMAP1510_FPGA_PCR_COM1_EN; > + fpga_write(reg, OMAP1510_FPGA_POWER); > + udelay(10); > + > + reg = fpga_read(OMAP1510_FPGA_POWER); > + reg |= OMAP1510_FPGA_PCR_COM2_EN; > + fpga_write(reg, OMAP1510_FPGA_POWER); > + udelay(10); > + > platform_add_devices(innovator1510_devices, > ARRAY_SIZE(innovator1510_devices)); > spi_register_board_info(innovator1510_boardinfo, > ARRAY_SIZE(innovator1510_boardinfo)); > diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmte.c > linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-palmte.c > --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmte.c 2009-10-16 > 02:41:50.0 +0200 > +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-palmte.c 2009-10-21 > 17:38:59.0 +0200 > @@ -342,6 +342,14 @@ static void __init palmte_misc_gpio_setu > > static void __init omap_palmte_init(void) > { > + /* setup mux pins for uarts, removed from serial.c */ > + omap_cfg_reg(UART1_TX); > + omap_cfg_reg(UART1_RTS); > + omap_cfg_reg(UART2_TX); > + omap_cfg_reg(UART2_RTS); > + omap_cfg_reg(UART3_TX); > + omap_cfg_reg(UART3_RX); > + > omap_board_config = palmte_config; > omap_board_config_size = ARRAY_SIZE(palmte_config); > > diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmtt.c > linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-palmtt.c > --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmtt.c 2009-10-16 > 02:41:50.0 +02
[PATCH] OMAP1: fix redundant UARTs pin muxing that can break other hardware support
Wednesday 21 October 2009 02:51:35 Tony Lindgren napisał(a): > > Let's just remove the omap_cfg_reg() calls from mach-omap1/serial.c, and > add them to the board-*.c files like you suggest above. We should be able > to find which ports to mux by looking at the enabled_uarts mask in the > commit mentioned above. Here you are (board-*.c changes limited to those OMAP1510 based). Created against linux-2.6.32-rc5. Tested on Amsdtrad Delta only. Signed-off-by: Janusz Krzysztofik --- diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-ams-delta.c linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-ams-delta.c --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-ams-delta.c 2009-10-16 02:41:50.0 +0200 +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-ams-delta.c 2009-10-21 17:41:29.0 +0200 @@ -219,6 +219,10 @@ static struct platform_device *ams_delta static void __init ams_delta_init(void) { + /* setup mux pins for uarts, removed from serial.c */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc)); omap_board_config = ams_delta_config; diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-generic.c linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-generic.c --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-generic.c 2009-10-16 02:41:50.0 +0200 +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-generic.c 2009-10-21 18:15:37.0 +0200 @@ -64,6 +64,14 @@ static void __init omap_generic_init(voi { #ifdef CONFIG_ARCH_OMAP15XX if (cpu_is_omap15xx()) { + /* setup mux pins for uarts, removed from serial.c */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + omap_usb_init(&generic1510_usb_config); } #endif diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-innovator.c linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-innovator.c --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-innovator.c 2009-10-16 02:41:50.0 +0200 +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-innovator.c 2009-10-21 18:16:59.0 +0200 @@ -376,6 +376,24 @@ static void __init innovator_init(void) { #ifdef CONFIG_ARCH_OMAP15XX if (cpu_is_omap1510()) { + /* setup mux pins for uarts, removed from serial.c */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + + reg = fpga_read(OMAP1510_FPGA_POWER); + reg |= OMAP1510_FPGA_PCR_COM1_EN; + fpga_write(reg, OMAP1510_FPGA_POWER); + udelay(10); + + reg = fpga_read(OMAP1510_FPGA_POWER); + reg |= OMAP1510_FPGA_PCR_COM2_EN; + fpga_write(reg, OMAP1510_FPGA_POWER); + udelay(10); + platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices)); spi_register_board_info(innovator1510_boardinfo, ARRAY_SIZE(innovator1510_boardinfo)); diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmte.c linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-palmte.c --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmte.c2009-10-16 02:41:50.0 +0200 +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-palmte.c 2009-10-21 17:38:59.0 +0200 @@ -342,6 +342,14 @@ static void __init palmte_misc_gpio_setu static void __init omap_palmte_init(void) { + /* setup mux pins for uarts, removed from serial.c */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + omap_board_config = palmte_config; omap_board_config_size = ARRAY_SIZE(palmte_config); diff -upr linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmtt.c linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-palmtt.c --- linux-2.6.32-rc5.orig/arch/arm/mach-omap1/board-palmtt.c2009-10-16 02:41:50.0 +0200 +++ linux-2.6.32-rc5.fixed/arch/arm/mach-omap1/board-palmtt.c 2009-10-21 17:39:19.0 +0200 @@ -289,6 +289,14 @@ static void __init omap_mpu_wdt_mode(int static void __init omap_palmtt_init(void) { + /* setup mux pins for uarts, removed from serial.c */ + omap_cfg_reg(UART1_TX); + omap_cfg_reg(UART1_RTS); + omap_cfg_reg(UART2_TX); + omap_cfg_reg(UART2_RTS); + omap_cfg_reg(UART3_TX); + omap_cfg_reg(UART3_RX); + omap_mpu_wdt_mode(0); omap_board_config = palmtt_config; diff -upr
[PATCH 1/2] OMAP3: MMC: Pass pin muxing control flag
Some drivers have a requirement not to do the default pin muxing for MMC Those drivers can pass on nomux=1 from twl4030_hsmmc_info and perform the pin muxing in their board file before call to funciton twl4030_mmc_init() Signded-off-by: Vikram Pandita --- arch/arm/mach-omap2/mmc-twl4030.c |1 + arch/arm/mach-omap2/mmc-twl4030.h |1 + 2 files changed, 2 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c index 9756a87..d14f0b3 100644 --- a/arch/arm/mach-omap2/mmc-twl4030.c +++ b/arch/arm/mach-omap2/mmc-twl4030.c @@ -354,6 +354,7 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers) mmc->slots[0].name = twl->name; mmc->nr_slots = 1; mmc->slots[0].wires = c->wires; + mmc->slots[0].nomux = c->nomux; mmc->slots[0].internal_clock = !c->ext_clock; mmc->dma_mask = 0x; mmc->init = twl_mmc_late_init; diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h index 3807c45..b837588 100644 --- a/arch/arm/mach-omap2/mmc-twl4030.h +++ b/arch/arm/mach-omap2/mmc-twl4030.h @@ -9,6 +9,7 @@ struct twl4030_hsmmc_info { u8 mmc;/* controller 1/2/3 */ u8 wires; /* 1/4/8 wires */ + unsigned nomux:1; /* control pin muxing */ booltransceiver;/* MMC-2 option */ boolext_clock; /* use external pin for input clock */ boolcover_only; /* No card detect - just cover switch */ -- 1.6.0.3.613.g9f8f13 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/2] ARM: OMAP: Add OMAP34xx pin muxing into I2C bus registration helper
On Mon, 9 Jun 2008 17:46:41 +0300 Jarkko Nikula <[EMAIL PROTECTED]> wrote: > Signed-off-by: Jarkko Nikula <[EMAIL PROTECTED]> > --- > arch/arm/plat-omap/i2c.c | 51 +++ > +- 1 files changed, 32 insertions(+), 19 deletions(-) > > -static void __init omap_i2c_mux_pins(int bus_id) > +static const int omap1_pins[][2] = { > + { I2C_SCL, I2C_SDA }, > +}; > +static const int omap24xx_pins[][2] = { > + { M19_24XX_I2C1_SCL, L15_24XX_I2C1_SDA }, > + { J15_24XX_I2C2_SCL, H19_24XX_I2C2_SDA }, > +}; > +static const int omap34xx_pins[][2] = { > + { K21_34XX_I2C1_SCL, J21_34XX_I2C1_SDA}, > + { AF15_34XX_I2C2_SCL, AE15_34XX_I2C2_SDA}, > + { AF14_34XX_I2C3_SCL, AG14_34XX_I2C3_SDA}, > + { AD26_34XX_I2C4_SCL, AE26_34XX_I2C4_SDA}, > +}; > + NAK to myself. Avoiding few #ifdefs is not an excuse for spending some bytes here and also it doesn't look good to add muxing support for bus 4 where the module itself doesn't support it (yet). Lazy me :-) Jarkko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/2] ARM: OMAP: Add OMAP34xx pin muxing into I2C bus registration helper
Signed-off-by: Jarkko Nikula <[EMAIL PROTECTED]> --- arch/arm/plat-omap/i2c.c | 51 - 1 files changed, 32 insertions(+), 19 deletions(-) diff --git a/arch/arm/plat-omap/i2c.c b/arch/arm/plat-omap/i2c.c index 7990ab1..23c2920 100644 --- a/arch/arm/plat-omap/i2c.c +++ b/arch/arm/plat-omap/i2c.c @@ -80,26 +80,39 @@ static struct platform_device omap_i2c_devices[] = { #endif }; -static void __init omap_i2c_mux_pins(int bus_id) +static const int omap1_pins[][2] = { + { I2C_SCL, I2C_SDA }, +}; +static const int omap24xx_pins[][2] = { + { M19_24XX_I2C1_SCL, L15_24XX_I2C1_SDA }, + { J15_24XX_I2C2_SCL, H19_24XX_I2C2_SDA }, +}; +static const int omap34xx_pins[][2] = { + { K21_34XX_I2C1_SCL, J21_34XX_I2C1_SDA}, + { AF15_34XX_I2C2_SCL, AE15_34XX_I2C2_SDA}, + { AF14_34XX_I2C3_SCL, AG14_34XX_I2C3_SDA}, + { AD26_34XX_I2C4_SCL, AE26_34XX_I2C4_SDA}, +}; + +static void __init omap_i2c_mux_pins(int bus) { - /* TODO: Muxing for OMAP3 */ - switch (bus_id) { - case 1: - if (cpu_class_is_omap1()) { - omap_cfg_reg(I2C_SCL); - omap_cfg_reg(I2C_SDA); - } else if (cpu_is_omap24xx()) { - omap_cfg_reg(M19_24XX_I2C1_SCL); - omap_cfg_reg(L15_24XX_I2C1_SDA); - } - break; - case 2: - if (cpu_is_omap24xx()) { - omap_cfg_reg(J15_24XX_I2C2_SCL); - omap_cfg_reg(H19_24XX_I2C2_SDA); - } - break; + int scl, sda; + + if (cpu_class_is_omap1()) { + scl = omap1_pins[bus][0]; + sda = omap1_pins[bus][1]; + } else if (cpu_is_omap24xx()) { + scl = omap24xx_pins[bus][0]; + sda = omap24xx_pins[bus][1]; + } else if (cpu_is_omap34xx()) { + scl = omap34xx_pins[bus][0]; + sda = omap34xx_pins[bus][1]; + } else { + return; } + + omap_cfg_reg(sda); + omap_cfg_reg(scl); } int __init omap_register_i2c_bus(int bus_id, u32 clkrate, @@ -143,6 +156,6 @@ int __init omap_register_i2c_bus(int bus_id, u32 clkrate, res[1].start = irq; } - omap_i2c_mux_pins(bus_id); + omap_i2c_mux_pins(bus_id - 1); return platform_device_register(pdev); } -- 1.5.5.3 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html