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
prev 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.