ARM: dts: at91: Switch to the new NAND bindings
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Tue, 30 May 2017 09:20:53 +0000 (11:20 +0200)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Wed, 31 May 2017 09:55:41 +0000 (11:55 +0200)
Use the new EBI/NAND bindings to declare NAND chips and remove old NAND
nodes along the way.

Note that we keep using old bindings in at91rm9200.dtsi because this
SoC is not supported by the EBI driver.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Tested-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
37 files changed:
arch/arm/boot/dts/aks-cdu.dts
arch/arm/boot/dts/animeo_ip.dts
arch/arm/boot/dts/at91-cosino.dtsi
arch/arm/boot/dts/at91-kizbox.dts
arch/arm/boot/dts/at91-kizbox2.dts
arch/arm/boot/dts/at91-kizboxmini.dts
arch/arm/boot/dts/at91-linea.dtsi
arch/arm/boot/dts/at91-qil_a9260.dts
arch/arm/boot/dts/at91-sama5d3_xplained.dts
arch/arm/boot/dts/at91-sama5d4_xplained.dts
arch/arm/boot/dts/at91-sama5d4ek.dts
arch/arm/boot/dts/at91-tse850-3.dts
arch/arm/boot/dts/at91sam9260.dtsi
arch/arm/boot/dts/at91sam9261.dtsi
arch/arm/boot/dts/at91sam9261ek.dts
arch/arm/boot/dts/at91sam9263.dtsi
arch/arm/boot/dts/at91sam9263ek.dts
arch/arm/boot/dts/at91sam9g20ek_common.dtsi
arch/arm/boot/dts/at91sam9g45.dtsi
arch/arm/boot/dts/at91sam9m10g45ek.dts
arch/arm/boot/dts/at91sam9n12.dtsi
arch/arm/boot/dts/at91sam9n12ek.dts
arch/arm/boot/dts/at91sam9rl.dtsi
arch/arm/boot/dts/at91sam9rlek.dts
arch/arm/boot/dts/at91sam9x5.dtsi
arch/arm/boot/dts/at91sam9x5cm.dtsi
arch/arm/boot/dts/ethernut5.dts
arch/arm/boot/dts/ge863-pro3.dtsi
arch/arm/boot/dts/pm9g45.dts
arch/arm/boot/dts/sama5d3.dtsi
arch/arm/boot/dts/sama5d3xcm.dtsi
arch/arm/boot/dts/sama5d3xcm_cmp.dtsi
arch/arm/boot/dts/sama5d4.dtsi
arch/arm/boot/dts/tny_a9260_common.dtsi
arch/arm/boot/dts/tny_a9263.dts
arch/arm/boot/dts/usb_a9260_common.dtsi
arch/arm/boot/dts/usb_a9263.dts

index 5b1bf92..888bfcd 100644 (file)
                        status = "okay";
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
-                       status = "okay";
-
-                       bootstrap@0 {
-                               label = "bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       uboot@40000 {
-                               label = "uboot";
-                               reg = <0x40000 0x80000>;
-                       };
-                       ubootenv@c0000 {
-                               label = "ubootenv";
-                               reg = <0xc0000 0x40000>;
-                       };
-                       kernel@100000 {
-                               label = "kernel";
-                               reg = <0x100000 0x400000>;
-                       };
-                       rootfs@500000 {
-                               label = "rootfs";
-                               reg = <0x500000 0x7b00000>;
+               ebi: ebi@10000000 {
+                       nand_controller: nand-controller {
+                               nand: nand@3 {
+                                       partitions {
+                                               bootstrap@0 {
+                                                       label = "bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               uboot@40000 {
+                                                       label = "uboot";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               ubootenv@c0000 {
+                                                       label = "ubootenv";
+                                                       reg = <0xc0000 0x40000>;
+                                               };
+
+                                               kernel@100000 {
+                                                       label = "kernel";
+                                                       reg = <0x100000 0x400000>;
+                                               };
+
+                                               rootfs@500000 {
+                                                       label = "rootfs";
+                                                       reg = <0x500000 0x7b00000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 9cc372b..26ade8c 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       barebox@0 {
-                               label = "barebox";
-                               reg = <0x0 0x58000>;
-                       };
-
-                       u_boot_env@58000 {
-                               label = "u_boot_env";
-                               reg = <0x58000 0x8000>;
-                       };
-
-                       ubi@60000 {
-                               label = "ubi";
-                               reg = <0x60000 0x1FA0000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               barebox@0 {
+                                                       label = "barebox";
+                                                       reg = <0x0 0x58000>;
+                                               };
+
+                                               u_boot_env@58000 {
+                                                       label = "u_boot_env";
+                                                       reg = <0x58000 0x8000>;
+                                               };
+
+                                               ubi@60000 {
+                                                       label = "ubi";
+                                                       reg = <0x60000 0x1FA0000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index 02d8ef4..89cde17 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       atmel,has-pmecc;        /* Enable PMECC */
-                       atmel,pmecc-cap = <4>;
-                       atmel,pmecc-sector-size = <512>;
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_addr_nand
+                                    &pinctrl_ebi_data_0_7>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       uboot@40000 {
-                               label = "u-boot";
-                               reg = <0x40000 0x80000>;
-                       };
-
-                       ubootenv@c0000 {
-                               label = "U-Boot Env";
-                               reg = <0xc0000 0x140000>;
-                       };
-
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
-
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_oe_we
+                                            &pinctrl_nand_cs
+                                            &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-ecc-strength = <4>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               uboot@40000 {
+                                                       label = "u-boot";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               ubootenv@c0000 {
+                                                       label = "U-Boot Env";
+                                                       reg = <0xc0000 0x140000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index b4f147c..1f31df8 100644 (file)
                        status = "okay";
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       bootstrap@0 {
-                               label = "bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       ubi@20000 {
-                               label = "ubi";
-                               reg = <0x20000 0x7fe0000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               bootstrap@0 {
+                                                       label = "bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               ubi@20000 {
+                                                       label = "ubi";
+                                                       reg = <0x20000 0x7fe0000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 50a1456..4372c02 100644 (file)
                        status = "okay";
                };
 
-               nand0: nand@60000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       atmel,has-pmecc;
-                       atmel,pmecc-cap = <4>;
-                       atmel,pmecc-sector-size = <512>;
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       bootstrap@0 {
-                               label = "bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x2>;
+                                       atmel,rb = <0>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-ecc-strength = <4>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               bootstrap@0 {
+                                                       label = "bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
 
-                       ubi@20000 {
-                               label = "ubi";
-                               reg = <0x20000 0x7fe0000>;
+                                               ubi@20000 {
+                                                       label = "ubi";
+                                                       reg = <0x20000 0x7fe0000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 9682d10..33238fc 100644 (file)
                        status = "okay";
                };
 
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_addr_nand
+                                    &pinctrl_ebi_data_0_7>;
+                       pinctrl-names = "default";
+                       status = "okay";
+
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_oe_we
+                                            &pinctrl_nand_cs
+                                            &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-ecc-strength = <4>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               bootstrap@0 {
+                                                       label = "bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               ubi@20000 {
+                                                       label = "ubi";
+                                                       reg = <0x20000 0x7fe0000>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
                nand0: nand@40000000 {
                        nand-bus-width = <8>;
                        nand-ecc-mode = "hw";
                        nand-on-flash-bbt;
                        status = "okay";
 
-                       bootstrap@0 {
-                               label = "bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       ubi@20000 {
-                               label = "ubi";
-                               reg = <0x20000 0x7fe0000>;
-                       };
                };
        };
 
index 9bf9aae..87e5090 100644 (file)
        };
 };
 
-&nand0 {
+&ebi {
+       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+       pinctrl-names = "default";
        status = "okay";
+};
+
 
-       nand-bus-width = <8>;
-       nand-ecc-mode = "hw";
-       atmel,has-pmecc;
-       atmel,pmecc-cap = <4>;
-       atmel,pmecc-sector-size = <512>;
-       nand-on-flash-bbt;
+&nand_controller {
+       status = "okay";
+
+       nand: nand@3 {
+               reg = <0x3 0x0 0x2>;
+               atmel,rb = <0>;
+               nand-bus-width = <8>;
+               nand-ecc-mode = "hw";
+               nand-ecc-strength = <4>;
+               nand-ecc-step-size = <512>;
+               nand-on-flash-bbt;
+               label = "atmel_nand";
+       };
 };
index 8f01918..f463527 100644 (file)
                        status = "okay";
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
-
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x20000>;
-                       };
-
-                       bareboxenv2@80000 {
-                               label = "bareboxenv2";
-                               reg = <0x80000 0x20000>;
-                       };
-
-                       oftree@a0000 {
-                               label = "oftree";
-                               reg = <0xa0000 0x20000>;
-                       };
-
-                       kernel@c0000 {
-                               label = "kernel";
-                               reg = <0xc0000 0x400000>;
-                       };
-
-                       rootfs@4c0000 {
-                               label = "rootfs";
-                               reg = <0x4c0000 0x7800000>;
-                       };
-
-                       data@7cc0000 {
-                               label = "data";
-                               reg = <0x7cc0000 0x8340000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
+
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x20000>;
+                                               };
+
+                                               bareboxenv2@80000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x80000 0x20000>;
+                                               };
+
+                                               oftree@a0000 {
+                                                       label = "oftree";
+                                                       reg = <0xa0000 0x20000>;
+                                               };
+
+                                               kernel@c0000 {
+                                                       label = "kernel";
+                                                       reg = <0xc0000 0x400000>;
+                                               };
+
+                                               rootfs@4c0000 {
+                                                       label = "rootfs";
+                                                       reg = <0x4c0000 0x7800000>;
+                                               };
+
+                                               data@7cc0000 {
+                                                       label = "data";
+                                                       reg = <0x7cc0000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 5a53fcf..3af088d 100644 (file)
                        };
                };
 
-               nand0: nand@60000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       atmel,has-pmecc;
-                       atmel,pmecc-cap = <4>;
-                       atmel,pmecc-sector-size = <512>;
-                       nand-on-flash-bbt;
-                       status = "okay";
-
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       bootloader@40000 {
-                               label = "bootloader";
-                               reg = <0x40000 0x80000>;
-                       };
-
-                       bootloaderenv@c0000 {
-                               label = "bootloader env";
-                               reg = <0xc0000 0xc0000>;
-                       };
-
-                       dtb@180000 {
-                               label = "device tree";
-                               reg = <0x180000 0x80000>;
-                       };
-
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
-
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
-                       };
-               };
-
                usb0: gadget@00500000 {
                        atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;   /* PE9, conflicts with A9 */
                        pinctrl-names = "default";
                usb2: ehci@00700000 {
                        status = "okay";
                };
+
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+                       pinctrl-names = "default";
+                       status = "okay";
+
+                       nand_controller: nand-controller {
+                               status = "okay";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x2>;
+                                       atmel,rb = <0>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-ecc-strength = <4>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
+
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
+                       };
+               };
        };
 
        vcc_mmc0_reg: fixedregulator_mmc0 {
index 5ab14ce..cf71244 100644 (file)
                        status = "okay";
                };
 
-               nand0: nand@80000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       nand-on-flash-bbt;
-                       atmel,has-pmecc;
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_cs3 &pinctrl_ebi_nrd_nandoe
+                                    &pinctrl_ebi_nwe_nandwe &pinctrl_ebi_nandrdy
+                                    &pinctrl_ebi_data_0_7 &pinctrl_ebi_nand_addr>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       bootloader@40000 {
-                               label = "bootloader";
-                               reg = <0x40000 0x80000>;
-                       };
-
-                       bootloaderenv@c0000 {
-                               label = "bootloader env";
-                               reg = <0xc0000 0xc0000>;
-                       };
-
-                       dtb@180000 {
-                               label = "device tree";
-                               reg = <0x180000 0x80000>;
-                       };
-
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
 
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
+                               nand@3 {
+                                       reg = <0x3 0x0 0x2>;
+                                       atmel,rb = <0>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
+
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index f8b96ce..bae5248 100644 (file)
                        status = "okay";
                };
 
-               nand0: nand@80000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       nand-on-flash-bbt;
-                       atmel,has-pmecc;
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_cs3 &pinctrl_ebi_nrd_nandoe
+                                    &pinctrl_ebi_nwe_nandwe &pinctrl_ebi_nandrdy
+                                    &pinctrl_ebi_data_0_7 &pinctrl_ebi_nand_addr>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       bootloader@40000 {
-                               label = "bootloader";
-                               reg = <0x40000 0x80000>;
-                       };
-
-                       bootloaderenv@c0000 {
-                               label = "bootloader env";
-                               reg = <0xc0000 0xc0000>;
-                       };
-
-                       dtb@180000 {
-                               label = "device tree";
-                               reg = <0x180000 0x80000>;
-                       };
-
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
 
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
+                               nand@3 {
+                                       reg = <0x3 0x0 0x2>;
+                                       atmel,rb = <0>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
+
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index a5c0dd6..5f29010 100644 (file)
        };
 };
 
-&nand0 {
-       at91bootstrap@0 {
-               label = "at91bootstrap";
-               reg = <0x0 0x40000>;
-       };
+&nand {
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               at91bootstrap@0 {
+                       label = "at91bootstrap";
+                       reg = <0x0 0x40000>;
+               };
 
-       barebox@40000 {
-               label = "bootloader";
-               reg = <0x40000 0x60000>;
-       };
+               barebox@40000 {
+                       label = "bootloader";
+                       reg = <0x40000 0x60000>;
+               };
 
-       bareboxenv@c0000 {
-               label = "bareboxenv";
-               reg = <0xc0000 0x40000>;
-       };
+               bareboxenv@c0000 {
+                       label = "bareboxenv";
+                       reg = <0xc0000 0x40000>;
+               };
 
-       bareboxenv2@100000 {
-               label = "bareboxenv2";
-               reg = <0x100000 0x40000>;
-       };
+               bareboxenv2@100000 {
+                       label = "bareboxenv2";
+                       reg = <0x100000 0x40000>;
+               };
 
-       oftree@180000 {
-               label = "oftree";
-               reg = <0x180000 0x20000>;
-       };
+               oftree@180000 {
+                       label = "oftree";
+                       reg = <0x180000 0x20000>;
+               };
 
-       kernel@200000 {
-               label = "kernel";
-               reg = <0x200000 0x500000>;
-       };
+               kernel@200000 {
+                       label = "kernel";
+                       reg = <0x200000 0x500000>;
+               };
 
-       rootfs@800000 {
-               label = "rootfs";
-               reg = <0x800000 0x0f800000>;
-       };
+               rootfs@800000 {
+                       label = "rootfs";
+                       reg = <0x800000 0x0f800000>;
+               };
 
-       ovlfs@10000000 {
-               label = "ovlfs";
-               reg = <0x10000000 0x10000000>;
+               ovlfs@10000000 {
+                       label = "ovlfs";
+                       reg = <0x10000000 0x10000000>;
+               };
        };
 };
 
index ab0e733..6582f3c 100644 (file)
                                };
 
                                nand {
-                                       pinctrl_nand: nand-0 {
+                                       pinctrl_nand_rb: nand-rb-0 {
                                                atmel,pins =
-                                                       <AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP     /* PC13 gpio RDY pin pull_up */
-                                                        AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PC14 gpio enable pin pull_up */
+                                                       <AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+                                       };
+
+                                       pinctrl_nand_cs: nand-cs-0 {
+                                               atmel,pins =
+                                                        <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
                                };
 
                        };
                };
 
-               nand0: nand@40000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x40000000 0x10000000
-                              0xffffe800 0x200
-                             >;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioC 13 GPIO_ACTIVE_HIGH
-                                &pioC 14 GPIO_ACTIVE_HIGH
-                                0
-                               >;
-                       status = "disabled";
-               };
-
                usb0: ohci@500000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00500000 0x100000>;
index 3ab0c21..a05353f 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x40000000 0x10000000>;
-                       atmel,nand-addr-offset = <22>;
-                       atmel,nand-cmd-offset = <21>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-
-                       gpios = <&pioC 15 GPIO_ACTIVE_HIGH>,
-                               <&pioC 14 GPIO_ACTIVE_HIGH>,
-                               <0>;
-                       status = "disabled";
-               };
-
                apb {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                                };
 
                                nand {
-                                       pinctrl_nand: nand-0 {
+                                       pinctrl_nand_rb: nand-rb-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+                                       };
+
+                                       pinctrl_nand_cs: nand-cs-0 {
                                                atmel,pins =
-                                                       <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>,
                                                        <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
                                };
index 55bd51f..157e149 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       bootloader@40000 {
-                               label = "bootloader";
-                               reg = <0x40000 0x80000>;
-                       };
-
-                       bootloaderenv@c0000 {
-                               label = "bootloader env";
-                               reg = <0xc0000 0xc0000>;
-                       };
-
-                       dtb@180000 {
-                               label = "device tree";
-                               reg = <0x180000 0x80000>;
-                       };
-
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
-
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 15 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
+
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index db9f3a0..ed4b564 100644 (file)
                                };
 
                                nand {
-                                       pinctrl_nand: nand-0 {
+                                       pinctrl_nand_rb: nand-rb-0 {
                                                atmel,pins =
-                                                       <AT91_PIOA 22 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP     /* PA22 gpio RDY pin pull_up*/
-                                                        AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PD15 gpio enable pin pull_up */
+                                                       <AT91_PIOA 22 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+                                       };
+
+                                       pinctrl_nand_cs: nand-cs-0 {
+                                               atmel,pins =
+                                                        <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
                                };
 
                        status = "disabled";
                };
 
-               nand0: nand@40000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x40000000 0x10000000
-                              0xffffe000 0x200
-                             >;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioA 22 GPIO_ACTIVE_HIGH
-                                &pioD 15 GPIO_ACTIVE_HIGH
-                                0
-                               >;
-                       status = "disabled";
-               };
-
                usb0: ohci@00a00000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00a00000 0x100000>;
index 127cc42..10a0925 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt = <1>;
+               ebi0: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
-
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x20000>;
-                       };
-
-                       bareboxenv2@80000 {
-                               label = "bareboxenv2";
-                               reg = <0x80000 0x20000>;
-                       };
-
-                       oftree@80000 {
-                               label = "oftree";
-                               reg = <0xa0000 0x20000>;
-                       };
-
-                       kernel@a0000 {
-                               label = "kernel";
-                               reg = <0xc0000 0x400000>;
-                       };
-
-                       rootfs@4a0000 {
-                               label = "rootfs";
-                               reg = <0x4c0000 0x7800000>;
-                       };
-
-                       data@7ca0000 {
-                               label = "data";
-                               reg = <0x7cc0000 0x8340000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
+
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x20000>;
+                                               };
+
+                                               bareboxenv2@80000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x80000 0x20000>;
+                                               };
+
+                                               oftree@80000 {
+                                                       label = "oftree";
+                                                       reg = <0xa0000 0x20000>;
+                                               };
+
+                                               kernel@a0000 {
+                                                       label = "kernel";
+                                                       reg = <0xc0000 0x400000>;
+                                               };
+
+                                               rootfs@4a0000 {
+                                                       label = "rootfs";
+                                                       reg = <0x4c0000 0x7800000>;
+                                               };
+
+                                               data@7ca0000 {
+                                                       label = "data";
+                                                       reg = <0x7cc0000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index 27847a4..ac9a151 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
-
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x20000>;
-                       };
-
-                       bareboxenv2@80000 {
-                               label = "bareboxenv2";
-                               reg = <0x80000 0x20000>;
-                       };
-
-                       oftree@80000 {
-                               label = "oftree";
-                               reg = <0xa0000 0x20000>;
-                       };
-
-                       kernel@a0000 {
-                               label = "kernel";
-                               reg = <0xc0000 0x400000>;
-                       };
-
-                       rootfs@4a0000 {
-                               label = "rootfs";
-                               reg = <0x4c0000 0x7800000>;
-                       };
-
-                       data@7ca0000 {
-                               label = "data";
-                               reg = <0x7cc0000 0x8340000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
+
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x20000>;
+                                               };
+
+                                               bareboxenv2@80000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x80000 0x20000>;
+                                               };
+
+                                               oftree@80000 {
+                                                       label = "oftree";
+                                                       reg = <0xa0000 0x20000>;
+                                               };
+
+                                               kernel@a0000 {
+                                                       label = "kernel";
+                                                       reg = <0xc0000 0x400000>;
+                                               };
+
+                                               rootfs@4a0000 {
+                                                       label = "rootfs";
+                                                       reg = <0x4c0000 0x7800000>;
+                                               };
+
+                                               data@7ca0000 {
+                                                       label = "data";
+                                                       reg = <0x7cc0000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index 392dcfb..a4808c4 100644 (file)
                                };
 
                                nand {
-                                       pinctrl_nand: nand-0 {
+                                       pinctrl_nand_rb: nand-rb-0 {
                                                atmel,pins =
-                                                       <AT91_PIOC 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PC8 gpio RDY pin pull_up*/
-                                                        AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PC14 gpio enable pin pull_up */
+                                                       <AT91_PIOC 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+                                       };
+
+                                       pinctrl_nand_cs: nand-cs-0 {
+                                               atmel,pins =
+                                                        <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
                                };
 
                        status = "disabled";
                };
 
-               nand0: nand@40000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x40000000 0x10000000
-                              0xffffe200 0x200
-                             >;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       atmel,nand-has-dma;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioC 8 GPIO_ACTIVE_HIGH
-                                &pioC 14 GPIO_ACTIVE_HIGH
-                                0
-                               >;
-                       status = "disabled";
-               };
-
                usb0: ohci@00700000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00700000 0x100000>;
index 2400c99..2522c33 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       boot@0 {
-                               label = "bootstrap/uboot/kernel";
-                               reg = <0x0 0x400000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
 
-                       rootfs@400000 {
-                               label = "rootfs";
-                               reg = <0x400000 0x3C00000>;
-                       };
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 8 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               boot@0 {
+                                                       label = "bootstrap/uboot/kernel";
+                                                       reg = <0x0 0x400000>;
+                                               };
 
-                       data@4000000 {
-                               label = "data";
-                               reg = <0x4000000 0xC000000>;
+                                               rootfs@400000 {
+                                                       label = "rootfs";
+                                                       reg = <0x400000 0x3C00000>;
+                                               };
+
+                                               data@4000000 {
+                                                       label = "data";
+                                                       reg = <0x4000000 0xC000000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index df06a66..06516d0 100644 (file)
                                };
 
                                nand {
-                                       pinctrl_nand: nand-0 {
+                                       pinctrl_nand_rb: nand-rb-0 {
                                                atmel,pins =
-                                                       <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD5 gpio RDY pin pull_up*/
-                                                        AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;    /* PD4 gpio enable pin pull_up */
+                                                       <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+                                       };
+
+                                       pinctrl_nand_cs: nand-cs-0 {
+                                               atmel,pins =
+                                                        <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
                                };
 
                        };
                };
 
-               nand0: nand@40000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = < 0x40000000 0x10000000
-                               0xffffe000 0x00000600
-                               0xffffe600 0x00000200
-                               0x00108000 0x00018000
-                              >;
-                       atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       atmel,nand-has-dma;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioD 5 GPIO_ACTIVE_HIGH
-                                &pioD 4 GPIO_ACTIVE_HIGH
-                                0
-                               >;
-                       status = "disabled";
-               };
-
                usb0: ohci@00500000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00500000 0x00100000>;
index 626c67d..5bea8c5 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       atmel,has-pmecc;
-                       atmel,pmecc-cap = <2>;
-                       atmel,pmecc-sector-size = <512>;
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
+
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-ecc-strength = <2>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+                               };
+                       };
                };
 
                usb0: ohci@00500000 {
index d373400..7768342 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x40000000 0x10000000>,
-                             <0xffffe800 0x200>;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       atmel,nand-has-dma;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioD 17 GPIO_ACTIVE_HIGH>,
-                               <&pioB 6 GPIO_ACTIVE_HIGH>,
-                               <0>;
-                       status = "disabled";
-               };
-
                apb {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                                        };
                                };
 
+                               ebi {
+                                       pinctrl_ebi_addr_nand: ebi-addr-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+                                                       <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                fb {
                                        pinctrl_fb: fb-0 {
                                                atmel,pins =
                                };
 
                                nand {
-                                       pinctrl_nand: nand-0 {
+                                       pinctrl_nand_rb: nand-rb-0 {
                                                atmel,pins =
-                                                       <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>,
-                                                       <AT91_PIOB 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+                                                       <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
 
-                                       pinctrl_nand0_ale_cle: nand_ale_cle-0 {
+                                       pinctrl_nand_cs: nand-cs-0 {
                                                atmel,pins =
-                                                       <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
-                                                       <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                                       <AT91_PIOB 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
 
-                                       pinctrl_nand0_oe_we: nand_oe_we-0 {
+                                       pinctrl_nand_oe_we: nand-oe-we-0 {
                                                atmel,pins =
                                                        <AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE>,
                                                        <AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;
                                        };
-
-                                       pinctrl_nand0_cs: nand_cs-0 {
-                                               atmel,pins =
-                                                       <AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;
-                                       };
                                };
 
                                pwm0 {
index 2e567d9..9047c16 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt = <1>;
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_addr_nand>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       bootloader@40000 {
-                               label = "bootloader";
-                               reg = <0x40000 0x80000>;
-                       };
-
-                       bootloaderenv@c0000 {
-                               label = "bootloader env";
-                               reg = <0xc0000 0xc0000>;
-                       };
-
-                       dtb@180000 {
-                               label = "device tree";
-                               reg = <0x180000 0x80000>;
-                       };
-
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_oe_we
+                                            &pinctrl_nand_cs
+                                            &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
 
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
+
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index 7723e8b..57f3075 100644 (file)
                                        };
                                };
 
+                               ebi {
+                                       pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_data_8_15: ebi-data-msb-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_addr_nand: ebi-addr-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                usart0 {
                                        pinctrl_usart0: usart0-0 {
                                                atmel,pins =
                                };
 
                                nand {
-                                       pinctrl_nand: nand-0 {
+                                       pinctrl_nand_oe_we: nand-oe-we-0 {
                                                atmel,pins =
-                                                       <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD0 periph A Read Enable */
-                                                        AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD1 periph A Write Enable */
-                                                        AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD2 periph A Address Latch Enable */
-                                                        AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD3 periph A Command Latch Enable */
-                                                        AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD4 gpio Chip Enable pin pull_up */
-                                                        AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD5 gpio RDY/BUSY pin pull_up */
-                                                        AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD6 periph A Data bit 0 */
-                                                        AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD7 periph A Data bit 1 */
-                                                        AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD8 periph A Data bit 2 */
-                                                        AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD9 periph A Data bit 3 */
-                                                        AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD10 periph A Data bit 4 */
-                                                        AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD11 periph A Data bit 5 */
-                                                        AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD12 periph A Data bit 6 */
-                                                        AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD13 periph A Data bit 7 */
-                                       };
-
-                                       pinctrl_nand_16bits: nand_16bits-0 {
+                                                       <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_nand_rb: nand-rb-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+                                       };
+
+                                       pinctrl_nand_cs: nand-cs-0 {
                                                atmel,pins =
-                                                       <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD14 periph A Data bit 8 */
-                                                        AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD15 periph A Data bit 9 */
-                                                        AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD16 periph A Data bit 10 */
-                                                        AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD17 periph A Data bit 11 */
-                                                        AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD18 periph A Data bit 12 */
-                                                        AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD19 periph A Data bit 13 */
-                                                        AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD20 periph A Data bit 14 */
-                                                        AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD21 periph A Data bit 15 */
+                                                       <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
                                };
 
                        };
                };
 
-               nand0: nand@40000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x40000000 0x10000000
-                              0xffffe000 0x600         /* PMECC Registers */
-                              0xffffe600 0x200         /* PMECC Error Location Registers */
-                              0x00108000 0x18000       /* PMECC looup table in ROM code  */
-                             >;
-                       atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       atmel,nand-has-dma;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioD 5 GPIO_ACTIVE_HIGH
-                                &pioD 4 GPIO_ACTIVE_HIGH
-                                0
-                               >;
-                       status = "disabled";
-               };
-
                usb0: ohci@00600000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00600000 0x100000>;
index b098ad8..bdeaa0b 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       atmel,has-pmecc;        /* Enable PMECC */
-                       atmel,pmecc-cap = <2>;
-                       atmel,pmecc-sector-size = <512>;
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_addr_nand
+                                    &pinctrl_ebi_data_0_7>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
-
-                       uboot@40000 {
-                               label = "u-boot";
-                               reg = <0x40000 0x80000>;
-                       };
-
-                       ubootenv@c0000 {
-                               label = "U-Boot Env";
-                               reg = <0xc0000 0x140000>;
-                       };
-
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
-
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x1f800000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_oe_we
+                                            &pinctrl_nand_cs
+                                            &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-ecc-strength = <2>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+
+                                               uboot@40000 {
+                                                       label = "u-boot";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               ubootenv@c0000 {
+                                                       label = "U-Boot Env";
+                                                       reg = <0xc0000 0x140000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x1f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 4687229..123b203 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       gpios = <0
-                                &pioC 14 GPIO_ACTIVE_HIGH
-                                0
-                               >;
-
-                       root@0 {
-                               label = "root";
-                               reg = <0x0 0x08000000>;
-                       };
-
-                       data@20000 {
-                               label = "data";
-                               reg = <0x08000000 0x38000000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs>;
+                               pinctrl-names = "default";
+
+                               nand: nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               root@0 {
+                                                       label = "root";
+                                                       reg = <0x0 0x08000000>;
+                                               };
+
+                                               data@20000 {
+                                                       label = "data";
+                                                       reg = <0x08000000 0x38000000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index 4aee5cc..8613944 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       boot@0 {
-                               label = "boot";
-                               reg = <0x0 0x7c0000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               boot@0 {
+                                                       label = "boot";
+                                                       reg = <0x0 0x7c0000>;
+                                               };
 
-                       root@07c0000 {
-                               label = "root";
-                               reg = <0x7c0000 0x7840000>;
+                                               root@07c0000 {
+                                                       label = "root";
+                                                       reg = <0x7c0000 0x7840000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 0abd7bf..3139221 100644 (file)
                        };
 
                        pinctrl@fffff200 {
-
-                               board {
-                                       pinctrl_board_nand: nand0-board {
+                               nand {
+                                       pinctrl_nand_rb: nand-rb-0 {
                                                atmel,pins =
-                                                       <AT91_PIOD 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD3 gpio RDY pin pull_up*/
-                                                        AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PC14 gpio enable pin pull_up */
+                                                       <AT91_PIOD 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
                                        };
                                };
 
                                phy-mode = "rmii";
                                status = "okay";
                        };
-
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
-                       pinctrl-0 = <&pinctrl_board_nand>;
-
-                       gpios = <&pioD 3 GPIO_ACTIVE_HIGH
-                                &pioC 14 GPIO_ACTIVE_HIGH
-                                0
-                               >;
-
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
-
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x1A0000>;
-                       };
-
-                       kernel@200000 {
-                               label = "bareboxenv2";
-                               reg = <0x200000 0x300000>;
-                       };
-
-                       kernel@500000 {
-                               label = "root";
-                               reg = <0x500000 0x400000>;
-                       };
-
-                       data@900000 {
-                               label = "data";
-                               reg = <0x900000 0x8340000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioD 3 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
+
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x1A0000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x200000 0x300000>;
+                                               };
+
+                                               kernel@500000 {
+                                                       label = "root";
+                                                       reg = <0x500000 0x400000>;
+                                               };
+
+                                               data@900000 {
+                                                       label = "data";
+                                                       reg = <0x900000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index 3925f83..554d0bd 100644 (file)
                        };
                };
 
-               nand0: nand@60000000 {
-                       compatible = "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
-                       reg = < 0x60000000 0x01000000   /* EBI CS3 */
-                               0xffffc070 0x00000490   /* SMC PMECC regs */
-                               0xffffc500 0x00000100   /* SMC PMECC Error Location regs */
-                               0x00110000 0x00018000   /* ROM code */
-                               >;
-                       interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       atmel,nand-has-dma;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand0_ale_cle>;
-                       atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
-                       status = "disabled";
-
-                       nfc@70000000 {
-                               compatible = "atmel,sama5d3-nfc";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <
-                                       0x70000000 0x08000000   /* NFC Command Registers */
-                                       0xffffc000 0x00000070   /* NFC HSMC regs */
-                                       0x00200000 0x00100000   /* NFC SRAM banks */
-                                       >;
-                               clocks = <&hsmc_clk>;
-                       };
-               };
-
                nfc_io: nfc-io@70000000 {
                        compatible = "atmel,sama5d3-nfc-io", "syscon";
                        reg = <0x70000000 0x8000000>;
index b5e111b..4606e1d 100644 (file)
                        };
                };
 
-               nand0: nand@60000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       atmel,has-pmecc;
-                       atmel,pmecc-cap = <4>;
-                       atmel,pmecc-sector-size = <512>;
-                       nand-on-flash-bbt;
+               ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
 
-                       bootloader@40000 {
-                               label = "bootloader";
-                               reg = <0x40000 0x80000>;
-                       };
+                               nand@3 {
+                                       reg = <0x3 0x0 0x2>;
+                                       atmel,rb = <0>;
+                                       nand-ecc-mode = "hw";
+                                       nand-ecc-strength = <4>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
 
-                       bootloaderenv@c0000 {
-                               label = "bootloader env";
-                               reg = <0xc0000 0xc0000>;
-                       };
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
 
-                       dtb@180000 {
-                               label = "device tree";
-                               reg = <0x180000 0x80000>;
-                       };
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
 
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
+
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
+
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
 
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index dc7572b..75cbf4d 100644 (file)
                        };
                };
 
-               nand0: nand@60000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "hw";
-                       atmel,has-pmecc;
-                       atmel,pmecc-cap = <4>;
-                       atmel,pmecc-sector-size = <512>;
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
+                       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+                       pinctrl-names = "default";
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x40000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x2>;
+                                       atmel,rb = <0>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "hw";
+                                       nand-ecc-strength = <4>;
+                                       nand-ecc-step-size = <512>;
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
 
-                       bootloader@40000 {
-                               label = "bootloader";
-                               reg = <0x40000 0x80000>;
-                       };
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
 
-                       bootloaderenv@c0000 {
-                               label = "bootloader env";
-                               reg = <0xc0000 0xc0000>;
-                       };
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
 
-                       dtb@180000 {
-                               label = "device tree";
-                               reg = <0x180000 0x80000>;
-                       };
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
 
-                       kernel@200000 {
-                               label = "kernel";
-                               reg = <0x200000 0x600000>;
-                       };
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
 
-                       rootfs@800000 {
-                               label = "rootfs";
-                               reg = <0x800000 0x0f800000>;
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index de6bcff..2fa36c5 100644 (file)
                        };
                };
 
-               nand0: nand@80000000 {
-                       compatible = "atmel,sama5d4-nand", "atmel,at91rm9200-nand";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
-                       reg = < 0x80000000 0x08000000   /* EBI CS3 */
-                               0xfc05c070 0x00000490   /* SMC PMECC regs */
-                               0xfc05c500 0x00000100   /* SMC PMECC Error Location regs */
-                               >;
-                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 6>;
-                       atmel,nand-addr-offset = <21>;
-                       atmel,nand-cmd-offset = <22>;
-                       atmel,nand-has-dma;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_nand>;
-                       status = "disabled";
-
-                       nfc@90000000 {
-                               compatible = "atmel,sama5d3-nfc";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <
-                                       0x90000000 0x08000000   /* NFC Command Registers */
-                                       0xfc05c000 0x00000070   /* NFC HSMC regs */
-                                       0x00100000 0x00100000   /* NFC SRAM banks */
-                                         >;
-                               clocks = <&hsmc_clk>;
-                               atmel,write-by-sram;
-                       };
-               };
-
                nfc_io: nfc-io@90000000 {
                        compatible = "atmel,sama5d3-nfc-io", "syscon";
                        reg = <0x90000000 0x8000000>;
index f9dc463..5d83df4 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
 
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
 
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x20000>;
-                       };
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
 
-                       bareboxenv2@80000 {
-                               label = "bareboxenv2";
-                               reg = <0x80000 0x20000>;
-                       };
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
 
-                       oftree@80000 {
-                               label = "oftree";
-                               reg = <0xa0000 0x20000>;
-                       };
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
 
-                       kernel@a0000 {
-                               label = "kernel";
-                               reg = <0xc0000 0x400000>;
-                       };
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x20000>;
+                                               };
 
-                       rootfs@4a0000 {
-                               label = "rootfs";
-                               reg = <0x4c0000 0x7800000>;
-                       };
+                                               bareboxenv2@80000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x80000 0x20000>;
+                                               };
+
+                                               oftree@80000 {
+                                                       label = "oftree";
+                                                       reg = <0xa0000 0x20000>;
+                                               };
+
+                                               kernel@a0000 {
+                                                       label = "kernel";
+                                                       reg = <0xc0000 0x400000>;
+                                               };
+
+                                               rootfs@4a0000 {
+                                                       label = "rootfs";
+                                                       reg = <0x4c0000 0x7800000>;
+                                               };
 
-                       data@7ca0000 {
-                               label = "data";
-                               reg = <0x7cc0000 0x8340000>;
+                                               data@7ca0000 {
+                                                       label = "data";
+                                                       reg = <0x7cc0000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 9161cd9..8cf0a9e 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi0: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
-
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x20000>;
-                       };
-
-                       bareboxenv2@80000 {
-                               label = "bareboxenv2";
-                               reg = <0x80000 0x20000>;
-                       };
-
-                       oftree@80000 {
-                               label = "oftree";
-                               reg = <0xa0000 0x20000>;
-                       };
-
-                       kernel@a0000 {
-                               label = "kernel";
-                               reg = <0xc0000 0x400000>;
-                       };
-
-                       rootfs@4a0000 {
-                               label = "rootfs";
-                               reg = <0x4c0000 0x7800000>;
-                       };
-
-                       data@7ca0000 {
-                               label = "data";
-                               reg = <0x7cc0000 0x8340000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
+
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x20000>;
+                                               };
+
+                                               bareboxenv2@80000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x80000 0x20000>;
+                                               };
+
+                                               oftree@80000 {
+                                                       label = "oftree";
+                                                       reg = <0xa0000 0x20000>;
+                                               };
+
+                                               kernel@a0000 {
+                                                       label = "kernel";
+                                                       reg = <0xc0000 0x400000>;
+                                               };
+
+                                               rootfs@4a0000 {
+                                                       label = "rootfs";
+                                                       reg = <0x4c0000 0x7800000>;
+                                               };
+
+                                               data@7ca0000 {
+                                                       label = "data";
+                                                       reg = <0x7cc0000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
index 7514b34..34a4999 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
-
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x20000>;
-                       };
-
-                       bareboxenv2@80000 {
-                               label = "bareboxenv2";
-                               reg = <0x80000 0x20000>;
-                       };
-
-                       oftree@80000 {
-                               label = "oftree";
-                               reg = <0xa0000 0x20000>;
-                       };
-
-                       kernel@a0000 {
-                               label = "kernel";
-                               reg = <0xc0000 0x400000>;
-                       };
-
-                       rootfs@4a0000 {
-                               label = "rootfs";
-                               reg = <0x4c0000 0x7800000>;
-                       };
-
-                       data@7ca0000 {
-                               label = "data";
-                               reg = <0x7cc0000 0x8340000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
+
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x20000>;
+                                               };
+
+                                               bareboxenv2@80000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x80000 0x20000>;
+                                               };
+
+                                               oftree@80000 {
+                                                       label = "oftree";
+                                                       reg = <0xa0000 0x20000>;
+                                               };
+
+                                               kernel@a0000 {
+                                                       label = "kernel";
+                                                       reg = <0xc0000 0x400000>;
+                                               };
+
+                                               rootfs@4a0000 {
+                                                       label = "rootfs";
+                                                       reg = <0x4c0000 0x7800000>;
+                                               };
+
+                                               data@7ca0000 {
+                                                       label = "data";
+                                                       reg = <0x7cc0000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index bfc48a2..482381c 100644 (file)
                        };
                };
 
-               nand0: nand@40000000 {
-                       nand-bus-width = <8>;
-                       nand-ecc-mode = "soft";
-                       nand-on-flash-bbt;
+               ebi0: ebi@10000000 {
                        status = "okay";
 
-                       at91bootstrap@0 {
-                               label = "at91bootstrap";
-                               reg = <0x0 0x20000>;
-                       };
-
-                       barebox@20000 {
-                               label = "barebox";
-                               reg = <0x20000 0x40000>;
-                       };
-
-                       bareboxenv@60000 {
-                               label = "bareboxenv";
-                               reg = <0x60000 0x20000>;
-                       };
-
-                       bareboxenv2@80000 {
-                               label = "bareboxenv2";
-                               reg = <0x80000 0x20000>;
-                       };
-
-                       oftree@80000 {
-                               label = "oftree";
-                               reg = <0xa0000 0x20000>;
-                       };
-
-                       kernel@a0000 {
-                               label = "kernel";
-                               reg = <0xc0000 0x400000>;
-                       };
-
-                       rootfs@4a0000 {
-                               label = "rootfs";
-                               reg = <0x4c0000 0x7800000>;
-                       };
-
-                       data@7ca0000 {
-                               label = "data";
-                               reg = <0x7cc0000 0x8340000>;
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x20000>;
+                                               };
+
+                                               barebox@20000 {
+                                                       label = "barebox";
+                                                       reg = <0x20000 0x40000>;
+                                               };
+
+                                               bareboxenv@60000 {
+                                                       label = "bareboxenv";
+                                                       reg = <0x60000 0x20000>;
+                                               };
+
+                                               bareboxenv2@80000 {
+                                                       label = "bareboxenv2";
+                                                       reg = <0x80000 0x20000>;
+                                               };
+
+                                               oftree@80000 {
+                                                       label = "oftree";
+                                                       reg = <0xa0000 0x20000>;
+                                               };
+
+                                               kernel@a0000 {
+                                                       label = "kernel";
+                                                       reg = <0xc0000 0x400000>;
+                                               };
+
+                                               rootfs@4a0000 {
+                                                       label = "rootfs";
+                                                       reg = <0x4c0000 0x7800000>;
+                                               };
+
+                                               data@7ca0000 {
+                                                       label = "data";
+                                                       reg = <0x7cc0000 0x8340000>;
+                                               };
+                                       };
+                               };
                        };
                };