Merge tag 'arm-soc/for-4.2/dts' of http://github.com/broadcom/stblinux into next/dt
authorArnd Bergmann <arnd@arndb.de>
Fri, 15 May 2015 15:17:24 +0000 (17:17 +0200)
committerArnd Bergmann <arnd@arndb.de>
Fri, 15 May 2015 15:17:24 +0000 (17:17 +0200)
Merge "Device Tree changes" from Florian Fainelli:

New devices:

- Felix adds support for the Buffalo WXR-1900DHP and adds the USB led on Buffalo
  WZR-1750DHP

- Rafal adds support for the SmartRG SR400ac, Asus RT-AC68U and RT-AC56U

New peripheral support:

- Brian adds Device Tree nodes for the Broadcom NAND controller found on
  BCM7xxx, BCM63138 and Cygnus SoCs

- Brian adds Device Tree nodes for the SATA AHCI and PHY controller found on
  BCM7xxx

- I add the Device Tree nodes and bindings documents for bringing-up secondary
  CPUs and timer/syscon-reboot on BCM63138

* tag 'arm-soc/for-4.2/dts' of http://github.com/broadcom/stblinux:
  ARM: BCM5301X: Add DT for Asus RT-AC56U
  ARM: BCM5301X: Add DT for Asus RT-AC68U
  ARM: dts: BCM63xx: Add timer and syscon-reboot nodes
  dt-bindings: Add documentation for the BCM63138 timer and syscon-reboot
  ARM: dts: brcmstb: add nodes for SATA controller and PHY
  ARM: dts: cygnus: Enable NAND support for Cygnus
  ARM: bcm63138: add NAND DT support
  ARM: bcm7445: add NAND to DTS
  ARM: BCM5301X: Add DT for SmartRG SR400ac
  ARM: BCM5301X: Add DT for Buffalo WXR-1900DHP
  ARM: BCM5301X: Add USB LED for Buffalo WZR-1750DHP
  ARM: dts: BCM63xx: Add SMP nodes and required properties
  Documentation: DT: Document SMP DT nodes and properties for BCM63138
  ARM: dts: BCM63xx: Add PMB busses nodes
  Documentation: DT: Add Broadcom BCM63138 PMB binding

14 files changed:
Documentation/devicetree/bindings/arm/bcm/brcm,bcm63138.txt
Documentation/devicetree/bindings/reset/brcm,bcm63138-pmb.txt [new file with mode: 0644]
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/bcm-cygnus.dtsi
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm63138.dtsi
arch/arm/boot/dts/bcm7445-bcm97445svmb.dts
arch/arm/boot/dts/bcm7445.dtsi
arch/arm/boot/dts/bcm958300k.dts
arch/arm/boot/dts/bcm963138dvt.dts

index bd49987a8812a77a9be37790667bb61d60acfcd3..b82b6a0ae6f725cee5f6138657e05bdb92e138f7 100644 (file)
@@ -7,3 +7,79 @@ following properties:
 Required root node property:
 
 compatible: should be "brcm,bcm63138"
