ARM: dts: at91: Declare EBI/NAND controllers
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Tue, 30 May 2017 09:20:52 +0000 (11:20 +0200)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Wed, 31 May 2017 09:55:33 +0000 (11:55 +0200)
Declare new nodes for the EBI and NAND controllers embedded in various
at91/sama5 SoCs.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
arch/arm/boot/dts/at91sam9260.dtsi
arch/arm/boot/dts/at91sam9261.dtsi
arch/arm/boot/dts/at91sam9263.dtsi
arch/arm/boot/dts/at91sam9g45.dtsi
arch/arm/boot/dts/at91sam9n12.dtsi
arch/arm/boot/dts/at91sam9rl.dtsi
arch/arm/boot/dts/at91sam9x5.dtsi
arch/arm/boot/dts/sama5d2.dtsi
arch/arm/boot/dts/sama5d3.dtsi
arch/arm/boot/dts/sama5d4.dtsi

index 9e035b2..ab0e733 100644 (file)
                                reg = <0xffffea00 0x200>;
                        };
 
+                       smc: smc@ffffec00 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffec00 0x200>;
+                       };
+
+                       matrix: matrix@ffffee00 {
+                               compatible = "atmel,at91sam9260-matrix", "syscon";
+                               reg = <0xffffee00 0x200>;
+                       };
+
                        pmc: pmc@fffffc00 {
                                compatible = "atmel,at91sam9260-pmc", "syscon";
                                reg = <0xfffffc00 0x100>;
                        clock-names = "ohci_clk", "hclk", "uhpck";
                        status = "disabled";
                };
+
+               ebi: ebi@10000000 {
+                       compatible = "atmel,at91sam9260-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x10000000 0x80000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x20000000 0x10000000
+                                 0x2 0x0 0x30000000 0x10000000
+                                 0x3 0x0 0x40000000 0x10000000
+                                 0x4 0x0 0x50000000 0x10000000
+                                 0x5 0x0 0x60000000 0x10000000
+                                 0x6 0x0 0x70000000 0x10000000
+                                 0x7 0x0 0x80000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,at91sam9260-nand-controller";
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
        };
 
        i2c-gpio-0 {
index 7e80acd..3ab0c21 100644 (file)
                        status = "disabled";
                };
 
+               ebi: ebi@10000000 {
+                       compatible = "atmel,at91sam9261-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x10000000 0x80000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x20000000 0x10000000
+                                 0x2 0x0 0x30000000 0x10000000
+                                 0x3 0x0 0x40000000 0x10000000
+                                 0x4 0x0 0x50000000 0x10000000
+                                 0x5 0x0 0x60000000 0x10000000
+                                 0x6 0x0 0x70000000 0x10000000
+                                 0x7 0x0 0x80000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,at91sam9261-nand-controller";
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
+
                nand0: nand@40000000 {
                        compatible = "atmel,at91rm9200-nand";
                        #address-cells = <1>;
                                reg = <0xffffea00 0x200>;
                        };
 
+                       smc: smc@ffffec00 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffec00 0x200>;
+                       };
+
                        matrix: matrix@ffffee00 {
                                compatible = "atmel,at91sam9261-matrix", "syscon";
                                reg = <0xffffee00 0x200>;
index a1888f6..db9f3a0 100644 (file)
                                reg = <0xffffe200 0x200>;
                        };
 
+                       smc0: smc@ffffe400 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffe400 0x200>;
+                       };
+
                        ramc1: ramc@ffffe800 {
                                compatible = "atmel,at91sam9260-sdramc";
                                reg = <0xffffe800 0x200>;
                        };
 
+                       smc1: smc@ffffea00 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffea00 0x200>;
+                       };
+
+                       matrix: matrix@ffffec00 {
+                               compatible = "atmel,at91sam9263-matrix", "syscon";
+                               reg = <0xffffec00 0x200>;
+                       };
+
                        pit: timer@fffffd30 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffd30 0xf>;
                        clock-names = "ohci_clk", "hclk", "uhpck";
                        status = "disabled";
                };
