ARM: dts: am437x: cm-t43: add NAND support
authorNikita Kiryanov <nikita@compulab.co.il>
Tue, 1 Dec 2015 13:55:00 +0000 (15:55 +0200)
committerTony Lindgren <tony@atomide.com>
Thu, 3 Dec 2015 16:12:58 +0000 (08:12 -0800)
One of the CompuLab cm-t43 configurations comes with on-board NAND flash as
primary storage. It is partitioned into kernel, dtb, and rootfs partitions.
Add it to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/am437x-cm-t43.dts

index 27e5948238676f0a7c4104de0fdb4ca316cbf7c0..efabb31d33d104908835638109b19cf961a92674 100644 (file)
                        AM4372_IOPAD(0x95C, PIN_OUTPUT | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
                >;
        };
+
+       nand_flash_x8: nand_flash_x8 {
+               pinctrl-single,pins = <
+                       AM4372_IOPAD(0x800, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x804, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x808, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x80c, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x810, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x814, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x818, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x81c, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
+                       AM4372_IOPAD(0x870, PIN_INPUT_PULLUP  | MUX_MODE0)
+                       AM4372_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE0)
+                       AM4372_IOPAD(0x87c, PIN_OUTPUT_PULLUP | MUX_MODE0)
+                       AM4372_IOPAD(0x898, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
+                       AM4372_IOPAD(0x894, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
+                       AM4372_IOPAD(0x890, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
+                       AM4372_IOPAD(0x89c, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
+               >;
+       };
+};
+
+&gpmc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_flash_x8>;
+       ranges = <0 0 0x08000000 0x1000000>;
+       nand@0,0 {
+               reg = <0 0 0>;
+               ti,nand-ecc-opt = "bch8";
+               ti,elm-id = <&elm>;
+
+               nand-bus-width = <8>;
+               gpmc,device-width = <1>;
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <44>;
+               gpmc,cs-wr-off-ns = <44>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <34>;
+               gpmc,adv-wr-off-ns = <44>;
+               gpmc,we-on-ns = <0>;
+               gpmc,we-off-ns = <40>;
+               gpmc,oe-on-ns = <0>;
+               gpmc,oe-off-ns = <54>;
+               gpmc,access-ns = <64>;
+               gpmc,rd-cycle-ns = <82>;
+               gpmc,wr-cycle-ns = <82>;
+               gpmc,wait-on-read = "true";
+               gpmc,wait-on-write = "true";
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               gpmc,wait-pin = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+               /* MTD partition table */
+               partition@0 {
+                       label = "kernel";
+                       reg = <0x0 0x00980000>;
+               };
+               partition@980000 {
+                       label = "dtb";
+                       reg = <0x00980000 0x00080000>;
+               };
+               partition@a00000 {
+                       label = "rootfs";
+                       reg = <0x00a00000 0x0>;
+               };
+       };
 };
 
 &i2c0 {
        };
 };
 
+&elm {
+       status = "okay";
+};
+
 &uart0 {
        status = "okay";
 };