> -----Original Message----- > From: Linus Walleij <linus.walleij@xxxxxxxxxx> > Sent: Sunday, April 6, 2025 8:33 AM > To: Rob Herring <robh@xxxxxxxxxx>; Krzysztof Kozlowski > <krzk+dt@xxxxxxxxxx>; > Conor Dooley <conor+dt@xxxxxxxxxx>; William Zhang > <william.zhang@xxxxxxxxxxxx>; Anand Gore <anand.gore@xxxxxxxxxxxx>; > Kursad Oney <kursad.oney@xxxxxxxxxxxx>; Florian Fainelli > <florian.fainelli@xxxxxxxxxxxx>; Rafał Miłecki <rafal@xxxxxxxxxx>; > Broadcom > internal kernel review list <bcm-kernel-feedback-list@xxxxxxxxxxxx>; > Olivia > Mackall <olivia@xxxxxxxxxxx>; Ray Jui <rjui@xxxxxxxxxxxx>; Scott Branden > <sbranden@xxxxxxxxxxxx>; Florian Fainelli <f.fainelli@xxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; > linux- > crypto@xxxxxxxxxxxxxxx; Linus Walleij <linus.walleij@xxxxxxxxxx> > Subject: [PATCH v2 11/12] ARM64: dts: bcm6858: 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. ARM64 SoCs have additional > peripherals at 0xff858000. On BCM6858 the PERF window was > too big so adjust it down to its real size (0x3000). > > Add the watchdog, GPIO blocks, RNG, LED, second UART and DMA > blocks for the BCM6858 based on the vendor files 6858_map_part.h > and 6858_intr.h from the "bcmopen-consumer" code drop. > > Curiously, on the BCM6858, the PL081 DMA block is separate > from the two peripheral groups PERF and PERF1, so we put it > in its own bus in the device tree to translate the fourcell > addresses. > > This SoC has up to 256 possible GPIOs due to having 8 > registers with 32 GPIOs in each available. > > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 127 > ++++++++++++++++++++++- > 1 file changed, 126 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi > b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi > index > caeaf428dc15db3089bf4dc62c4a272782c22c3f..38331305e6da8eec39d02aeb0e > 02f3b45e2f5c4d 100644 > --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi > +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi > @@ -111,11 +111,12 @@ gic: interrupt-controller@1000 { > }; > }; > > + /* PERF Peripherals */ > bus@ff800000 { > compatible = "simple-bus"; > #address-cells = <1>; > #size-cells = <1>; > - ranges = <0x0 0x0 0xff800000 0x62000>; > + ranges = <0x0 0x0 0xff800000 0x3000>; > > twd: timer-mfd@400 { > compatible = "brcm,bcm4908-twd", "simple-mfd", > "syscon"; > @@ -136,6 +137,86 @@ watchdog@28 { > }; > }; > > + /* 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 { > compatible = "brcm,bcm6345-uart"; > reg = <0x640 0x18>; > @@ -145,6 +226,29 @@ uart0: serial@640 { > 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 { > #address-cells = <1>; > #size-cells = <0>; > @@ -171,4 +275,25 @@ nandcs: nand@0 { > }; > }; > }; > + > + /* This is NOT in the PERF1 Peripheral group on this SoC! */ > + bus@ff859000 { Ditto > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0x0 0x0 0xff859000 0x1000>; > + > + pl081_dma: dma-controller@0 { > + compatible = "arm,pl081", "arm,primecell"; > + // The magic B105F00D info is missing > + arm,primecell-periphid = <0x00041081>; > + reg = <0x0 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>; > + }; > + }; > }; > > -- > 2.49.0
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature