[PATCH 2/5] [RFC-HACK] ARM: dts: OMAP3: reorder pinmux_gpio1_pins

Christoph Fritz chf.fritz at googlemail.com
Thu May 22 16:06:23 PDT 2014


pinctrl-single for omap3_pmx_core2 gets deferred which results in
some corrupt IRQs so that mmc, spi and dss stop working.

Diff of bootlog with (good) and without (fail) this patch:

--- good
+++ fail
 cpuidle: using governor ladder
 cpuidle: using governor menu
 Reprogramming SDRC clock to 400000000 Hz
-pinctrl-single 480025a0.pinmux: 46 pins at pa fa0025a0 size 92
 pinctrl-single 48002030.pinmux: 282 pins at pa fa002030 size 564
 pinctrl-single 48002a00.pinmux: 46 pins at pa fa002a00 size 92
+omap_gpio 48310000.gpio: could not find pctldev for node /ocp/pinmux at 480025a0/pinmux_gpio1_pins, deferring probe
+platform 48310000.gpio: Driver omap_gpio requests probe deferral
 OMAP GPIO hardware version 2.5
 platform 49022000.mcbsp: alias fck already exists
 omap-gpmc 6e000000.gpmc: GPMC revision 5.0
 gpmc_probe_nand_child: ti,elm-id property not found
 gpmc_read_settings_dt: page/burst-length set but not used!
 gpmc_read_settings_dt: read/write wait monitoring not enabled!
+pinctrl-single 480025a0.pinmux: 46 pins at pa fa0025a0 size 92
 omap3_dbb056_legacy_init: Late Reparent clkout2 to 96M_FCK
 omap3_dbb056_legacy_init: Set clkout2 to 24MHz for internal usb hub
 No ATAGs?
@@ -130,8 +132,8 @@
 49020000.serial: ttyO2 at MMIO 0x49020000 (irq = 90, base_baud = 3000000) is a OMAP UART2
 brd: module loaded
 loop: module loaded
-twl 0-0048: PIH (irq 23) chaining IRQs 338..346
-twl 0-0048: power (irq 343) chaining IRQs 346..353
+twl 0-0048: PIH (irq 23) chaining IRQs 306..314
+twl 0-0048: power (irq 311) chaining IRQs 314..321
 VAUX1: at 3000 mV
 VAUX2_4030: 2800 mV
 VAUX3: at 2800 mV
@@ -150,7 +152,7 @@
 VPLL1: at 1800 mV
 VPLL2: 1800 mV
 VSIM: 1800 <--> 3000 mV at 1800 mV
-twl4030_gpio twl4030-gpio: gpio (irq 338) chaining IRQs 354..371
+twl4030_gpio twl4030-gpio: gpio (irq 306) chaining IRQs 322..339
 twl4030_usb twl4030-usb.29: Initialized TWL4030 USB module
 mtdoops: mtd device (mtddev=name/number) must be supplied
 nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xba
@@ -164,11 +166,12 @@
 0x000000260000-0x000000280000 : "u-boot-environment"
 0x000000280000-0x000000780000 : "kernel"
 0x000000780000-0x000010000000 : "filesystem"
+irq: no irq domain found for /ocp/gpio at 48310000 !
 CAN device driver interface
 sja1000 CAN netdevice driver
 libphy: smsc911x-mdio: probed
 smsc911x 15000000.ethernet eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=15000000.etherne:01, irq=-1)
@@ -208,16 +211,16 @@
 hub 3-0:1.0: USB hub found
 hub 3-0:1.0: 1 port detected
 mousedev: PS/2 mouse device common for all mice
-ads7846 spi2.0: touchscreen, irq 120
-input: ADS7846 Touchscreen as /devices/68000000.ocp/4809a000.spi/spi_master/spi2/spi2.0/input/input0
+ads7846: probe of spi2.0 failed with error -22
 twl_rtc rtc.8: Power up reset detected.
 twl_rtc rtc.8: Enabling TWL-RTC
 twl_rtc rtc.8: rtc core: registered rtc.8 as rtc0
 i2c /dev entries driver
-usb 1-1: new high-speed USB device number 2 using ehci-omap
 omap_wdt: OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
