From 1faaba3dd763f6abe8778f7ef8c40b4f4fee5384 Mon Sep 17 00:00:00 2001 From: "Kumar, Anil" Date: Wed, 16 Jan 2013 14:37:39 +0530 Subject: [PATCH 1/5] ARM: davinci: da850: add pinctrl driver DT entries For DT, DaVinci platform can use pinctrl-single driver for handling padconf registers. Enable PINCTRL Kconfig for MACH_DA8XX_DT platform. Add required pinctrl DT entries in da850 dts file. Test procedure 1)Populate DT file with NAND node information. 2)Populate board DT file with pinmux information for NAND. 3)Boot and confirm NAND is detected by the kernel. 4)cat /proc/mtd to show partitions. Signed-off-by: Kumar, Anil Signed-off-by: Sekhar Nori --- arch/arm/boot/dts/da850-evm.dts | 3 +++ arch/arm/boot/dts/da850.dtsi | 10 ++++++++++ arch/arm/mach-davinci/Kconfig | 1 + 3 files changed, 14 insertions(+) diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts index 37dc5a3243b8..087ba28285d2 100644 --- a/arch/arm/boot/dts/da850-evm.dts +++ b/arch/arm/boot/dts/da850-evm.dts @@ -15,6 +15,9 @@ model = "DA850/AM1808/OMAP-L138 EVM"; soc { + pmx_core: pinmux@1c14120 { + status = "okay"; + }; serial0: serial@1c42000 { status = "okay"; }; diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi index 640ab75c20db..f74740d0994b 100644 --- a/arch/arm/boot/dts/da850.dtsi +++ b/arch/arm/boot/dts/da850.dtsi @@ -29,6 +29,16 @@ #size-cells = <1>; ranges = <0x0 0x01c00000 0x400000>; + pmx_core: pinmux@1c14120 { + compatible = "pinctrl-single"; + reg = <0x14120 0x50>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-single,bit-per-mux; + pinctrl-single,register-width = <32>; + pinctrl-single,function-mask = <0xffffffff>; + status = "disabled"; + }; serial0: serial@1c42000 { compatible = "ns16550a"; reg = <0x42000 0x100>; diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig index 0153950f6068..a075b3e0c5c7 100644 --- a/arch/arm/mach-davinci/Kconfig +++ b/arch/arm/mach-davinci/Kconfig @@ -62,6 +62,7 @@ config MACH_DA8XX_DT bool "Support DA8XX platforms using device tree" default y depends on ARCH_DAVINCI_DA8XX + select PINCTRL help Say y here to include support for TI DaVinci DA850 based using Flattened Device Tree. More information at Documentation/devicetree From 99b8800ca8dd6690defc3edca8cc7e43ef63fe84 Mon Sep 17 00:00:00 2001 From: "Kumar, Anil" Date: Wed, 16 Jan 2013 14:37:41 +0530 Subject: [PATCH 2/5] ARM: davinci: da850: add NAND driver DT entries Add NAND driver DT node and related pinctrl DT data to export NAND functionality on da850 evm. Signed-off-by: Kumar, Anil Signed-off-by: Sekhar Nori --- arch/arm/boot/dts/da850-evm.dts | 5 +++++ arch/arm/boot/dts/da850.dtsi | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts index 087ba28285d2..98c1a48d5797 100644 --- a/arch/arm/boot/dts/da850-evm.dts +++ b/arch/arm/boot/dts/da850-evm.dts @@ -28,4 +28,9 @@ status = "okay"; }; }; + nand_cs3@62000000 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&nand_cs3_pins>; + }; }; diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi index f74740d0994b..25510989cf40 100644 --- a/arch/arm/boot/dts/da850.dtsi +++ b/arch/arm/boot/dts/da850.dtsi @@ -38,6 +38,23 @@ pinctrl-single,register-width = <32>; pinctrl-single,function-mask = <0xffffffff>; status = "disabled"; + + nand_cs3_pins: pinmux_nand_pins { + pinctrl-single,bits = < + /* EMA_OE, EMA_WE */ + 0x1c 0x00110000 0x00ff0000 + /* EMA_CS[4],EMA_CS[3]*/ + 0x1c 0x00000110 0x00000ff0 + /* + * EMA_D[0], EMA_D[1], EMA_D[2], + * EMA_D[3], EMA_D[4], EMA_D[5], + * EMA_D[6], EMA_D[7] + */ + 0x24 0x11111111 0xffffffff + /* EMA_A[1], EMA_A[2] */ + 0x30 0x01100000 0x0ff00000 + >; + }; }; serial0: serial@1c42000 { compatible = "ns16550a"; @@ -67,4 +84,17 @@ status = "disabled"; }; }; + nand_cs3@62000000 { + compatible = "ti,davinci-nand"; + reg = <0x62000000 0x807ff + 0x68000000 0x8000>; + ti,davinci-chipselect = <1>; + ti,davinci-mask-ale = <0>; + ti,davinci-mask-cle = <0>; + ti,davinci-mask-chipsel = <0>; + ti,davinci-ecc-mode = "hw"; + ti,davinci-ecc-bits = <4>; + ti,davinci-nand-use-bbt; + status = "disabled"; + }; }; From d91801df767a54a678036ee2a7dec849b8201e26 Mon Sep 17 00:00:00 2001 From: "Kumar, Anil" Date: Wed, 16 Jan 2013 14:37:40 +0530 Subject: [PATCH 3/5] ARM: davinci: da8xx defconfig: enable pinctrl config option Enable pinctrl related config option in da8xx_omapl_defconfig Signed-off-by: Kumar, Anil Signed-off-by: Sekhar Nori --- arch/arm/configs/da8xx_omapl_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig index f29223954af8..0892db4346e9 100644 --- a/arch/arm/configs/da8xx_omapl_defconfig +++ b/arch/arm/configs/da8xx_omapl_defconfig @@ -81,6 +81,7 @@ CONFIG_SERIAL_OF_PLATFORM=y CONFIG_I2C=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_DAVINCI=y +CONFIG_PINCTRL_SINGLE=y # CONFIG_HWMON is not set CONFIG_WATCHDOG=y CONFIG_REGULATOR=y From c57ff58d12209e96fd9beeb6efa0e40ad27b80dd Mon Sep 17 00:00:00 2001 From: "Lad, Prabhakar" Date: Fri, 25 Jan 2013 16:48:44 +0530 Subject: [PATCH 4/5] ARM: davinci: da850: move interrupt-parent property to soc node This patch moves 'interrupt-parent' property to soc node, so that the child inherits this property. This avoids adding 'interrupt-parent' property to each node. Signed-off-by: Lad, Prabhakar Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: davinci-linux-open-source@linux.davincidsp.com Cc: devicetree-discuss@lists.ozlabs.org Cc: Sekhar Nori Cc: Heiko Schocher Signed-off-by: Sekhar Nori --- arch/arm/boot/dts/da850.dtsi | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi index 25510989cf40..7c84822d33a1 100644 --- a/arch/arm/boot/dts/da850.dtsi +++ b/arch/arm/boot/dts/da850.dtsi @@ -28,6 +28,7 @@ #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x01c00000 0x400000>; + interrupt-parent = <&intc>; pmx_core: pinmux@1c14120 { compatible = "pinctrl-single"; @@ -62,7 +63,6 @@ clock-frequency = <150000000>; reg-shift = <2>; interrupts = <25>; - interrupt-parent = <&intc>; status = "disabled"; }; serial1: serial@1d0c000 { @@ -71,7 +71,6 @@ clock-frequency = <150000000>; reg-shift = <2>; interrupts = <53>; - interrupt-parent = <&intc>; status = "disabled"; }; serial2: serial@1d0d000 { @@ -80,7 +79,6 @@ clock-frequency = <150000000>; reg-shift = <2>; interrupts = <61>; - interrupt-parent = <&intc>; status = "disabled"; }; }; From 1661636d362b6d1a6c2bab210f2ab363a69deccc Mon Sep 17 00:00:00 2001 From: Mrugesh Katepallewar Date: Mon, 28 Jan 2013 13:17:48 +0530 Subject: [PATCH 5/5] ARM: davinci: da850: add RTC DT entries Add RTC DT entries in da850 dts file. Tested on da850-evm device. Test Procedure: $ date 2013.01.28-10:00:00 # usage: date[YYYY.]MM.DD-hh:mm[:ss] $ hwclock -w (reset board and check system time) Signed-off-by: Mrugesh Katepallewar Signed-off-by: Sekhar Nori --- arch/arm/boot/dts/da850-evm.dts | 3 +++ arch/arm/boot/dts/da850.dtsi | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts index 98c1a48d5797..fa04152b24bf 100644 --- a/arch/arm/boot/dts/da850-evm.dts +++ b/arch/arm/boot/dts/da850-evm.dts @@ -27,6 +27,9 @@ serial2: serial@1d0d000 { status = "okay"; }; + rtc0: rtc@1c23000 { + status = "okay"; + }; }; nand_cs3@62000000 { status = "okay"; diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi index 7c84822d33a1..8dd15c0426a8 100644 --- a/arch/arm/boot/dts/da850.dtsi +++ b/arch/arm/boot/dts/da850.dtsi @@ -81,6 +81,13 @@ interrupts = <61>; status = "disabled"; }; + rtc0: rtc@1c23000 { + compatible = "ti,da830-rtc"; + reg = <0x23000 0x1000>; + interrupts = <19 + 19>; + status = "disabled"; + }; }; nand_cs3@62000000 { compatible = "ti,davinci-nand";