public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: kanadenadi <kenadicanady@gmail.com>
Cc: mturquette@baylibre.com, sboyd@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, orsonzhai@gmail.com,
	baolin.wang@linux.alibaba.com, zhang.lyra@gmail.com,
	linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/2] dt-bindings: clock: sprd: Add Unisoc SC9832E clock controller
Date: Thu, 12 Mar 2026 08:39:42 -0500	[thread overview]
Message-ID: <20260312133942.GA2886714-robh@kernel.org> (raw)
In-Reply-To: <20260225010920.757793-2-kenadicanady@gmail.com>

On Wed, Feb 25, 2026 at 09:09:19AM +0800, kanadenadi wrote:
> Add device tree bindings for Unisoc SC9832E clock controller. The controller supports multiple clock gates and PLLs.

Wrap your commit messages at 72 char.

> 
> Signed-off-by: kanadenadi <kenadicanady@gmail.com>

Which name is correct? Here or down below?

> ---
> Changes in v3:
>  - Dropped redundant 'description' from 'clocks' property.
>  - Moved globally required properties (reg, clocks, clock-names) to the top-level 'required' block.
>  - Unified quote styles for "#clock-cells".
>  - Consolidated identical if-then validation rules for single-clock variants into a single block to avoid code duplication.
>  - Dropped extra redundant examples, keeping only one representative example.
> 
>  .../bindings/clock/sprd,sc9832e-clk.yaml      | 120 ++++++++++++
>  include/dt-bindings/clock/sprd,sc9832e-clk.h  | 177 ++++++++++++++++++
>  2 files changed, 297 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/sprd,sc9832e-clk.yaml
>  create mode 100644 include/dt-bindings/clock/sprd,sc9832e-clk.h
> 
> diff --git a/Documentation/devicetree/bindings/clock/sprd,sc9832e-clk.yaml b/Documentation/devicetree/bindings/clock/sprd,sc9832e-clk.yaml
> new file mode 100644
> index 000000000..36d6ddc73
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/sprd,sc9832e-clk.yaml
> @@ -0,0 +1,120 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright 2026 Unisoc Inc.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/sprd,sc9832e-clk.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Unisoc SC9832E Clock Controllers
> +
> +maintainers:
> +  - Nadi Ke <kenadicanady@gmail.com>
> +  - Orson Zhai <orsonzhai@gmail.com>
> +  - Baolin Wang <baolin.wang7@gmail.com>
> +  - Chunyan Zhang <zhang.lyra@gmail.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - sprd,sc9832e-glbregs
> +      - sprd,sc9832e-pll
> +      - sprd,sc9832e-mpll
> +      - sprd,sc9832e-dpll
> +      - sprd,sc9832e-rpll
> +      - sprd,sc9832e-apahb-gate
> +      - sprd,sc9832e-aonapb-gate
> +      - sprd,sc9832e-ap-clk
> +      - sprd,sc9832e-aon-clk
> +      - sprd,sc9832e-apapb-gate
> +
> +  "#clock-cells":
> +    const: 1
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    minItems: 1
> +    maxItems: 6
> +
> +  clock-names:
> +    minItems: 1
> +    maxItems: 6
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - "#clock-cells"
> +
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - sprd,sc9832e-glbregs
> +              - sprd,sc9832e-pll
> +              - sprd,sc9832e-mpll
> +              - sprd,sc9832e-dpll
> +              - sprd,sc9832e-rpll
> +              - sprd,sc9832e-apahb-gate
> +              - sprd,sc9832e-aonapb-gate
> +              - sprd,sc9832e-apapb-gate
> +    then:
> +      properties:
> +        clocks:
> +          maxItems: 1
> +        clock-names:
> +          items:
> +            - const: ext-26m
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: sprd,sc9832e-ap-clk
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 2
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: ext-26m
> +            - const: ext-1m
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: sprd,sc9832e-aon-clk
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 6
> +          maxItems: 6
> +        clock-names:
> +          items:
> +            - const: ext-4m3
> +            - const: ext-26m

This one should be first like the others.

