fixup! BCM2708: Add core Device Tree support

This commit is contained in:
Dom Cobley
2025-10-09 18:41:42 +01:00
parent 38675847bd
commit ffe62b97b6
13 changed files with 1001 additions and 24 deletions

View File

@@ -184,13 +184,69 @@
compatible = "simple-bus"; compatible = "simple-bus";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0xfffe8000 0x8100>; ranges = <0 0xfffe8000 0x10000>;
timer: timer@80 { timer: timer@80 {
compatible = "brcm,bcm6328-timer", "syscon"; compatible = "brcm,bcm6328-timer", "syscon";
reg = <0x80 0x3c>; reg = <0x80 0x3c>;
}; };
/* GPIOs 0 .. 31 */
gpio0: gpio@100 {
compatible = "brcm,bcm6345-gpio";
reg = <0x100 0x04>, <0x114 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@104 {
compatible = "brcm,bcm6345-gpio";
reg = <0x104 0x04>, <0x118 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@108 {
compatible = "brcm,bcm6345-gpio";
reg = <0x108 0x04>, <0x11c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@10c {
compatible = "brcm,bcm6345-gpio";
reg = <0x10c 0x04>, <0x120 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@110 {
compatible = "brcm,bcm6345-gpio";
reg = <0x110 0x04>, <0x124 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@300 {
compatible = "brcm,iproc-rng200";
reg = <0x300 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
serial0: serial@600 { serial0: serial@600 {
compatible = "brcm,bcm6345-uart"; compatible = "brcm,bcm6345-uart";
reg = <0x600 0x1b>; reg = <0x600 0x1b>;
@@ -209,6 +265,14 @@
status = "disabled"; status = "disabled";
}; };
leds: led-controller@700 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x700 0xdc>;
status = "disabled";
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -248,6 +312,19 @@
reg = <0x8000 0x50>; reg = <0x8000 0x50>;
}; };
pl081_dma: dma-controller@d000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0xd000 0x1000>;
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
reboot { reboot {
compatible = "syscon-reboot"; compatible = "syscon-reboot";
regmap = <&timer>; regmap = <&timer>;

View File

@@ -99,6 +99,62 @@
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0xfffe8000 0x8000>; ranges = <0 0xfffe8000 0x8000>;
/* GPIOs 0 .. 31 */
gpio0: gpio@100 {
compatible = "brcm,bcm6345-gpio";
reg = <0x100 0x04>, <0x114 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@104 {
compatible = "brcm,bcm6345-gpio";
reg = <0x104 0x04>, <0x118 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@108 {
compatible = "brcm,bcm6345-gpio";
reg = <0x108 0x04>, <0x11c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@10c {
compatible = "brcm,bcm6345-gpio";
reg = <0x10c 0x04>, <0x120 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@110 {
compatible = "brcm,bcm6345-gpio";
reg = <0x110 0x04>, <0x124 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@300 {
compatible = "brcm,iproc-rng200";
reg = <0x300 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
uart0: serial@600 { uart0: serial@600 {
compatible = "brcm,bcm6345-uart"; compatible = "brcm,bcm6345-uart";
reg = <0x600 0x20>; reg = <0x600 0x20>;
@@ -108,6 +164,14 @@
status = "disabled"; status = "disabled";
}; };
leds: led-controller@700 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x700 0xdc>;
status = "disabled";
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;

View File

@@ -117,6 +117,97 @@
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0xff800000 0x800000>; ranges = <0 0xff800000 0x800000>;
watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x10>;
};
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -143,6 +234,27 @@
}; };
}; };
leds: led-controller@3000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x3000 0xdc>;
status = "disabled";
};
pl081_dma: dma-controller@11000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x11000 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
uart0: serial@12000 { uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell"; compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>; reg = <0x12000 0x1000>;

View File

@@ -196,6 +196,7 @@
rng@b80 { rng@b80 {
compatible = "brcm,iproc-rng200"; compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>; reg = <0xb80 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
}; };
leds: led-controller@800 { leds: led-controller@800 {

View File

@@ -116,6 +116,103 @@
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0xff800000 0x800000>; ranges = <0 0xff800000 0x800000>;
watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x10>;
};
watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x10>;
status = "disabled";
};
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -143,6 +240,27 @@
}; };
}; };
leds: led-controller@3000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x3000 0xdc>;
status = "disabled";
};
pl081_dma: dma-controller@11000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x11000 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
uart0: serial@12000 { uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell"; compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>; reg = <0x12000 0x1000>;
@@ -151,5 +269,14 @@
clock-names = "uartclk", "apb_pclk"; clock-names = "uartclk", "apb_pclk";
status = "disabled"; status = "disabled";
}; };
uart1: serial@13000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x13000 0x1000>;
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
}; };
}; };

View File