+
+               ebi0: ebi@10000000 {
+                       compatible = "atmel,at91sam9263-ebi0";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc0>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x10000000 0x80000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x20000000 0x10000000
+                                 0x2 0x0 0x30000000 0x10000000
+                                 0x3 0x0 0x40000000 0x10000000
+                                 0x4 0x0 0x50000000 0x10000000
+                                 0x5 0x0 0x60000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller0: nand-controller {
+                               compatible = "atmel,at91sam9260-nand-controller";
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
+
+               ebi1: ebi@70000000 {
+                       compatible = "atmel,at91sam9263-ebi1";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc1>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x80000000 0x20000000>;
+                       ranges = <0x0 0x0 0x80000000 0x10000000
+                                 0x1 0x0 0x90000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller1: nand-controller {
+                               compatible = "atmel,at91sam9260-nand-controller";
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
        };
 
        i2c-gpio-0 {
index e567d5f..392dcfb 100644 (file)
                                clock-names = "ddrck";
                        };
 
+                       smc: smc@ffffe800 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffe800 0x200>;
+                       };
+
+                       matrix: matrix@ffffea00 {
+                               compatible = "atmel,at91sam9g45-matrix", "syscon";
+                               reg = <0xffffea00 0x200>;
+                       };
+
                        pmc: pmc@fffffc00 {
                                compatible = "atmel,at91sam9g45-pmc", "syscon";
                                reg = <0xfffffc00 0x100>;
                        clock-names = "usb_clk", "ehci_clk";
                        status = "disabled";
                };
+
+               ebi: ebi@10000000 {
+                       compatible = "atmel,at91sam9g45-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x10000000 0x80000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x20000000 0x10000000
+                                 0x2 0x0 0x30000000 0x10000000
+                                 0x3 0x0 0x40000000 0x10000000
+                                 0x4 0x0 0x50000000 0x10000000
+                                 0x5 0x0 0x60000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,at91sam9g45-nand-controller";
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
        };
 
        i2c-gpio-0 {
index f43d769..df06a66 100644 (file)
                                atmel,external-irqs = <31>;
                        };
 
+                       matrix: matrix@ffffde00 {
+                               compatible = "atmel,at91sam9n12-matrix", "syscon";
+                               reg = <0xffffde00 0x100>;
+                       };
+
+                       pmecc: ecc-engine@ffffe000 {
+                               compatible = "atmel,at91sam9g45-pmecc";
+                               reg = <0xffffe000 0x600>,
+                                     <0xffffe600 0x200>;
+                       };
+
                        ramc0: ramc@ffffe800 {
                                compatible = "atmel,at91sam9g45-ddramc";
                                reg = <0xffffe800 0x200>;
                                clock-names = "ddrck";
                        };
 
+                       smc: smc@ffffea00 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffea00 0x200>;
+                       };
+
                        pmc: pmc@fffffc00 {
                                compatible = "atmel,at91sam9n12-pmc", "syscon";
                                reg = <0xfffffc00 0x200>;
                        clock-names = "ohci_clk", "hclk", "uhpck";
                        status = "disabled";
                };
+
+               ebi: ebi@10000000 {
+                       compatible = "atmel,at91sam9x5-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x10000000 0x60000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x20000000 0x10000000
+                                 0x2 0x0 0x30000000 0x10000000
+                                 0x3 0x0 0x40000000 0x10000000
+                                 0x4 0x0 0x50000000 0x10000000
+                                 0x5 0x0 0x60000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,at91sam9g45-nand-controller";
+                               ecc-engine = <&pmecc>;
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
        };
 
        i2c-gpio-0 {
index f4c129a..d373400 100644 (file)
                        status = "disabled";
                };
 
+               ebi: ebi@10000000 {
+                       compatible = "atmel,at91sam9rl-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x10000000 0x80000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x20000000 0x10000000
+                                 0x2 0x0 0x30000000 0x10000000
+                                 0x3 0x0 0x40000000 0x10000000
+                                 0x4 0x0 0x50000000 0x10000000
+                                 0x5 0x0 0x60000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,at91sam9g45-nand-controller";
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
+
                nand0: nand@40000000 {
                        compatible = "atmel,at91rm9200-nand";
                        #address-cells = <1>;
                                reg = <0xffffea00 0x200>;
                        };
 
+                       smc: smc@ffffec00 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffec00 0x200>;
+                       };
+
+                       matrix: matrix@ffffee00 {
+                               compatible = "atmel,at91sam9rl-matrix", "syscon";
+                               reg = <0xffffee00 0x200>;
+                       };
+
                        aic: interrupt-controller@fffff000 {
                                #interrupt-cells = <3>;
                                compatible = "atmel,at91rm9200-aic";
index f66bae9..7723e8b 100644 (file)
                                atmel,external-irqs = <31>;
                        };
 
+                       matrix: matrix@ffffde00 {
+                               compatible = "atmel,at91sam9x5-matrix", "syscon";
+                               reg = <0xffffde00 0x100>;
+                       };
+
+                       pmecc: ecc-engine@ffffe000 {
+                               compatible = "atmel,at91sam9g45-pmecc";
+                               reg = <0xffffe000 0x600>,
+                                     <0xffffe600 0x200>;
+                       };
+
                        ramc0: ramc@ffffe800 {
                                compatible = "atmel,at91sam9g45-ddramc";
                                reg = <0xffffe800 0x200>;
                                clock-names = "ddrck";
                        };
 
+                       smc: smc@ffffea00 {
+                               compatible = "atmel,at91sam9260-smc", "syscon";
+                               reg = <0xffffea00 0x200>;
+                       };
+
                        pmc: pmc@fffffc00 {
                                compatible = "atmel,at91sam9x5-pmc", "syscon";
                                reg = <0xfffffc00 0x200>;
                        clock-names = "usb_clk", "ehci_clk";
                        status = "disabled";
                };
+
+               ebi: ebi@10000000 {
+                       compatible = "atmel,at91sam9x5-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&smc>;
+                       atmel,matrix = <&matrix>;
+                       reg = <0x10000000 0x60000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x20000000 0x10000000
+                                 0x2 0x0 0x30000000 0x10000000
+                                 0x3 0x0 0x40000000 0x10000000
+                                 0x4 0x0 0x50000000 0x10000000
+                                 0x5 0x0 0x60000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,at91sam9g45-nand-controller";
+                               ecc-engine = <&pmecc>;
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
        };
 
        i2c-gpio-0 {
index ce95dcb..e77fa36 100644 (file)
                #size-cells = <1>;
                ranges;
 
+               nfc_sram: sram@00100000 {
+                       compatible = "mmio-sram";
+                       no-memory-wc;
+                       reg = <0x00100000 0x2400>;
+               };
+
                usb0: gadget@00300000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        cache-level = <2>;
                };
 
+               ebi: ebi@10000000 {
+                       compatible = "atmel,sama5d3-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&hsmc>;
+                       reg = <0x10000000 0x10000000
+                              0x40000000 0x30000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x60000000 0x10000000
+                                 0x2 0x0 0x70000000 0x10000000
+                                 0x3 0x0 0x80000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,sama5d3-nand-controller";
+                               atmel,nfc-sram = <&nfc_sram>;
+                               atmel,nfc-io = <&nfc_io>;
+                               ecc-engine = <&pmecc>;
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
+
                nand0: nand@80000000 {
                        compatible = "atmel,sama5d2-nand";
                        #address-cells = <1>;
                        status = "disabled";
                };
 
+               nfc_io: nfc-io@c0000000 {
+                       compatible = "atmel,sama5d3-nfc-io", "syscon";
+                       reg = <0xc0000000 0x8000000>;
+               };
+
                apb {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                                clock-names = "t0_clk", "slow_clk";
                        };
 
+                       hsmc: hsmc@f8014000 {
+                               compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
+                               reg = <0xf8014000 0x1000>;
+                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
+                               clocks = <&hsmc_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges;
+
+                               pmecc: ecc-engine@ffffc070 {
+                                       compatible = "atmel,sama5d2-pmecc";
+                                       reg = <0xffffc070 0x490>,
+                                             <0xffffc500 0x100>;
+                               };
+                       };
+
                        pdmic: pdmic@f8018000 {
                                compatible = "atmel,sama5d2-pdmic";
                                reg = <0xf8018000 0x124>;
index b06448b..3925f83 100644 (file)
                                clocks = <&trng_clk>;
                        };
 
+                       hsmc: hsmc@ffffc000 {
+                               compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
+                               reg = <0xffffc000 0x1000>;
+                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
+                               clocks = <&hsmc_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges;
+
+                               pmecc: ecc-engine@ffffc070 {
+                                       compatible = "atmel,at91sam9g45-pmecc";
+                                       reg = <0xffffc070 0x490>,
+                                             <0xffffc500 0x100>;
+                               };
+                       };
+
                        dma0: dma-controller@ffffe600 {
                                compatible = "atmel,at91sam9g45-dma";
                                reg = <0xffffe600 0x200>;
                                        };
                                };
 
+                               ebi {
+                                       pinctrl_ebi_addr: ebi-addr-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 1 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 2 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 3 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 4 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 5 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 7 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 9 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 10 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 11 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 12 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 13 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 14 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 15 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 16 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 17 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 18 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 19 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 20 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nand_addr: ebi-addr-1 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_cs0: ebi-cs0-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 24 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_cs1: ebi-cs1-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_cs2: ebi-cs2-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nwait: ebi-nwait-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nwr1_nbs1: ebi-nwr1-nbs1-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                i2c0 {
                                        pinctrl_i2c0: i2c0-0 {
                                                atmel,pins =
                        };
                };
 
+               nfc_sram: sram@200000 {
+                       compatible = "mmio-sram";
+                       no-memory-wc;
+                       reg = <0x200000 0x2400>;
+               };
+
                usb0: gadget@00500000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                };
 
+               ebi: ebi@10000000 {
+                       compatible = "atmel,sama5d3-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&hsmc>;
+                       reg = <0x10000000 0x10000000
+                              0x40000000 0x30000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x40000000 0x10000000
+                                 0x2 0x0 0x50000000 0x10000000
+                                 0x3 0x0 0x60000000 0x10000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,sama5d3-nand-controller";
+                               atmel,nfc-sram = <&nfc_sram>;
+                               atmel,nfc-io = <&nfc_io>;
+                               ecc-engine = <&pmecc>;
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
+
                nand0: nand@60000000 {
                        compatible = "atmel,at91rm9200-nand";
                        #address-cells = <1>;
                                clocks = <&hsmc_clk>;
                        };
                };
+
+               nfc_io: nfc-io@70000000 {
+                       compatible = "atmel,sama5d3-nfc-io", "syscon";
+                       reg = <0x70000000 0x8000000>;
+               };
        };
 };
