#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6358-interrupt-controller.h>
+#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6358-reset.h>
/ {
interrupt-controller;
#interrupt-cells = <2>;
+ interrupt-parent = <&periph_intc>;
interrupts = <BCM6358_IRQ_EXT0>,
<BCM6358_IRQ_EXT1>,
<BCM6358_IRQ_EXT2>,
interrupt-controller;
#interrupt-cells = <2>;
+ interrupt-parent = <&periph_intc>;
interrupts = <BCM6358_IRQ_EXT4>,
<BCM6358_IRQ_EXT5>;
};
timeout-sec = <30>;
};
- gpio: syscon@fffe0080 {
- compatible = "syscon", "simple-mfd";
+ gpio_cntl: syscon@fffe0080 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6358-gpio-sysctl",
+ "syscon", "simple-mfd";
reg = <0xfffe0080 0x50>;
+ ranges = <0 0xfffe0080 0x80>;
native-endian;
- pinctrl: pin-controller {
- compatible = "brcm,bcm6358-pinctrl";
+ gpio: gpio@0 {
+ compatible = "brcm,bcm6358-gpio";
+ reg-names = "dirout", "dat";
+ reg = <0x0 0x8>, <0x8 0x8>;
gpio-controller;
+ gpio-ranges = <&pinctrl 0 0 40>;
#gpio-cells = <2>;
+ };
+
+ pinctrl: pinctrl@18 {
+ compatible = "brcm,bcm6358-pinctrl";
+ reg = <0x18 0x4>;
- interrupts-extended = <&ext_intc1 0 0>,
- <&ext_intc1 1 0>,
- <&ext_intc0 0 0>,
- <&ext_intc0 1 0>,
- <&ext_intc0 2 0>,
- <&ext_intc0 3 0>;
- interrupt-names = "gpio32",
- "gpio33",
- "gpio34",
- "gpio35",
- "gpio36",
- "gpio37";
-
- pinctrl_ebi_cs: ebi_cs {
+ pinctrl_ebi_cs: ebi_cs-pins {
function = "ebi_cs";
groups = "ebi_cs_grp";
};
- pinctrl_uart1: uart1 {
+ pinctrl_uart1: uart1-pins {
function = "uart1";
groups = "uart1_grp";
};
- pinctrl_serial_led: serial_led {
+ pinctrl_serial_led: serial_led-pins {
function = "serial_led";
groups = "serial_led_grp";
};
- pinctrl_legacy_led: legacy_led {
+ pinctrl_legacy_led: legacy_led-pins {
function = "legacy_led";
groups = "legacy_led_grp";
};
- pinctrl_led: led {
+ pinctrl_led: led-pins {
function = "led";
groups = "led_grp";
};
- pinctrl_spi_cs_23: spi_cs {
+ pinctrl_spi_cs_23: spi_cs-pins {
function = "spi_cs";
groups = "spi_cs_grp";
};
- pinctrl_utopia: utopia {
+ pinctrl_utopia: utopia-pins {
function = "utopia";
groups = "utopia_grp";
};
- pinctrl_pwm_syn_clk: pwm_syn_clk {
+ pinctrl_pwm_syn_clk: pwm_syn_clk-pins {
function = "pwm_syn_clk";
groups = "pwm_syn_clk_grp";
};
- pinctrl_sys_irq: sys_irq {
+ pinctrl_sys_irq: sys_irq-pins {
function = "sys_irq";
groups = "sys_irq_grp";
};
pci: pci@fffe1000 {
compatible = "brcm,bcm6348-pci";
- reg = <0xfffe1000 0x200>,
- <0x08000000 0x10000>;
- reg-names = "pci",
- "pci-io";
+ reg = <0xfffe1000 0x200>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
bus-range = <0x00 0x01>;
- ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>;
+ ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>,
+ <0x1000000 0 0x08000000 0x08000000 0 0x0010000>;
linux,pci-probe-only = <1>;
interrupt-parent = <&periph_intc>;
status = "disabled";
};
+
+ ethernet0: ethernet@fffe4000 {
+ compatible = "brcm,bcm6358-emac";
+ reg = <0xfffe4000 0x2dc>;
+
+ clocks = <&periph_clk BCM6358_CLK_ENET0>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM6358_IRQ_EMAC0>,
+ <BCM6358_IRQ_EMAC0_RX_DMA>,
+ <BCM6358_IRQ_EMAC0_TX_DMA>;
+ interrupt-names = "emac",
+ "rx",
+ "tx";
+
+ brcm,iudma = <&iudma>;
+
+ dma-rx = <0>;
+ dma-tx = <1>;
+
+ status = "disabled";
+
+ mdio0: mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ ethernet1: ethernet@fffe4800 {
+ compatible = "brcm,bcm6358-emac";
+ reg = <0xfffe4800 0x2dc>;
+
+ clocks = <&periph_clk BCM6358_CLK_ENET1>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM6358_IRQ_EMAC1>,
+ <BCM6358_IRQ_EMAC1_RX_DMA>,
+ <BCM6358_IRQ_EMAC1_TX_DMA>;
+ interrupt-names = "emac",
+ "rx",
+ "tx";
+
+ brcm,iudma = <&iudma>;
+ brcm,external-mii;
+
+ dma-rx = <2>;
+ dma-tx = <3>;
+
+ status = "disabled";
+
+ mdio1: mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ iudma: dma@fffe5000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6358-iudma";
+ reg = <0xfffe5000 0x24>,
+ <0xfffe5100 0x80>,
+ <0xfffe5200 0x80>;
+ reg-names = "dma",
+ "dma-channels",
+ "dma-sram";
+
+ dma-channels = <8>;
+
+ clocks = <&periph_clk BCM6358_CLK_EMUSB>,
+ <&periph_clk BCM6358_CLK_USBSU>,
+ <&periph_clk BCM6358_CLK_EPHY>,
+ <&periph_clk BCM6358_CLK_ENET>;
+
+ resets = <&periph_rst BCM6358_RST_ENET>,
+ <&periph_rst BCM6358_RST_EPHY>;
+
+ status = "disabled";
+ };
};
};