+usb 1-1: new high-speed USB device number 2 using ehci-omap
 VMMC1: Restricting voltage, 3100000-1950000uV
 omap_hsmmc 480b4000.mmc: could not set regulator OCR (-22)
+platform leds.3: Driver leds-gpio requests probe deferral
 usbcore: registered new interface driver usbhid
 usbhid: USB HID core driver
 usb 1-1: New USB device found, idVendor=0424, idProduct=2512
@@ -239,6 +242,6 @@
 Registering SWP/SWPB emulation handler
 registered taskstats version 1
 twl_rtc rtc.8: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
-smsc911x 15000000.ethernet eth0: SMSC911x/921x identified at 0xc8856000, IRQ: 241
-smsc911x 20000000.ethernet eth1: SMSC911x/921x identified at 0xc8858000, IRQ: 210
-Sending DHCP requests ...
+smsc911x 15000000.ethernet eth0: SMSC911x/921x identified at 0xc8856000, IRQ: 209
+smsc911x 20000000.ethernet eth1: SMSC911x/921x identified at 0xc8858000, IRQ: 178
+Sending DHCP requests ..., OK
---
 arch/arm/boot/dts/omap34xx.dtsi |   28 ++++++++++++++-------------
 arch/arm/boot/dts/omap36xx.dtsi |   40 ++++++++++++++++++++-------------------
 2 files changed, 36 insertions(+), 32 deletions(-)

diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi
index 2e92360..4994cb0 100644
--- a/arch/arm/boot/dts/omap34xx.dtsi
+++ b/arch/arm/boot/dts/omap34xx.dtsi
@@ -8,6 +8,21 @@
  * kind, whether express or implied.
  */
 
+/ {
+	ocp {
+		omap3_pmx_core2: pinmux at 480025d8 {
+			compatible = "ti,omap3-padconf", "pinctrl-single";
+			reg = <0x480025d8 0x24>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			pinctrl-single,register-width = <16>;
+			pinctrl-single,function-mask = <0xff1f>;
+		};
+	};
+};
+
 #include "omap3.dtsi"
 
 / {
@@ -25,19 +40,6 @@
 			clock-latency = <300000>; /* From legacy driver */
 		};
 	};
-
-	ocp {
-		omap3_pmx_core2: pinmux at 480025d8 {
-			compatible = "ti,omap3-padconf", "pinctrl-single";
-			reg = <0x480025d8 0x24>;
-			#address-cells = <1>;
-			#size-cells = <0>;
-			#interrupt-cells = <1>;
-			interrupt-controller;
-			pinctrl-single,register-width = <16>;
-			pinctrl-single,function-mask = <0xff1f>;
-		};
-	};
 };
 
 /include/ "omap34xx-omap36xx-clocks.dtsi"
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
index 22cf464..fad05f3 100644
--- a/arch/arm/boot/dts/omap36xx.dtsi
+++ b/arch/arm/boot/dts/omap36xx.dtsi
@@ -8,26 +8,7 @@
  * kind, whether express or implied.
  */
 
-#include "omap3.dtsi"
-
 / {
-	aliases {
-		serial3 = &uart4;
-	};
-
-	cpus {
-		/* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */
-		cpu at 0 {
-			operating-points = <
-				/* kHz    uV */
-				300000  1012500
-				600000  1200000
-				800000  1325000
-			>;
-			clock-latency = <300000>; /* From legacy driver */
-		};
-	};
-
 	ocp {
 		uart4: serial at 49042000 {
 			compatible = "ti,omap3-uart";
@@ -72,6 +53,27 @@
 	};
 };
 
+#include "omap3.dtsi"
+
+/ {
+	aliases {
+		serial3 = &uart4;
+	};
+
+	cpus {
+		/* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */
+		cpu at 0 {
+			operating-points = <
+				/* kHz    uV */
+				300000  1012500
+				600000  1200000
+				800000  1325000
+			>;
+			clock-latency = <300000>; /* From legacy driver */
+		};
+	};
+};
+
 /* OMAP3630 needs dss_96m_fck for VENC */
 &venc {
 	clocks = <&dss_tv_fck>, <&dss_96m_fck>;
-- 
1.7.10.4




More information about the linux-arm-kernel mailing list