All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Stanislav Jakubek <stano.jakubek@gmail.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Ray Jui <rjui@broadcom.com>,
	Scott Branden <sbranden@broadcom.com>,
	bcm-kernel-feedback-list@broadcom.com, linux-clk@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Artur Weber <aweber.kernel@gmail.com>
Subject: Re: [PATCH] dt-bindings: clock: brcm,kona-ccu: convert to YAML
Date: Tue, 24 Oct 2023 14:59:48 -0500	[thread overview]
Message-ID: <20231024195948.GA459344-robh@kernel.org> (raw)
In-Reply-To: <ZTbU0rkGMhja+J24@standask-GA-A55M-S2HP>

On Mon, Oct 23, 2023 at 10:17:22PM +0200, Stanislav Jakubek wrote:
> On Mon, Oct 23, 2023 at 09:54:49AM +0200, Krzysztof Kozlowski wrote:
> > On 22/10/2023 13:31, Stanislav Jakubek wrote:
> > > Convert Broadcom Kona family clock controller unit (CCU) bindings
> > > to DT schema.
> > > 
> > > Signed-off-by: Stanislav Jakubek <stano.jakubek@gmail.com>
> > 
> > Thank you for your patch. There is something to discuss/improve.
> > 
> > > +description:
> > > +  Broadcom "Kona" style clock control unit (CCU) is a clock provider that
> > > +  manages a set of clock signals.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    enum:
> > > +      - brcm,bcm11351-aon-ccu
> > > +      - brcm,bcm11351-hub-ccu
> > > +      - brcm,bcm11351-master-ccu
> > > +      - brcm,bcm11351-root-ccu
> > > +      - brcm,bcm11351-slave-ccu
> > > +      - brcm,bcm21664-aon-ccu
> > > +      - brcm,bcm21664-master-ccu
> > > +      - brcm,bcm21664-root-ccu
> > > +      - brcm,bcm21664-slave-ccu
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  '#clock-cells':
> > > +    const: 1
> > > +
> > > +  clock-output-names:
> > > +    minItems: 1
> > > +    maxItems: 10
> > > +
> > > +allOf:
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            enum:
> > > +              - brcm,bcm11351-aon-ccu
> > > +              - brcm,bcm11351-hub-ccu
> > > +              - brcm,bcm11351-master-ccu
> > > +              - brcm,bcm11351-root-ccu
> > > +              - brcm,bcm11351-slave-ccu
> > > +    then:
> > > +      properties:
> > > +        clock-output-names:
> > > +          description: |
> > > +            The following table defines the set of CCUs and clock specifiers
> > > +            for BCM281XX family clocks.
> > > +            These clock specifiers are defined in:
> > > +                "include/dt-bindings/clock/bcm281xx.h"
> > > +
> > > +            CCU     Clock        Type  Index  Specifier
> > > +            ---     -----        ----  -----  ---------
> > > +            root    frac_1m      peri    0    BCM281XX_ROOT_CCU_FRAC_1M
> > > +
> > > +            aon     hub_timer    peri    0    BCM281XX_AON_CCU_HUB_TIMER
> > > +            aon     pmu_bsc      peri    1    BCM281XX_AON_CCU_PMU_BSC
> > > +            aon     pmu_bsc_var  peri    2    BCM281XX_AON_CCU_PMU_BSC_VAR
> > > +
> > > +            hub     tmon_1m      peri    0    BCM281XX_HUB_CCU_TMON_1M
> > > +
> > > +            master  sdio1        peri    0    BCM281XX_MASTER_CCU_SDIO1
> > > +            master  sdio2        peri    1    BCM281XX_MASTER_CCU_SDIO2
> > > +            master  sdio3        peri    2    BCM281XX_MASTER_CCU_SDIO3
> > > +            master  sdio4        peri    3    BCM281XX_MASTER_CCU_SDIO4
> > > +            master  dmac         peri    4    BCM281XX_MASTER_CCU_DMAC
> > > +            master  usb_ic       peri    5    BCM281XX_MASTER_CCU_USB_IC
> > > +            master  hsic2_48m    peri    6    BCM281XX_MASTER_CCU_HSIC_48M
> > > +            master  hsic2_12m    peri    7    BCM281XX_MASTER_CCU_HSIC_12M
> > > +
> > > +            slave   uartb        peri    0    BCM281XX_SLAVE_CCU_UARTB
> > > +            slave   uartb2       peri    1    BCM281XX_SLAVE_CCU_UARTB2
> > > +            slave   uartb3       peri    2    BCM281XX_SLAVE_CCU_UARTB3
> > > +            slave   uartb4       peri    3    BCM281XX_SLAVE_CCU_UARTB4
> > > +            slave   ssp0         peri    4    BCM281XX_SLAVE_CCU_SSP0
> > > +            slave   ssp2         peri    5    BCM281XX_SLAVE_CCU_SSP2
> > > +            slave   bsc1         peri    6    BCM281XX_SLAVE_CCU_BSC1
> > > +            slave   bsc2         peri    7    BCM281XX_SLAVE_CCU_BSC2
> > > +            slave   bsc3         peri    8    BCM281XX_SLAVE_CCU_BSC3
> > > +            slave   pwm          peri    9    BCM281XX_SLAVE_CCU_PWM
> > 
> > I don't really understand why this is in the binding schema. I guess you
> > wanted to copy it from the old binding, but, unless there is real reason
> > for it, don't. The clock IDs should be in the header file and that's it.
> > Nothing here.
> 
> Hi Krzysztof, you're correct that I just copied this from the old bindings.
> brcm,iproc-clocks.yaml has a similar table, so I thought this would be fine.
> I'm OK with dropping it, but how should I document the clock-output-names
> values then? A bunch of if-then blocks (per compatible)? Or should I not even
> bother and just keep minItems/maxItems without documenting the values?
> 
> > 
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            enum:
> > > +              - brcm,bcm21664-aon-ccu
> > > +              - brcm,bcm21664-master-ccu
> > > +              - brcm,bcm21664-root-ccu
> > > +              - brcm,bcm21664-slave-ccu
> > > +    then:
> > > +      properties:
> > > +        clock-output-names:
> > > +          maxItems: 8
> 
> I've also noticed that dtbs_check gives out warnings(?) like this for
> bcm21664 ccu nodes:
> 
> /arch/arm/boot/dts/broadcom/bcm21664-garnet.dtb:
>     root_ccu@35001000: clock-output-names: ['frac_1m'] is too short
>     from schema $id: http://devicetree.org/schemas/clock/brcm,kona-ccu.yaml#
> 
> and this maxItems:8 seems to me like the culprit (since the bcm11351 if-then
> doesn't have that). Seems to me like it also overrides the minItems to be 8
> as well. I don't understand why it would do that though.

Indeed it does. That should be fixed soon such that minItems/maxItems 
will never be added implicitly to if/then/else schemas.

Rob

      parent reply	other threads:[~2023-10-24 19:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-22 11:31 [PATCH] dt-bindings: clock: brcm,kona-ccu: convert to YAML Stanislav Jakubek
2023-10-23  7:54 ` Krzysztof Kozlowski
2023-10-23 20:17   ` Stanislav Jakubek
2023-10-24  7:28     ` Krzysztof Kozlowski
2023-10-24 19:59     ` Rob Herring [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231024195948.GA459344-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=aweber.kernel@gmail.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=florian.fainelli@broadcom.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=rjui@broadcom.com \
    --cc=sboyd@kernel.org \
    --cc=sbranden@broadcom.com \
    --cc=stano.jakubek@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.