@@ -108,6 +108,111 @@
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0xff800000 0x800000>; ranges = <0 0xff800000 0x800000>;
watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x10>;
};
watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x10>;
status = "disabled";
};
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
leds: led-controller@700 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x700 0xdc>;
status = "disabled";
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -134,10 +239,23 @@
}; };
}; };
pl081_dma: dma-controller@11000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x11000 0x1000>;
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
uart0: serial@12000 { uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell"; compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>; reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>; clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk"; clock-names = "uartclk", "apb_pclk";
status = "disabled"; status = "disabled";

View File

@@ -237,7 +237,8 @@
ranges = <0x0 0x0 0x80000>; ranges = <0x0 0x0 0x80000>;
memc-ddr@2000 { memc-ddr@2000 {
compatible = "brcm,brcmstb-memc-ddr"; compatible = "brcm,brcmstb-memc-ddr-rev-b.1.x",
"brcm,brcmstb-memc-ddr";
reg = <0x2000 0x800>; reg = <0x2000 0x800>;
}; };
@@ -259,7 +260,8 @@
ranges = <0x0 0x80000 0x80000>; ranges = <0x0 0x80000 0x80000>;
memc-ddr@2000 { memc-ddr@2000 {
compatible = "brcm,brcmstb-memc-ddr"; compatible = "brcm,brcmstb-memc-ddr-rev-b.1.x",
"brcm,brcmstb-memc-ddr";
reg = <0x2000 0x800>; reg = <0x2000 0x800>;
}; };
@@ -281,7 +283,8 @@
ranges = <0x0 0x100000 0x80000>; ranges = <0x0 0x100000 0x80000>;
memc-ddr@2000 { memc-ddr@2000 {
compatible = "brcm,brcmstb-memc-ddr"; compatible = "brcm,brcmstb-memc-ddr-rev-b.1.x",
"brcm,brcmstb-memc-ddr";
reg = <0x2000 0x800>; reg = <0x2000 0x800>;
}; };

View File

@@ -17,21 +17,21 @@
led-1 { led-1 {
function = LED_FUNCTION_INDICATOR; function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_RED>; color = <LED_COLOR_ID_RED>;
pwms = <&pwm 1 50000>; pwms = <&pwm 1 50000 0>;
max-brightness = <255>; max-brightness = <255>;
}; };
led-2 { led-2 {
function = LED_FUNCTION_POWER; function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
pwms = <&pwm 2 50000>; pwms = <&pwm 2 50000 0>;
max-brightness = <255>; max-brightness = <255>;
}; };
led-3 { led-3 {
function = LED_FUNCTION_INDICATOR; function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_BLUE>; color = <LED_COLOR_ID_BLUE>;
pwms = <&pwm 3 50000>; pwms = <&pwm 3 50000 0>;
max-brightness = <255>; max-brightness = <255>;
}; };
}; };
@@ -132,7 +132,6 @@
&pwm { &pwm {
status = "okay"; status = "okay";
#pwm-cells = <2>;
}; };
&uart0 { &uart0 {

View File

@@ -323,11 +323,12 @@
}; };
}; };
/* PERF Peripherals */
bus@ff800000 { bus@ff800000 {
compatible = "simple-bus"; compatible = "simple-bus";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0x00 0x00 0xff800000 0x3000>; ranges = <0x00 0x00 0xff800000 0x400000>;
twd: timer-mfd@400 { twd: timer-mfd@400 {
compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon"; compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
@@ -348,13 +349,103 @@
}; };
}; };
gpio0: gpio-controller@500 { /* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio"; compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat"; reg-names = "dirout", "dat";
reg = <0x500 0x28>, <0x528 0x28>;
#gpio-cells = <2>;
gpio-controller; gpio-controller;
#gpio-cells = <2>;
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x540 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x544 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 256 .. 287 */
gpio8: gpio@520 {
compatible = "brcm,bcm6345-gpio";
reg = <0x520 0x04>, <0x548 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 288 .. 319 */
gpio9: gpio@524 {
compatible = "brcm,bcm6345-gpio";
reg = <0x524 0x04>, <0x54c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
}; };
pinctrl@560 { pinctrl@560 {
@@ -584,6 +675,12 @@
#size-cells = <0>; #size-cells = <0>;
}; };
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -636,6 +733,19 @@
#reset-cells = <1>; #reset-cells = <1>;
}; };
}; };
pl081_dma: dma-controller@59000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x59000 0x1000>;
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
}; };
reboot { reboot {

View File

@@ -1,6 +1,7 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT) // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/* /*
* Copyright 2022 Broadcom Ltd. * Copyright 2022 Broadcom Ltd.
* This DTSI is for the B0 and later revision of the SoC
*/ */
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
@@ -125,6 +126,101 @@
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>; ranges = <0x0 0x0 0xff800000 0x800000>;
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
leds: led-controller@800 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x800 0xdc>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -151,6 +247,21 @@
}; };
}; };
/* B0 AHB Peripherals */
pl081_dma: dma-controller@11000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x11000 0x1000>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
/* B0 ARM UART Peripheral block */
uart0: serial@12000 { uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell"; compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>; reg = <0x12000 0x1000>;
@@ -159,5 +270,23 @@
clock-names = "uartclk", "apb_pclk"; clock-names = "uartclk", "apb_pclk";
status = "disabled"; status = "disabled";
}; };
uart1: serial@13000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x13000 0x1000>;
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
uart2: serial@14000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x14000 0x1000>;
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
}; };
}; };

