Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp1213028rdh; Fri, 27 Oct 2023 07:48:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGG0h0NH33Ah4i4+Bv2TyrCsX8shY+EyEszPePu9MIowI+wDiQIHBnFAq0pPS8HsPB7tXYo X-Received: by 2002:a25:c091:0:b0:d9a:4c1f:b580 with SMTP id c139-20020a25c091000000b00d9a4c1fb580mr2574646ybf.58.1698418100414; Fri, 27 Oct 2023 07:48:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698418100; cv=none; d=google.com; s=arc-20160816; b=vQqhE1xwl5fHZPUF1bK+lEc9otACE8/Xh6RKz9L/4K0HlH6ToqWAfoMLbcaGVHlIqG bWoBZKL2tNiu+Gc92CdQHyZqRVnov9wgxsutP1rL4ujq7mduFSVMEePLi/udKd/+YoS1 UPYzCsqvS/PUr56u+lncububYDr/oMxlhB2iDasny5ZMGTDBVM57yGa9qzKi++YlzkOe /pBKFhN4pnUzgqwVsCe/n9YiSBed8OQtqtBqZUSqyiaj3S1FudoVzt2VuUsUMGgqm9PG Ewnu3RjVL7v6mppsZDw5rRDsv48D90skTvDSp62ZvnpxduWesBluHh4j8ySBEEjLS6Nq UYSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=MS1FzO4gPFoQFY/xp2c0KAib5XRRuHB/blIANNNXvto=; fh=OLgPhylEQc4/YVORSJQWnbp2spR+xE0CQ6DBE0T64Xs=; b=wDSDyXaVOfN0e/QvTasS+vuF2Yiv3k/YmSeAcY8SqLOi4sF8d7TNoo6llM7rc8rABi IWQ8fSF6fOxmSFEiRRY8VUA0foBuNLOpZvc0WlC5H5ihWQCHHEYh1X+invZzPlC06FuR Hp+ZgUspVsfvErgZIPQlLrPsRgyIy5o/LVYA1LGj554LdYq+TlxBZf0QPAVNQ8Ie40oZ nIAiWTVoo2xlcjxyQm6oYB/7e0LDBBpJVG8rST2TReWZU7ptaz/dthN23pzaFiJ7XYZA tbw2l2FereoGZxfLkhKMXNH5ZZkkZqYE8x1tz25EDfOmu6IWuIkVs+6CwzSuKEwBjIL0 hG5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gX32qHm6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id n4-20020a25e904000000b00d9a66906429si2785596ybd.256.2023.10.27.07.48.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 07:48:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gX32qHm6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id E1CB583A2971; Fri, 27 Oct 2023 07:48:15 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346090AbjJ0Or6 (ORCPT + 99 others); Fri, 27 Oct 2023 10:47:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345996AbjJ0Or5 (ORCPT ); Fri, 27 Oct 2023 10:47:57 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08428DE; Fri, 27 Oct 2023 07:47:54 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1A4CC433C9; Fri, 27 Oct 2023 14:47:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1698418073; bh=nAT3vIPkBRzhyPX82SokqF71iDQhFT4SJJaMDT239ts=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gX32qHm6ZUcjL0sknP6o//EXBUfac7BH/NfcEJY1l3zjatt9wB/LQZSwbFvwQINM2 95mgLCnh2GizDwkzxJ5CfJWGdbaz+bF0kku2ebe+mn7VmT1AOUMR+4ubLvGXoVjEwz M98+u3i6mPUquauB0CLrM0oykM8mApjPuXm9aULR9+eaY7iME4xxb4aU6StmrP8FFb 5OFheyjh1LTW+gqwhMyyOs0ENaBckhwb4wOiMiQcfiUuujAYfh62AvXs4AjHUopXx/ DfGGSAJzQX7YaCREiPzAcygKuvGNOAuzErmib2ZDJUhmnhyzL/KqfkU8dSx02t/Z/9 EVQaIyCio9W8Q== Date: Fri, 27 Oct 2023 15:47:48 +0100 From: Conor Dooley To: Stanislav Jakubek Cc: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Artur Weber Subject: Re: [PATCH v2] dt-bindings: clock: brcm,kona-ccu: convert to YAML Message-ID: <20231027-bulldog-component-5b84e4660465@spud> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="PpgCk1CqQ30xHt9p" Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Fri, 27 Oct 2023 07:48:16 -0700 (PDT) --PpgCk1CqQ30xHt9p Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 24, 2023 at 06:45:21PM +0200, Stanislav Jakubek wrote: > Convert Broadcom Kona family clock controller unit (CCU) bindings > to DT schema. I didn't cross-check the clock-output-names, but this conversion mostly looks good to me. > Changes during conversion: > - remove "dmac" from clock-output-names for brcm,bcm11351-master-ccu, > it is not used in DT nor the dt-bindings > - remove "uartb4" from clock-output-names for brcm,bcm21664-slave-ccu, > it is not used in DT nor the dt-bindings This I'm not sure about - they _were_ documented in the text-form dt-binding, even if they weren't used in the dts. If the clock controller does actually produce these clocks, removing them doesn't make sense to me. Cheers, Conor. >=20 > Signed-off-by: Stanislav Jakubek > --- >=20 > Changes in V2: > - remove the table copied from the old txt bindings, replace it with if= -then > blocks individually listing the allowed clock-output-names per compat= ible > - remove "dmac" from clock-output-names for brcm,bcm11351-master-ccu, > it is not used in DT nor the dt-bindings > - remove "uartb4" from clock-output-names for brcm,bcm21664-slave-ccu, > it is not used in DT nor the dt-bindings > - move allOf: after required: > - Link to V1: https://lore.kernel.org/lkml/ZTUIJrTc6KKyT4xj@standask-GA= -A55M-S2HP/ >=20 > .../bindings/clock/brcm,kona-ccu.txt | 138 ------------- > .../bindings/clock/brcm,kona-ccu.yaml | 181 ++++++++++++++++++ > 2 files changed, 181 insertions(+), 138 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/clock/brcm,kona-ccu= =2Etxt > create mode 100644 Documentation/devicetree/bindings/clock/brcm,kona-ccu= =2Eyaml >=20 > diff --git a/Documentation/devicetree/bindings/clock/brcm,kona-ccu.txt b/= Documentation/devicetree/bindings/clock/brcm,kona-ccu.txt > deleted file mode 100644 > index 8e5a7d868557..000000000000 > --- a/Documentation/devicetree/bindings/clock/brcm,kona-ccu.txt > +++ /dev/null > @@ -1,138 +0,0 @@ > -Broadcom Kona Family Clocks > - > -This binding is associated with Broadcom SoCs having "Kona" style > -clock control units (CCUs). A CCU is a clock provider that manages > -a set of clock signals. Each CCU is represented by a node in the > -device tree. > - > -This binding uses the common clock binding: > - Documentation/devicetree/bindings/clock/clock-bindings.txt > - > -Required properties: > -- compatible > - Shall have a value of the form "brcm,--ccu", > - where is a Broadcom SoC model number and is > - the name of a defined CCU. For example: > - "brcm,bcm11351-root-ccu" > - The compatible strings used for each supported SoC family > - are defined below. > -- reg > - Shall define the base and range of the address space > - containing clock control registers > -- #clock-cells > - Shall have value <1>. The permitted clock-specifier values > - are defined below. > -- clock-output-names > - Shall be an ordered list of strings defining the names of > - the clocks provided by the CCU. > - > -Device tree example: > - > - slave_ccu: slave_ccu { > - compatible =3D "brcm,bcm11351-slave-ccu"; > - reg =3D <0x3e011000 0x0f00>; > - #clock-cells =3D <1>; > - clock-output-names =3D "uartb", > - "uartb2", > - "uartb3", > - "uartb4"; > - }; > - > - ref_crystal_clk: ref_crystal { > - #clock-cells =3D <0>; > - compatible =3D "fixed-clock"; > - clock-frequency =3D <26000000>; > - }; > - > - uart@3e002000 { > - compatible =3D "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; > - reg =3D <0x3e002000 0x1000>; > - clocks =3D <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>; > - interrupts =3D ; > - reg-shift =3D <2>; > - reg-io-width =3D <4>; > - }; > - > -BCM281XX family > ---------------- > -CCU compatible string values for SoCs in the BCM281XX family are: > - "brcm,bcm11351-root-ccu" > - "brcm,bcm11351-aon-ccu" > - "brcm,bcm11351-hub-ccu" > - "brcm,bcm11351-master-ccu" > - "brcm,bcm11351-slave-ccu" > - > -The following table defines the set of CCUs and clock specifiers for > -BCM281XX family clocks. When a clock consumer references a clocks, > -its symbolic specifier (rather than its numeric index value) should > -be used. These 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 > - > - > -BCM21664 family > ---------------- > -CCU compatible string values for SoCs in the BCM21664 family are: > - "brcm,bcm21664-root-ccu" > - "brcm,bcm21664-aon-ccu" > - "brcm,bcm21664-master-ccu" > - "brcm,bcm21664-slave-ccu" > - > -The following table defines the set of CCUs and clock specifiers for > -BCM21664 family clocks. When a clock consumer references a clocks, > -its symbolic specifier (rather than its numeric index value) should > -be used. These specifiers are defined in: > - "include/dt-bindings/clock/bcm21664.h" > - > - CCU Clock Type Index Specifier > - --- ----- ---- ----- --------- > - root frac_1m peri 0 BCM21664_ROOT_CCU_FRAC_1M > - > - aon hub_timer peri 0 BCM21664_AON_CCU_HUB_TIMER > - > - master sdio1 peri 0 BCM21664_MASTER_CCU_SDIO1 > - master sdio2 peri 1 BCM21664_MASTER_CCU_SDIO2 > - master sdio3 peri 2 BCM21664_MASTER_CCU_SDIO3 > - master sdio4 peri 3 BCM21664_MASTER_CCU_SDIO4 > - master sdio1_sleep peri 4 BCM21664_MASTER_CCU_SDIO1_SL= EEP > - master sdio2_sleep peri 5 BCM21664_MASTER_CCU_SDIO2_SL= EEP > - master sdio3_sleep peri 6 BCM21664_MASTER_CCU_SDIO3_SL= EEP > - master sdio4_sleep peri 7 BCM21664_MASTER_CCU_SDIO4_SL= EEP > - > - slave uartb peri 0 BCM21664_SLAVE_CCU_UARTB > - slave uartb2 peri 1 BCM21664_SLAVE_CCU_UARTB2 > - slave uartb3 peri 2 BCM21664_SLAVE_CCU_UARTB3 > - slave uartb4 peri 3 BCM21664_SLAVE_CCU_UARTB4 > - slave bsc1 peri 4 BCM21664_SLAVE_CCU_BSC1 > - slave bsc2 peri 5 BCM21664_SLAVE_CCU_BSC2 > - slave bsc3 peri 6 BCM21664_SLAVE_CCU_BSC3 > - slave bsc4 peri 7 BCM21664_SLAVE_CCU_BSC4 > diff --git a/Documentation/devicetree/bindings/clock/brcm,kona-ccu.yaml b= /Documentation/devicetree/bindings/clock/brcm,kona-ccu.yaml > new file mode 100644 > index 000000000000..e5656950b3bd > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/brcm,kona-ccu.yaml > @@ -0,0 +1,181 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/clock/brcm,kona-ccu.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Broadcom Kona family clock control units (CCU) > + > +maintainers: > + - Florian Fainelli > + - Ray Jui > + - Scott Branden > + > +description: | > + Broadcom "Kona" style clock control unit (CCU) is a clock provider that > + manages a set of clock signals. > + > + All available clock IDs are defined in > + - include/dt-bindings/clock/bcm281xx.h for BCM281XX family > + - include/dt-bindings/clock/bcm21664.h for BCM21664 family > + > +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 > + > +required: > + - compatible > + - reg > + - '#clock-cells' > + - clock-output-names > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: brcm,bcm11351-aon-ccu > + then: > + properties: > + clock-output-names: > + items: > + - const: hub_timer > + - const: pmu_bsc > + - const: pmu_bsc_var > + - if: > + properties: > + compatible: > + contains: > + const: brcm,bcm11351-hub-ccu > + then: > + properties: > + clock-output-names: > + const: tmon_1m > + - if: > + properties: > + compatible: > + contains: > + const: brcm,bcm11351-master-ccu > + then: > + properties: > + clock-output-names: > + items: > + - const: sdio1 > + - const: sdio2 > + - const: sdio3 > + - const: sdio4 > + - const: usb_ic > + - const: hsic2_48m > + - const: hsic2_12m > + - if: > + properties: > + compatible: > + contains: > + enum: > + - brcm,bcm11351-root-ccu > + - brcm,bcm21664-root-ccu > + then: > + properties: > + clock-output-names: > + const: frac_1m > + - if: > + properties: > + compatible: > + contains: > + const: brcm,bcm11351-slave-ccu > + then: > + properties: > + clock-output-names: > + items: > + - const: uartb > + - const: uartb2 > + - const: uartb3 > + - const: uartb4 > + - const: ssp0 > + - const: ssp2 > + - const: bsc1 > + - const: bsc2 > + - const: bsc3 > + - const: pwm > + - if: > + properties: > + compatible: > + contains: > + const: brcm,bcm21664-aon-ccu > + then: > + properties: > + clock-output-names: > + const: hub_timer > + - if: > + properties: > + compatible: > + contains: > + const: brcm,bcm21664-master-ccu > + then: > + properties: > + clock-output-names: > + items: > + - const: sdio1 > + - const: sdio2 > + - const: sdio3 > + - const: sdio4 > + - const: sdio1_sleep > + - const: sdio2_sleep > + - const: sdio3_sleep > + - const: sdio4_sleep > + - if: > + properties: > + compatible: > + contains: > + const: brcm,bcm21664-slave-ccu > + then: > + properties: > + clock-output-names: > + items: > + - const: uartb > + - const: uartb2 > + - const: uartb3 > + - const: bsc1 > + - const: bsc2 > + - const: bsc3 > + - const: bsc4 > + > +additionalProperties: false > + > +examples: > + - | > + clock-controller@3e011000 { > + compatible =3D "brcm,bcm11351-slave-ccu"; > + reg =3D <0x3e011000 0x0f00>; > + #clock-cells =3D <1>; > + clock-output-names =3D "uartb", > + "uartb2", > + "uartb3", > + "uartb4", > + "ssp0", > + "ssp2", > + "bsc1", > + "bsc2", > + "bsc3", > + "pwm"; > + }; > +... > --=20 > 2.34.1 >=20 --PpgCk1CqQ30xHt9p Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZTvNlAAKCRB4tDGHoIJi 0jYIAQCUJq9VPOfJ8GqCoKw0wOrV4eSRvP1LpFvKlJLMdmkJtQD+P8riU4F8BNVM Qjf3aEc3xvojkrRD4IP7/6xEFYnhcAE= =TpuJ -----END PGP SIGNATURE----- --PpgCk1CqQ30xHt9p--