+
+An optional Boot lookup table Device Tree node is required for secondary CPU
+initialization as well as a 'resets' phandle to the correct PMB controller as
+defined in reset/brcm,bcm63138-pmb.txt for this secondary CPU, and an
+'enable-method' property.
+
+Required properties for the Boot lookup table node:
+- compatible: should be "brcm,bcm63138-bootlut"
+- reg: register base address and length for the Boot Lookup table
+
+Optional properties for the primary CPU node:
+- enable-method: should be "brcm,bcm63138"
+
+Optional properties for the secondary CPU node:
+- enable-method: should be "brcm,bcm63138"
+- resets: phandle to the relevant PMB controller, one integer indicating the internal
+  bus number, and a second integer indicating the address of the CPU in the PMB
+  internal bus number.
+
+Example:
+
+       cpus {
+               cpu@0 {
+                       compatible = "arm,cotex-a9";
+                       reg = <0>;
+                       ...
+                       enable-method = "brcm,bcm63138";
+               };
+
+               cpu@1 {
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+                       ...
+                       enable-method = "brcm,bcm63138";
+                       resets = <&pmb0 4 1>;
+               };
+       };
+
+       bootlut: bootlut@8000 {
+               compatible = "brcm,bcm63138-bootlut";
+               reg = <0x8000 0x50>;
+       };
+
+=======
+reboot
+------
+Two nodes are required for software reboot: a timer node and a syscon-reboot node.
+
+Timer node:
+
+- compatible: Must be "brcm,bcm6328-timer", "syscon"
+- reg: Register base address and length
+
+Syscon reboot node:
+
+See Documentation/devicetree/bindings/power/reset/syscon-reboot.txt for the
+detailed list of properties, the two values defined below are specific to the
+BCM6328-style timer:
+
+- offset: Should be 0x34 to denote the offset of the TIMER_WD_TIMER_RESET register
+  from the beginning of the TIMER block
+- mask: Should be 1 for the SoftRst bit.
+
+Example:
+
+       timer: timer@80 {
+               compatible = "brcm,bcm6328-timer", "syscon";
+               reg = <0x80 0x3c>;
+       };
+
+       reboot {
+               compatible = "syscon-reboot";
+               regmap = <&timer>;
+               offset = <0x34>;
+               mask = <0x1>;
+       };
diff --git a/Documentation/devicetree/bindings/reset/brcm,bcm63138-pmb.txt b/Documentation/devicetree/bindings/reset/brcm,bcm63138-pmb.txt
new file mode 100644 (file)
index 0000000..a98872d
--- /dev/null
@@ -0,0 +1,19 @@
+Broadcom BCM63138 Processor Monitor Bus binding
+===============================================
+
+Please also refer to reset.txt in this directory for common reset
+controller binding usage.
+
+Require properties:
+
+- compatible: must be "brcm,bcm63138-pmb"
+- reg: base register address and size for this bus controller
+- #reset-cells: must be 2 first cell is the address within the bus instance designated
+  by the phandle, and the second is the number of zones for this peripheral
+
+Example:
+       pmb0: reset-controller@4800c0 {
+               compatible = "brcm,bcm63138-pmb";
+               reg = <0x4800c0 0x10>;
+               #reset-cells = <2>;
+       };
index 49b2bf7673e77413120ddca0804159921ec69d18..dc0f748869ebd5d0e285ee78a8fdbf6b6a157fc6 100644 (file)
@@ -58,13 +58,17 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
        bcm2835-rpi-b.dtb \
        bcm2835-rpi-b-plus.dtb
 dtb-$(CONFIG_ARCH_BCM_5301X) += \
+       bcm4708-asus-rt-ac56u.dtb \
+       bcm4708-asus-rt-ac68u.dtb \
        bcm4708-buffalo-wzr-1750dhp.dtb \
        bcm4708-luxul-xwc-1000.dtb \
        bcm4708-netgear-r6250.dtb \
        bcm4708-netgear-r6300-v2.dtb \
+       bcm4708-smartrg-sr400ac.dtb \
        bcm47081-asus-rt-n18u.dtb \
        bcm47081-buffalo-wzr-600dhp2.dtb \
        bcm47081-buffalo-wzr-900dhp.dtb \
+       bcm4709-buffalo-wxr-1900dhp.dtb \
        bcm4709-netgear-r8000.dtb
 dtb-$(CONFIG_ARCH_BCM_63XX) += \
        bcm963138dvt.dtb
index 7b52c33ea69aedefa667a9a96460a6d5cb4fefc4..e1ac07a16f926e964c61888a2984d2ed037414f6 100644 (file)
                status = "disabled";
        };
 
