Re:Re: [PATCH v4 2/4] dt-bindings: mfd: sprd: Add bindings for ums512 global registers

From: Stephen Boyd
Date: Thu Oct 14 2021 - 02:38:54 EST


Quoting ChunyanZhang (2021-10-13 19:02:44)
> At 2021-10-14 09:51:25, "Stephen Boyd" <sboyd@xxxxxxxxxx> wrote:
> >Quoting ChunyanZhang (2021-10-13 16:49:40)
> >> At 2021-10-14 06:04:32, "Stephen Boyd" <sboyd@xxxxxxxxxx> wrote:
> >> >Quoting Chunyan Zhang (2021-09-22 23:41:35)
> >> >> diff --git a/Documentation/devicetree/bindings/mfd/sprd,ums512-glbreg.yaml b/Documentation/devicetree/bindings/mfd/sprd,ums512-glbreg.yaml
> >> >> +
> >> >> +examples:
> >> >> + - |
> >> >> + ap_apb_regs: syscon@71000000 {
> >> >> + compatible = "sprd,ums512-glbregs", "syscon", "simple-mfd";
> >> >> + reg = <0x71000000 0x3000>;
> >> >> + #address-cells = <1>;
> >> >> + #size-cells = <1>;
> >> >> + ranges = <0 0x71000000 0x3000>;
> >> >> +
> >> >> + clock-controller@0 {
> >> >> + compatible = "sprd,ums512-apahb-gate";
> >> >
> >> >Why is this a subnode of a syscon and simple-mfd? Why not put the>clock-controller@71000000 directly onto the bus? Does making it a child
> >> >node help somehow?
> >>
> >> These clocks are at the same register range with global registers. I originally put them directly onto the bus indeed when submitting the patches for SC9863A clocks last year, and it had a private property named 'sprd,syscon' which could provide regmap for these clocks.
> >>
> >> Rob suggested [1] us to make them a child of the syscon, and would not need the private property 'sprd, syscon' then.
> >
> >Why do you need to use a syscon? Are the registers shared with some
> >other driver?
>
> Yes, shared with more than one devices which basically are multimedia devices. You may noticed that these are all gate clocks which are in the global registers ranges and are used to controll the enable status of some devices or some part of devices.
>

Where does the multimedia device address space start? I see 0x71000000
to 0x71002000 is for the clock-controller. Is the multimedia device at
0x71002000 to 0x71003000? If so they're next to each other but not
sharing the same register space. Is ap_apb_regs more like a soft macro
that combines a few clks with some multimedia device?