View File

@@ -93,11 +93,103 @@
}; };
}; };
/* PERF Peripherals */
bus@ff800000 { bus@ff800000 {
compatible = "simple-bus"; compatible = "simple-bus";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>; ranges = <0x0 0x0 0xff800000 0x400000>;
watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x10>;
};
watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x10>;
status = "disabled";
};
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
uart0: serial@640 { uart0: serial@640 {
compatible = "brcm,bcm6345-uart"; compatible = "brcm,bcm6345-uart";
@@ -108,6 +200,29 @@
status = "disabled"; status = "disabled";
}; };
uart1: serial@660 {
compatible = "brcm,bcm6345-uart";
reg = <0x660 0x18>;
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
leds: led-controller@800 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x800 0xdc>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -133,5 +248,18 @@
reg = <0>; reg = <0>;
}; };
}; };
pl081_dma: dma-controller@59000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x59000 0x1000>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
}; };
}; };

View File

@@ -111,11 +111,12 @@
}; };
}; };
/* PERF Peripherals */
bus@ff800000 { bus@ff800000 {
compatible = "simple-bus"; compatible = "simple-bus";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x62000>; ranges = <0x0 0x0 0xff800000 0x400000>;
twd: timer-mfd@400 { twd: timer-mfd@400 {
compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon"; compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
@@ -136,6 +137,86 @@
}; };
}; };
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
uart0: serial@640 { uart0: serial@640 {
compatible = "brcm,bcm6345-uart"; compatible = "brcm,bcm6345-uart";
reg = <0x640 0x18>; reg = <0x640 0x18>;
@@ -145,6 +226,29 @@
status = "disabled"; status = "disabled";
}; };
uart1: serial@660 {
compatible = "brcm,bcm6345-uart";
reg = <0x660 0x18>;
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
leds: led-controller@800 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x800 0xdc>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 { hsspi: spi@1000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@@ -170,5 +274,18 @@
reg = <0>; reg = <0>;
}; };
}; };
pl081_dma: dma-controller@59000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x59000 0x1000>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
}; };
}; };

View File

@@ -367,7 +367,6 @@
v2m0: v2m@0 { v2m0: v2m@0 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x00000 0x1000>; reg = <0x00000 0x1000>;
arm,msi-base-spi = <72>; arm,msi-base-spi = <72>;
@@ -376,7 +375,6 @@
v2m1: v2m@10000 { v2m1: v2m@10000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x10000 0x1000>; reg = <0x10000 0x1000>;
arm,msi-base-spi = <88>; arm,msi-base-spi = <88>;
@@ -385,7 +383,6 @@
v2m2: v2m@20000 { v2m2: v2m@20000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x20000 0x1000>; reg = <0x20000 0x1000>;
arm,msi-base-spi = <104>; arm,msi-base-spi = <104>;
@@ -394,7 +391,6 @@
v2m3: v2m@30000 { v2m3: v2m@30000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x30000 0x1000>; reg = <0x30000 0x1000>;
arm,msi-base-spi = <120>; arm,msi-base-spi = <120>;
@@ -403,7 +399,6 @@
v2m4: v2m@40000 { v2m4: v2m@40000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x40000 0x1000>; reg = <0x40000 0x1000>;
arm,msi-base-spi = <136>; arm,msi-base-spi = <136>;
@@ -412,7 +407,6 @@
v2m5: v2m@50000 { v2m5: v2m@50000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x50000 0x1000>; reg = <0x50000 0x1000>;
arm,msi-base-spi = <152>; arm,msi-base-spi = <152>;
@@ -421,7 +415,6 @@
v2m6: v2m@60000 { v2m6: v2m@60000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x60000 0x1000>; reg = <0x60000 0x1000>;
arm,msi-base-spi = <168>; arm,msi-base-spi = <168>;
@@ -430,7 +423,6 @@
v2m7: v2m@70000 { v2m7: v2m@70000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
interrupt-parent = <&gic>;
msi-controller; msi-controller;
reg = <0x70000 0x1000>; reg = <0x70000 0x1000>;
arm,msi-base-spi = <184>; arm,msi-base-spi = <184>;