> +            - const: ext-32k
> +            - const: ext-6m5
> +            - const: ext-13m
> +            - const: ext-250k
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/sprd,sc9832e-clk.h>
> +
> +    clock-controller@21500000 {
> +        compatible = "sprd,sc9832e-ap-clk";
> +        reg = <0x21500000 0x1000>;
> +        clocks = <&ext_26m>, <&ext_1m>;
> +        clock-names = "ext-26m", "ext-1m";
> +        #clock-cells = <1>;
> +    };
> +...
> diff --git a/include/dt-bindings/clock/sprd,sc9832e-clk.h b/include/dt-bindings/clock/sprd,sc9832e-clk.h
> new file mode 100644
> index 000000000..cd0b9952b
> --- /dev/null
> +++ b/include/dt-bindings/clock/sprd,sc9832e-clk.h
> @@ -0,0 +1,177 @@
> +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
> +/*
> + * Unisoc SC9832E platform clocks
> + *
> + * Copyright (C) 2015 Spreadtrum, Inc.

It's 2026.

> + */
> +
> +#ifndef _DT_BINDINGS_CLK_SC9832E_H_
> +#define _DT_BINDINGS_CLK_SC9832E_H_
> +
> +#define CLK_ISPPLL_GATE		0
> +#define CLK_MPLL_GATE		1
> +#define CLK_DPLL_GATE		2
> +#define CLK_LPLL_GATE		3
> +#define CLK_GPLL_GATE		4
> +
> +#define CLK_TWPLL		0
> +#define CLK_TWPLL_768M		1
> +#define CLK_TWPLL_384M		2
> +#define CLK_TWPLL_192M		3
> +#define CLK_TWPLL_96M		4
> +#define CLK_TWPLL_48M		5
> +#define CLK_TWPLL_24M		6
> +#define CLK_TWPLL_12M		7
> +#define CLK_TWPLL_512M		8
> +#define CLK_TWPLL_256M		9
> +#define CLK_TWPLL_128M		10
> +#define CLK_TWPLL_64M		11
> +#define CLK_TWPLL_307M2		12
> +#define CLK_TWPLL_219M4		13
> +#define CLK_TWPLL_170M6		14
> +#define CLK_TWPLL_153M6		15
> +#define CLK_TWPLL_76M8		16
> +#define CLK_TWPLL_51M2		17
> +#define CLK_TWPLL_38M4		18
> +#define CLK_TWPLL_19M2		19
> +#define CLK_LPLL		20
> +#define CLK_LPLL_409M6		21
> +#define CLK_LPLL_245M76		22
> +#define CLK_GPLL		23
> +#define CLK_ISPPLL		24
> +#define CLK_ISPPLL_468M		25
> +
> +#define CLK_MPLL		0
> +#define CLK_MPLL_50M		1
> +
> +#define CLK_DPLL		0
> +#define CLK_DPLL_40M		1
> +
> +#define CLK_AUDIO_GATE		0
> +#define CLK_RPLL		1
> +#define CLK_RPLL_390M		2
> +#define CLK_RPLL_260M		3
> +#define CLK_RPLL_195M		4
> +#define CLK_RPLL_26M		5
> +
> +#define CLK_DSI_EB		0
> +#define CLK_DISPC_EB		1
> +#define CLK_VSP_EB		2
> +#define CLK_GSP_EB		3
> +#define CLK_OTG_EB		4
> +#define CLK_DMA_PUB_EB		5
> +#define CLK_CE_PUB_EB		6
> +#define CLK_AHB_CKG_EB		7
> +#define CLK_SDIO0_EB		8
> +#define CLK_SDIO1_EB		9
> +#define CLK_NANDC_EB		10
> +#define CLK_EMMC_EB		11
> +#define CLK_SPINLOCK_EB		12
> +#define CLK_CE_EFUSE_EB		13
> +#define CLK_EMMC_32K_EB		14
> +#define CLK_SDIO0_32K_EB	15
> +#define CLK_SDIO1_32K_EB	16
> +
> +#define CLK_ADC_EB		0
> +#define CLK_FM_EB		1
> +#define CLK_TPC_EB		2
> +#define CLK_GPIO_EB		3
> +#define CLK_PWM0_EB		4
> +#define CLK_PWM1_EB		5
> +#define CLK_PWM2_EB		6
> +#define CLK_PWM3_EB		7
> +#define CLK_KPD_EB		8
> +#define CLK_AON_SYST_EB		9
> +#define CLK_AP_SYST_EB		10
> +#define CLK_AON_TMR_EB		11
> +#define CLK_AP_TMR0_EB		12
> +#define CLK_EFUSE_EB		13
> +#define CLK_EIC_EB		14
> +#define CLK_INTC_EB		15
> +#define CLK_ADI_EB		16
> +#define CLK_AUDIF_EB		17
> +#define CLK_AUD_EB		18
> +#define CLK_VBC_EB		19
> +#define CLK_PIN_EB		20
> +#define CLK_IPI_EB		21
> +#define CLK_SPLK_EB		22
> +#define CLK_AP_WDG_EB		23
> +#define CLK_MM_EB		24
> +#define CLK_AON_APB_CKG_EB	25
> +#define CLK_GPU_EB		26
> +#define CLK_CA7_TS0_EB		27
> +#define CLK_CA7_DAP_EB		28
> +
> +#define CLK_AP_APB		0
> +#define CLK_NANDC_ECC		1
> +#define CLK_OTG_REF		2
> +#define CLK_OTG_UTMI		3
> +#define CLK_UART1		4
> +#define CLK_I2C0		5
> +#define CLK_I2C1		6
> +#define CLK_I2C2		7
> +#define CLK_I2C3		8
> +#define CLK_I2C4		9
> +#define CLK_SPI0		10
> +#define CLK_SPI2		11
> +#define CLK_HS_SPI		12
> +#define CLK_IIS0		13
> +#define CLK_CE			14
> +#define CLK_NANDC_2X		15
> +#define CLK_SDIO0_2X		16
> +#define CLK_SDIO1_2X		17
> +#define CLK_EMMC_2X		18
> +#define CLK_VSP			19
> +#define CLK_GSP			20
> +#define CLK_DISPC0		21
> +#define CLK_DISPC0_DPI		22
> +#define CLK_DSI_RXESC		23
> +#define CLK_DSI_LANEBYTE	24
> +
> +#define CLK_AON_APB		0
> +#define CLK_ADI			1
> +#define CLK_AUX0		2
> +#define CLK_AUX1		3
> +#define CLK_PWM0		4
> +#define CLK_PWM1		5
> +#define CLK_PWM2		6
> +#define CLK_PWM3		7
> +#define CLK_THM0		8
> +#define CLK_THM1		9
> +#define CLK_AUDIF		10
> +#define CLK_AUD_IIS_DA0		11
> +#define CLK_AUD_IIS_AD0		12
> +#define CLK_CA53_DAP		13
> +#define CLK_CA53_DMTCK		14
> +#define CLK_CA53_TS		15
> +#define CLK_DJTAG_TCK		16
> +#define CLK_EMC_REF		17
> +#define CLK_CSSYS		18
> +#define CLK_TMR			19
> +#define CLK_DSI_TEST		20
> +#define CLK_SDPHY_APB		21
> +#define CLK_AIO_APB		22
> +#define CLK_DTCK_HW		23
> +#define CLK_AP_MM		24
> +#define CLK_AP_AXI		25
> +#define CLK_NIC_GPU		26
> +#define CLK_MM_ISP		27
> +
> +#define CLK_SIM0_EB		0
> +#define CLK_IIS0_EB		1
> +#define CLK_APB_REG_EB		2
> +#define CLK_SPI0_EB		3
> +#define CLK_SPI2_EB		4
> +#define CLK_I2C0_EB		5
> +#define CLK_I2C1_EB		6
> +#define CLK_I2C2_EB		7
> +#define CLK_I2C3_EB		8
> +#define CLK_I2C4_EB		9
> +#define CLK_UART1_EB		10
> +#define CLK_SIM0_32K_EB		11
> +#define CLK_INTC0_EB		12
> +#define CLK_INTC1_EB		13
> +#define CLK_INTC2_EB		14
> +#define CLK_INTC3_EB		15
> +
> +#endif /* _DT_BINDINGS_CLK_SC9832E_H_ */
> -- 
> 2.34.1
> 

  reply	other threads:[~2026-03-12 13:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-25  1:09 [PATCH v3 0/2] clk: sprd: Add support for Unisoc SC9832E clocks kanadenadi
2026-02-25  1:09 ` [PATCH v3 1/2] dt-bindings: clock: sprd: Add Unisoc SC9832E clock controller kanadenadi
2026-03-12 13:39   ` Rob Herring [this message]
2026-02-25  1:09 ` [PATCH v3 2/2] clk: sprd: Add SC9832E clock driver kanadenadi

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=20260312133942.GA2886714-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kenadicanady@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=orsonzhai@gmail.com \
    --cc=sboyd@kernel.org \
    --cc=zhang.lyra@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox