From 38747167ce47d4e95bc8f2b3ee33ce61ba0286fc Mon Sep 17 00:00:00 2001
From: Torben Hohn <torbenh@linutronix.de>
Date: Mon, 17 Mar 2014 17:14:05 +0100
Subject: [PATCH 35/51] dts am335x-pcm051: Add nandflash, and fixup a few
 errors

---
 arch/arm/boot/dts/am335x-pcm051.dts |  114 ++++++++++++++++++++++++++++++++++-
 1 file changed, 111 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-pcm051.dts b/arch/arm/boot/dts/am335x-pcm051.dts
index 76bc1d3..a45f600 100644
--- a/arch/arm/boot/dts/am335x-pcm051.dts
+++ b/arch/arm/boot/dts/am335x-pcm051.dts
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "am33xx.dtsi"
+#include "am33xx.dtsi"
 
 / {
        model = "TI AM335x PHYTEC pcm051";
@@ -61,6 +61,26 @@
                        >;
                };
 
+               nandflash_pins_s0: nandflash_pins_s0 {
+                       pinctrl-single,pins = <
+                               0x0 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad0.gpmc_ad0 */
+                               0x4 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad1.gpmc_ad1 */
+                               0x8 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad2.gpmc_ad2 */
+                               0xc (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad3.gpmc_ad3 */
+                               0x10 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad4.gpmc_ad4 */
+                               0x14 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad5.gpmc_ad5 */
+                               0x18 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad6.gpmc_ad6 */
+                               0x1c (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad7.gpmc_ad7 */
+                               0x70 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_wait0.gpmc_wait0 */
+                               0x74 (PIN_INPUT_PULLUP | MUX_MODE7)     /* gpmc_wpn.gpio0_30 */
+                               0x7c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_csn0.gpmc_csn0  */
+                               0x90 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_advn_ale.gpmc_advn_ale */
+                               0x94 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_oen_ren.gpmc_oen_ren */
+                               0x98 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_wen.gpmc_wen */
+                               0x9c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_be0n_cle.gpmc_be0n_cle */
+                       >;
+               };
+
                ecap0_pins: backlight_pins {
                        pinctrl-single,pins = <
                                0x164 0x0       /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
@@ -76,11 +96,11 @@
        };
 
        ocp {
-               uart1: serial@44e09000 {
+               uart0: serial@44e09000 {
                        status = "okay";
                };
 
-               i2c1: i2c@44e0b000 {
+               i2c0: i2c@44e0b000 {
                        pinctrl-names = "default";
                        pinctrl-0 = <&i2c0_pins>;
 
@@ -93,6 +113,11 @@
 
                };
 
+               elm: elm@48080000 {
+                       status = "okay";
+               };
+
+
                epwmss0: epwmss@48300000 {
                        status = "okay";
 
@@ -102,6 +127,87 @@
                                pinctrl-0 = <&ecap0_pins>;
                        };
                };
+
+               gpmc: gpmc@50000000 {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&nandflash_pins_s0>;
+                       ranges = <0 0 0x08000000 0x10000000>;   /* CS0: NAND */
+                       nand@0,0 {
+                               reg = <0 0 0>; /* CS0, offset 0 */
+                               nand-bus-width = <8>;
+                               ti,nand-ecc-opt = "bch8";
+                               gpmc,device-nand = "true";
+                               gpmc,device-width = <1>;
+                               gpmc,sync-clk-ps = <0>;
+                               gpmc,cs-on-ns = <0>;
+                               gpmc,cs-rd-off-ns = <30>;
+                               gpmc,cs-wr-off-ns = <30>;
+                               gpmc,adv-on-ns = <0>;
+                               gpmc,adv-rd-off-ns = <30>;
+                               gpmc,adv-wr-off-ns = <30>;
+                               gpmc,we-on-ns = <0>;
+                               gpmc,we-off-ns = <20>;
+                               gpmc,oe-on-ns = <10>;
+                               gpmc,oe-off-ns = <30>;
+                               gpmc,access-ns = <30>;
+                               gpmc,rd-cycle-ns = <30>;
+                               gpmc,wr-cycle-ns = <30>;
+                               gpmc,wait-on-read = "true";
+                               gpmc,wait-on-write = "true";
+                               gpmc,bus-turnaround-ns = <0>;
+                               gpmc,cycle2cycle-delay-ns = <50>;
+                               gpmc,clk-activation-ns = <0>;
+                               gpmc,wait-monitoring-ns = <0>;
+                               gpmc,wr-access-ns = <30>;
+                               gpmc,wr-data-mux-bus-ns = <0>;
+
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               elm_id = <&elm>;
+
+
+                               partition@0 {
+                                       label = "xload";
+                                       reg = <0x0 0x20000>;
+                               };
+
+                               partition@1 {
+                                       label = "xload_backup1";
+                                       reg = <0x20000 0x20000>;
+                               };
+
+                               partition@2 {
+                                       label = "xload_backup2";
+                                       reg = <0x40000 0x20000>;
+                               };
+
+                               partition@3 {
+                                       label = "xload_backup3";
+                                       reg = <0x60000 0x20000>;
+                               };
+
+                               partition@4 {
+                                       label = "barebox";
+                                       reg = <0x80000 0x80000>;
+                               };
+
+                               partition@5 {
+                                       label = "bareboxenv";
+                                       reg = <0x100000 0x20000>;
+                               };
+
+                               partition@6 {
+                                       label = "kernel";
+                                       reg = <0x120000 0x800000>;
+                               };
+
+                               partition@7 {
+                                       label = "root";
+                                       reg = <0x920000 0x1f6e0000>;
+                               };
+                       };
+               };
        };
 
        backlight {
@@ -166,10 +272,12 @@
        phy_id = <&davinci_mdio>, <1>;
 };
 
+/*
 &mmc1 {
        status = "okay";
        vmmc-supply = <&ldo3_reg>;
 };
+*/
 
 &lcdc {
        status = "okay";
-- 
1.7.10.4