> -----Original Message----- > From: Linus Walleij > Sent: Monday, May 12, 2025 5:06 AM > To: Rob Herring ; Krzysztof Kozlowski > ; > Conor Dooley ; William Zhang > ; Anand Gore ; > Kursad Oney ; Florian Fainelli > ; Rafał Miłecki ; > Broadcom > internal kernel review list ; > Olivia > Mackall ; Ray Jui ; Scott Branden > ; Florian Fainelli > Cc: devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux- > crypto@vger.kernel.org; Linus Walleij > Subject: [PATCH v3 06/12] ARM: dts: bcm63138: Add BCMBCA peripherals > > All the BCMBCA SoCs share a set of peripherals at 0xff800000, > albeit at slightly varying memory locations on the bus and > with varying IRQ assignments. > > Extend the peripheral interrupt window to 0x10000 as it need > to fit the DMA block. > > Add the GPIO, RNG and LED and DMA blocks for the > BCM63138 based on the vendor files 63138_map_part.h and > 63138_intr.h from the "bcmopen-consumer" code drop. > > This SoC has up to 160 possible GPIOs due to having 5 > registers with 32 GPIOs in each available. > > Signed-off-by: Linus Walleij > --- > arch/arm/boot/dts/broadcom/bcm63138.dtsi | 79 > +++++++++++++++++++++++++++++++- > 1 file changed, 78 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/broadcom/bcm63138.dtsi > b/arch/arm/boot/dts/broadcom/bcm63138.dtsi > index > e74ba6bf370da63d3c115e38b4f20c71baff2116..4ec568586b14c89daceddea8f1 > 7381f72f512a93 100644 > --- a/arch/arm/boot/dts/broadcom/bcm63138.dtsi > +++ b/arch/arm/boot/dts/broadcom/bcm63138.dtsi > @@ -184,13 +184,69 @@ ubus@fffe8000 { > compatible = "simple-bus"; > #address-cells = <1>; > #size-cells = <1>; > - ranges = <0 0xfffe8000 0x8100>; > + ranges = <0 0xfffe8000 0x10000>; > > timer: timer@80 { > compatible = "brcm,bcm6328-timer", "syscon"; > 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 = ; > + }; > + > serial0: serial@600 { > compatible = "brcm,bcm6345-uart"; > reg = <0x600 0x1b>; > @@ -209,6 +265,14 @@ serial1: serial@620 { > status = "disabled"; > }; > > + leds: led-controller@700 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "brcm,bcm63138-leds"; > + reg = <0x700 0xdc>; > + status = "disabled"; > + }; > + > hsspi: spi@1000 { > #address-cells = <1>; > #size-cells = <0>; > @@ -248,6 +312,19 @@ bootlut: bootlut@8000 { > 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 = ; > + memcpy-burst-size = <256>; > + memcpy-bus-width = <32>; > + clocks = <&periph_clk>; > + clock-names = "apb_pclk"; > + #dma-cells = <2>; > + }; > + > reboot { > compatible = "syscon-reboot"; > regmap = <&timer>; > > -- > 2.49.0 Reviewed-by: William Zhang