Message ID | 20250406-bcmbca-peripherals-arm-v2-0-22130836c2ed@linaro.org |
---|---|
Headers | show |
Series | ARM: bcm: Add some BCMBCA peripherals | expand |
From: Florian Fainelli <f.fainelli@gmail.com> On Sun, 06 Apr 2025 17:32:43 +0200, Linus Walleij <linus.walleij@linaro.org> wrote: > The r200 RNG has an interrupt so let's add it. > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- Applied to https://github.com/Broadcom/stblinux/commits/devicetree/next, thanks! -- Florian
From: Florian Fainelli <f.fainelli@gmail.com> On Sun, 06 Apr 2025 17:32:47 +0200, Linus Walleij <linus.walleij@linaro.org> wrote: > 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. > > Add the GPIO, RNG and LED and DMA blocks for the > BCM63148 based on the vendor files 63148_map_part.h and > 63148_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 <linus.walleij@linaro.org> > --- Applied to https://github.com/Broadcom/stblinux/commits/devicetree/next, thanks! -- Florian
From: Florian Fainelli <f.fainelli@gmail.com> On Sun, 06 Apr 2025 17:32:51 +0200, Linus Walleij <linus.walleij@linaro.org> wrote: > 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@linaro.org> > --- Applied to https://github.com/Broadcom/stblinux/commits/devicetree-arm64/next, thanks! -- Florian
This adds a bunch peripherals to the Broadcom BRCMBCA SoC:s that I happened to find documentation for in some vendor header files. It started when I added a bunch of peripherals for the BCM6846, and this included really helpful peripherals such as the PL081 DMA, for which I think the most common usecase is to be used as a memcpy engine to offload transfer of blocks from NAND flash to/from the NAND flash controller (at least this is how the STMicro FSMC controller was using it). So I took a sweep and added all the stuff that has bindings to: ARM: - BCM6846 - BCM6855 - BCM6878 - BCM63138 - BCM63148 - BCM63178 ARM64: - BCM4908 - BCM6856 - BCM6858 - BCM63158 There are several "holes" in this SoC list, I simply just fixed those that I happened to run into documentation for. Unfortunately while very similar, some IP blocks vary slightly in version, the GPIO block is differently integrated on different systems, and the interrupt assignments are completely different, so it's safest to add these to each DTSI individually. I add the interrupt binding for the RNG block in the process as this exists even if Linux isn't using the IRQ, and I put the RNG and DMA engines as default-enabled because they are not routed to the outside and should "just work" so why not. I did a rogue patch adding some stuff to BCM6756 based on guessed but eventually dropped it. If someone has docs for this SoC I can add it. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- Changes in v2: - Pick up Krzysztof's ACK - Push the BCM6858 DMA block into its own simple bus. - Fix GPIO node names and registers on BCM63138. - Fix GPIO node names and registers on BCM63148. - Link to v1: https://lore.kernel.org/r/20250328-bcmbca-peripherals-arm-v1-0-e4e515dc9b8c@linaro.org --- Linus Walleij (12): ARM: dts: bcm6878: Correct UART0 IRQ number dt-bindings: rng: r200: Add interrupt property ARM: dts: bcm6846: Add interrupt to RNG ARM: dts: bcm6855: Add BCMBCA peripherals ARM: dts: bcm6878: Add BCMBCA peripherals ARM: dts: bcm63138: Add BCMBCA peripherals ARM: dts: bcm63148: Add BCMBCA peripherals ARM: dts: bcm63178: Add BCMBCA peripherals ARM64: dts: bcm4908: Add BCMBCA peripherals ARM64: dts: bcm6856: Add BCMBCA peripherals ARM64: dts: bcm6858: Add BCMBCA peripherals ARM64: dts: bcm63158: Add BCMBCA peripherals .../devicetree/bindings/rng/brcm,iproc-rng200.yaml | 6 + arch/arm/boot/dts/broadcom/bcm63138.dtsi | 79 ++++++++++- arch/arm/boot/dts/broadcom/bcm63148.dtsi | 64 +++++++++ arch/arm/boot/dts/broadcom/bcm63178.dtsi | 112 +++++++++++++++ arch/arm/boot/dts/broadcom/bcm6846.dtsi | 1 + arch/arm/boot/dts/broadcom/bcm6855.dtsi | 127 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm6878.dtsi | 120 ++++++++++++++++- arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 122 ++++++++++++++++- arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi | 150 ++++++++++++++++++++- arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi | 138 ++++++++++++++++++- arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 127 ++++++++++++++++- 11 files changed, 1037 insertions(+), 9 deletions(-) --- base-commit: 8359b1e7edc722d4b1be26aa515041a79e4224a3 change-id: 20250327-bcmbca-peripherals-arm-dfb312052363 Best regards,