index d3889c9..de6bcff 100644 (file)
                #size-cells = <1>;
                ranges;
 
+               nfc_sram: sram@100000 {
+                       compatible = "mmio-sram";
+                       no-memory-wc;
+                       reg = <0x100000 0x2400>;
+               };
+
                usb0: gadget@00400000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        cache-level = <2>;
                };
 
+               ebi: ebi@10000000 {
+                       compatible = "atmel,sama5d3-ebi";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       atmel,smc = <&hsmc>;
+                       reg = <0x10000000 0x10000000
+                              0x60000000 0x28000000>;
+                       ranges = <0x0 0x0 0x10000000 0x10000000
+                                 0x1 0x0 0x60000000 0x10000000
+                                 0x2 0x0 0x70000000 0x10000000
+                                 0x3 0x0 0x80000000 0x8000000>;
+                       clocks = <&mck>;
+                       status = "disabled";
+
+                       nand_controller: nand-controller {
+                               compatible = "atmel,sama5d3-nand-controller";
+                               atmel,nfc-sram = <&nfc_sram>;
+                               atmel,nfc-io = <&nfc_io>;
+                               ecc-engine = <&pmecc>;
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+                       };
+               };
+
                nand0: nand@80000000 {
                        compatible = "atmel,sama5d4-nand", "atmel,at91rm9200-nand";
                        #address-cells = <1>;
                        };
                };
 
+               nfc_io: nfc-io@90000000 {
+                       compatible = "atmel,sama5d3-nfc-io", "syscon";
+                       reg = <0x90000000 0x8000000>;
+               };
+
                apb {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                                status = "okay";
                        };
 
+                       hsmc: smc@fc05c000 {
+                               compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
+                               reg = <0xfc05c000 0x1000>;
+                               interrupts = <22 IRQ_TYPE_LEVEL_HIGH 6>;
+                               clocks = <&hsmc_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges;
+
+                               pmecc: ecc-engine@ffffc070 {
+                                       compatible = "atmel,sama5d4-pmecc";
+                                       reg = <0xfc05c070 0x490>,
+                                             <0xfc05c500 0x100>;
+                               };
+                       };
+
                        rstc@fc068600 {
                                compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc";
                                reg = <0xfc068600 0x10>;
                                        };
                                };
 
+                               ebi {
+                                       pinctrl_ebi_addr: ebi-addr-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 0 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 1 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 2 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 3 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 4 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 5 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 7 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 9 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 10 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 11 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 12 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 13 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 14 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 15 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 16 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 17 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 18 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 19 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 20 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOE 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nand_addr: ebi-addr-1 {
+                                               atmel,pins =
+                                                       <AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_cs0: ebi-cs0-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_cs1: ebi-cs1-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_cs2: ebi-cs2-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_cs3: ebi-cs3-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE
+                                                        AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_data_8_15: ebi-data-msb-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE
+                                                        AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE
+                                                        AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE
+                                                        AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE
+                                                        AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE
+                                                        AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE
+                                                        AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE
+                                                        AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nandrdy: ebi-nandrdy-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nrd_nandoe: ebi-nrd-nandoe-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nwait: ebi-nwait-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 30 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nwe_nandwe: ebi-nwe-nandwe-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_ebi_nwr1_nbs1: ebi-nwr1-nbs1-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOE 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                i2c0 {
                                        pinctrl_i2c0: i2c0-0 {
                                                atmel,pins =