Re: [PATCH 0/2] ARM: dts: bcm-mobile: Split out nodes used by both BCM21664 and BCM23550

From: Artur Weber
Date: Wed Jun 05 2024 - 03:22:08 EST


On 5.06.2024 08:40, Artur Weber wrote:
The BCM21664 and BCM23550 are nearly identical to each other in terms
of register layout. This was verified against a downstream kernel[1] -

Let me rephrase this a bit, since upon reading it again it kind of
sounds like this means "subdevices are in the same place". I mean that
literally many of the components are the exact same, 1:1, and the same
drivers with the same configuration will work for both of them. (And
if they turn out to not work, it's as easy as switching the
compatibles/tweaking the SoC-specific DTS.)

If you check the RDB files I linked, they contain the exact layout of
not just the system in general, but each of the individual components
(see for example [1]). These RDB files are called back to multiple times
through the kernel (for example [2]).

Clocks are a notable example of this; if you were to diff the clock
drivers in the kernel I linked in the replied-to message:

diff arch/arm/mach-{hawaii,java}/clock.c

The only differences are some clocks in the KPROC CCU, and the addition
of a MM2 CCU on the BCM23550. (Note that neither of these two CCUs are
supported in mainline at the moment; I have some WIP series to start
adding the KPROC CCU, but it's still an early work-in-progress.)

Most other drivers (sdio, serial, i2c, and so on) have no differences,
as far as I can tell. And they already use the same drivers in mainline.

Best regards
Artur

[1] https://github.com/knuxdroid/android_kernel_samsung_baffinlite/blob/cm-12.1/arch/arm/mach-hawaii/include/mach/rdb/brcm_rdb_kpm_clk_mgr_reg.h
[2] https://github.com/knuxdroid/android_kernel_samsung_baffinlite/blob/cm-12.1/arch/arm/mach-hawaii/clock.c#L4009-L4055