+       nand: nand@18046000 {
+               compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
+               reg = <0x18046000 0x600>, <0xf8105408 0x600>, <0x18046f00 0x20>;
+               reg-names = "nand", "iproc-idm", "iproc-ext";
+               interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               brcm,nand-has-wp;
+       };
+
        gic: interrupt-controller@19021000 {
                compatible = "arm,cortex-a9-gic";
                #interrupt-cells = <3>;
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
new file mode 100644 (file)
index 0000000..71cff8d
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Broadcom BCM470X / BCM5301X ARM platform code.
+ * DTS for Asus RT-AC56U
+ *
+ * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
+ *
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+/dts-v1/;
+
+#include "bcm4708.dtsi"
+
+/ {
+       compatible = "asus,rt-ac56u", "brcm,bcm4708";
+       model = "Asus RT-AC56U (BCM4708)";
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       memory {
+               reg = <0x00000000 0x08000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               usb3 {
+                       label = "bcm53xx:blue:usb3";
+                       gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wan {
+                       label = "bcm53xx:blue:wan";
+                       gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-off";
+               };
+
+               lan {
+                       label = "bcm53xx:blue:lan";
+                       gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-off";
+               };
+
+               power {
+                       label = "bcm53xx:blue:power";
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               all {
+                       label = "bcm53xx:blue:all";
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               2ghz {
+                       label = "bcm53xx:blue:2ghz";
+                       gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-off";
+               };
+
+
+               usb2 {
+                       label = "bcm53xx:blue:usb2";
+                       gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-off";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rfkill {
+                       label = "WiFi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
+               };
+
+               restart {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
new file mode 100644 (file)
index 0000000..8b62836
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Broadcom BCM470X / BCM5301X ARM platform code.
+ * DTS for Asus RT-AC68U
+ *
+ * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
+ *
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+/dts-v1/;
+
+#include "bcm4708.dtsi"
+
+/ {
+       compatible = "asus,rt-ac68u", "brcm,bcm4708";
+       model = "Asus RT-AC68U (BCM4708)";
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       memory {
+               reg = <0x00000000 0x08000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               usb2 {
+                       label = "bcm53xx:blue:usb2";
+                       gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-off";
+               };
+
+               power {
+                       label = "bcm53xx:blue:power";
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               logo {
+                       label = "bcm53xx:white:logo";
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               usb3 {
+                       label = "bcm53xx:blue:usb3";
+                       gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-off";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               brightness {
+                       label = "Backlight";
+                       linux,code = <KEY_BRIGHTNESS_ZERO>;
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
+               };
+
+               restart {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               rfkill {
+                       label = "WiFi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
index b359c1e6178e394177745afa2cd202c8e844edaf..78e95c0e6b43de6b24e1cb4aa197c24fa3b387e0 100644 (file)
        leds {
                compatible = "gpio-leds";
 
+               usb {
+                       label = "bcm53xx:blue:usb";
+                       gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
                power0 {
                        label = "bcm53xx:red:power";
                        gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
diff --git a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
new file mode 100644 (file)
index 0000000..66dfb53
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ * Broadcom BCM470X / BCM5301X arm platform code.
+ * DTS for SmartRG SR400ac
+ *
+ * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
+ *
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+/dts-v1/;
+
+#include "bcm4708.dtsi"
+
+/ {
+       compatible = "smartrg,sr400ac", "brcm,bcm4708";
+       model = "SmartRG SR400ac";
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       memory {
+               reg = <0x00000000 0x08000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               power-white {
+                       label = "bcm53xx:white:power";
+                       gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               power-amber {
+                       label = "bcm53xx:amber:power";
+                       gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               usb2 {
+                       label = "bcm53xx:white:usb2";
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               usb3-white {
+                       label = "bcm53xx:white:usb3";
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               usb3-green {
+                       label = "bcm53xx:green:usb3";
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wps {
+                       label = "bcm53xx:white:wps";
+                       gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               status-red {
+                       label = "bcm53xx:red:status";
+                       gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               status-green {
+                       label = "bcm53xx:green:status";
+                       gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               status-blue {
+                       label = "bcm53xx:blue:status";
+                       gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wan-white {
+                       label = "bcm53xx:white:wan";
+                       gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wan-red {
+                       label = "bcm53xx:red:wan";
+                       gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rfkill {
+                       label = "WiFi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
+               };
+
+               restart {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
new file mode 100644 (file)
index 0000000..548e93b
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * Broadcom BCM470X / BCM5301X ARM platform code.
+ * DTS for Buffalo WXR-1900DHP
+ *
+ * Copyright (C) 2015 Felix Fietkau <nbd@openwrt.org>
+ *
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+/dts-v1/;
+
+#include "bcm4708.dtsi"
+
+/ {
+       compatible = "buffalo,wxr-1900dhp", "brcm,bcm4709", "brcm,bcm4708";
+       model = "Buffalo WXR-1900DHP";
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       memory {
+               reg = <0x00000000 0x08000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               usb {
+                       label = "bcm53xx:green:usb";
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               power-amber {
+                       label = "bcm53xx:amber:power";
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               power-white {
+                       label = "bcm53xx:white:power";
+                       gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               router-amber {
+                       label = "bcm53xx:amber:router";
+                       gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               router-white {
+                       label = "bcm53xx:white:router";
+                       gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wan-amber {
+                       label = "bcm53xx:amber:wan";
+                       gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wan-white {
+                       label = "bcm53xx:white:wan";
+                       gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wireless-amber {
+                       label = "bcm53xx:amber:wireless";
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               wireless-white {
+                       label = "bcm53xx:white:wireless";
+                       gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               power {
+                       label = "Power";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+               };
+
+               restart {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+               };
+
+               aoss {
+                       label = "AOSS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
+               };
+
+               /* Commit mode set by switch? */
+               mode {
+                       label = "Mode";
+                       linux,code = <KEY_SETUP>;
+                       gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+               };
+
+               /* Switch: AP mode */
+               sw_ap {
+                       label = "AP";
+                       linux,code = <BTN_0>;
+                       gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+               };
+
+               eject {
+                       label = "USB eject";
+                       linux,code = <KEY_EJECTCD>;
+                       gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
index f46329c8ad75c00c068e269565bdb1b931083f47..0ad836f310f1644b2b5496845aff3f6d28eb68e2 100644 (file)
@@ -26,6 +26,7 @@
                        compatible = "arm,cortex-a9";
                        next-level-cache = <&L2>;
                        reg = <0>;
+                       enable-method = "brcm,bcm63138";
                };
 
                cpu@1 {
@@ -33,6 +34,8 @@
                        compatible = "arm,cortex-a9";
                        next-level-cache = <&L2>;
                        reg = <1>;
+                       enable-method = "brcm,bcm63138";
+                       resets = <&pmb0 4 1>;
                };
        };
 
                        reg = <0x1e620 0x20>;
                        interrupts = <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>;
                };
+
+               pmb0: reset-controller@4800c0 {
+                       compatible = "brcm,bcm63138-pmb";
+                       reg = <0x4800c0 0x10>;
+                       #reset-cells = <2>;
+               };
+
+               pmb1: reset-controller@4800e0 {
+                       compatible = "brcm,bcm63138-pmb";
+                       reg = <0x4800e0 0x10>;
+                       #reset-cells = <2>;
+               };
+
+               nand: nand@2000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.0", "brcm,brcmnand";
+                       reg = <0x2000 0x600>, <0xf0 0x10>;
+                       reg-names = "nand", "nand-int-base";
+                       status = "disabled";
+                       interrupts = <GIC_SPI 38 0>;
+                       interrupt-names = "nand";
+               };
        };
 
        /* Legacy UBUS base */
                #size-cells = <1>;
                ranges = <0 0xfffe8000 0x8100>;
 
+               timer: timer@80 {
+                       compatible = "brcm,bcm6328-timer", "syscon";
+                       reg = <0x80 0x3c>;
+               };
+
                serial0: serial@600 {
                        compatible = "brcm,bcm6345-uart";
                        reg = <0x600 0x1b>;
                        clock-names = "periph";
                        status = "disabled";
                };
+
+               bootlut: bootlut@8000 {
+                       compatible = "brcm,bcm63138-bootlut";
+                       reg = <0x8000 0x50>;
+               };
+
+               reboot {
+                       compatible = "syscon-reboot";
+                       regmap = <&timer>;
+                       offset = <0x34>;
+                       mask = <1>;
+               };
        };
 };
index 9eec2ac1112fdef5cfc1a8cadfc2e2a756f91435..0bb8d17e4c2d037439ecd9165bba6d1b9730febc 100644 (file)
                      <0x00 0x80000000 0x00 0x40000000>;
        };
 };
+
+&nand {
+       status = "okay";
+
+       nandcs@1 {
+               compatible = "brcm,nandcs";
+               reg = <1>;
+               nand-ecc-step-size = <512>;
+               nand-ecc-strength = <8>;
+               nand-on-flash-bbt;
+
+               #size-cells = <2>;
+               #address-cells = <2>;
+
+               flash1.rootfs0@0 {
+                       reg = <0x0 0x0 0x0 0x80000000>;
+               };
+
+               flash1.rootfs1@80000000 {
+                       reg = <0x0 0x80000000 0x0 0x80000000>;
+               };
+       };
+};
index 39ac7840d7eebfafd5be58dc2b3fa5c5b9d6c63b..58dcd666257c001bf33bdded1bcd93f6287332ea 100644 (file)
                        brcm,int-map-mask = <0x25c>, <0x7000000>;
                        brcm,int-fwd-mask = <0x70000>;
                };
+
+               hif_intr2_intc: interrupt-controller@3e1000 {
+                       compatible = "brcm,l2-intc";
+                       reg = <0x3e1000 0x30>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       interrupts = <GIC_SPI 0x20 0x0>;
+                       interrupt-parent = <&gic>;
+                       interrupt-names = "hif";
+               };
+
+               nand: nand@3e2800 {
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "brcm,brcmnand-v7.1", "brcm,brcmnand";
+                       reg-names = "nand", "flash-dma";
+                       reg = <0x3e2800 0x600>, <0x3e3000 0x2c>;
+                       interrupt-parent = <&hif_intr2_intc>;
+                       interrupts = <24>, <4>;
+                       interrupt-names = "nand_ctlrdy", "flash_dma_done";
+               };
+
+               sata@45a000 {
+                       compatible = "brcm,bcm7445-ahci", "brcm,sata3-ahci";
+                       reg-names = "ahci", "top-ctrl";
+                       reg = <0x45a000 0xa9c>, <0x458040 0x24>;
+                       interrupts = <GIC_SPI 30 0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       sata0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata_phy0>;
+                       };
+
+                       sata1: sata-port@1 {
+                               reg = <1>;
+                               phys = <&sata_phy1>;
+                       };
+               };
+
+               sata_phy: sata-phy@458100 {
+                       compatible = "brcm,bcm7445-sata-phy", "brcm,phy-sata3";
+                       reg = <0x458100 0x1f00>;
+                       reg-names = "phy";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       sata_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+
+                       sata_phy1: sata-phy@1 {
+                               reg = <1>;
+                               #phy-cells = <0>;
+                       };
+               };
        };
 
        smpboot {
index c9eb8565eac5be2b3d0299218919b4a8a918bd94..2f63052f9d483d8bd5823387beac17c3c1515d13 100644 (file)
        uart3: serial@18023000 {
                status = "okay";
        };
+
+       nand: nand@18046000 {
+               nandcs@1 {
+                       compatible = "brcm,nandcs";
+                       reg = <0>;
+                       nand-on-flash-bbt;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       nand-ecc-strength = <24>;
+                       nand-ecc-step-size = <1024>;
+
+                       brcm,nand-oob-sector-size = <27>;
+               };
+       };
 };
index 69c93395ecd241acd90052d8145f56d0ae8a4896..370aa2cfddf207293a0642e4dce9c9880e7a4e25 100644 (file)
 &serial1 {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-ecc-strength = <4>;
+               nand-ecc-step-size = <512>;
+               brcm,nand-oob-sectors-size = <16>;
+       };
+};