2023-02-09 13:41:48

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 0/6] dt-bindings: second batch of dt-schema conversions for Amlogic Meson bindings

Batch conversion of the following bindings:
- rtc-meson-vrtc.txt
- amlogic,gxbb-clkc.txt
- amlogic,gxbb-aoclkc.txt
- clk-measure.txt

And in addition document the System Control registers top node.

DT fixups will be posted once those conversion are fully reviewed.

With this serie, the in-review and applied bindings documentation, the
the following arm64 compatible are yet to be documented in dt-schema:
['amlogic,axg-audio-clkc']
['amlogic,g12a-audio-clkc']
['amlogic,sm1-audio-clkc']
['amlogic,g12a-tohdmitx']
['amlogic,sm1-tohdmitx', 'amlogic,g12a-tohdmitx']
['everest,es7154']
['everest,es7241']
['ti,tas5707']
['linux,spdif-dir']
['gpio-fan']
['pwm-fan']

For reference, the following bindings conversion patches are taken in account on top
of next-20230208 tag :
- https://lore.kernel.org/r/[email protected]
- https://lore.kernel.org/r/[email protected]
- https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-7-e28dd31e3bed@linaro.org
- https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-5-e28dd31e3bed@linaro.org
- https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-4-e28dd31e3bed@linaro.org
- https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-3-e28dd31e3bed@linaro.org
- https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-2-e28dd31e3bed@linaro.org
- https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-1-e28dd31e3bed@linaro.org
- https://lore.kernel.org/r/[email protected]
- https://lore.kernel.org/r/[email protected]

Signed-off-by: Neil Armstrong <[email protected]>
---
Neil Armstrong (6):
dt-bindings: rtc: convert rtc-meson-vrtc.txt to dt-schema
dt-bindings: soc: amlogic: convert clk-measure.txt to dt-schema
dt-bindings: soc: amlogic: document System Control registers
dt-bindings: soc: amlogic: convert amlogic,gxbb-clkc.txt to dt-schema
dt-bindings: soc: amlogic: convert amlogic,gxbb-aoclkc.txt to dt-schema
dt-bindings: soc: amlogic: update sysctrl clock-controller subnode type

.../bindings/clock/amlogic,gxbb-aoclkc.txt | 64 -----------
.../bindings/clock/amlogic,gxbb-aoclkc.yaml | 120 ++++++++++++++++++++
.../bindings/clock/amlogic,gxbb-clkc.txt | 53 ---------
.../bindings/clock/amlogic,gxbb-clkc.yaml | 51 +++++++++
.../bindings/rtc/amlogic,meson-vrtc.yaml | 42 +++++++
.../devicetree/bindings/rtc/rtc-meson-vrtc.txt | 22 ----
.../soc/amlogic/amlogic,meson-gx-clk-measure.yaml | 40 +++++++
.../soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml | 122 +++++++++++++++++++++
.../bindings/soc/amlogic/clk-measure.txt | 21 ----
9 files changed, 375 insertions(+), 160 deletions(-)
---
base-commit: 5b1c3cf237da1dec2945694a6b7e5a0b66272d53
change-id: 20230209-b4-amlogic-bindings-convert-take2-e2caf8e1c13f

Best regards,
--
Neil Armstrong <[email protected]>



2023-02-09 13:41:50

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 1/6] dt-bindings: rtc: convert rtc-meson-vrtc.txt to dt-schema

Convert the Amlogic Virtual RTC bindings to dt-schema.

Signed-off-by: Neil Armstrong <[email protected]>
---
.../bindings/rtc/amlogic,meson-vrtc.yaml | 42 ++++++++++++++++++++++
.../devicetree/bindings/rtc/rtc-meson-vrtc.txt | 22 ------------
2 files changed, 42 insertions(+), 22 deletions(-)

diff --git a/Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yaml b/Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yaml
new file mode 100644
index 000000000000..1d5694c08965
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yaml
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/amlogic,meson-vrtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic Virtual RTC (VRTC)
+
+maintainers:
+ - Neil Armstrong <[email protected]>
+
+description:
+ The interface is 1 register where an alarm time (in seconds) is to be written.
+
+ The alarm register is a simple scratch register shared between the
+ application processors (AP) and the secure co-processor (SCP).
+ When the AP suspends, the SCP will use the value of this register to
+ program an always-on timer before going sleep. When the timer expires,
+ the SCP will wake up and will then wake the AP.
+
+allOf:
+ - $ref: rtc.yaml#
+
+properties:
+ compatible:
+ const: amlogic,meson-vrtc
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ vrtc: rtc@a8 {
+ compatible = "amlogic,meson-vrtc";
+ reg = <0x000a8 0x4>;
+ };
diff --git a/Documentation/devicetree/bindings/rtc/rtc-meson-vrtc.txt b/Documentation/devicetree/bindings/rtc/rtc-meson-vrtc.txt
deleted file mode 100644
index c014f54a9853..000000000000
--- a/Documentation/devicetree/bindings/rtc/rtc-meson-vrtc.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-* Amlogic Virtual RTC (VRTC)
-
-This is a Linux interface to an RTC managed by firmware, hence it's
-virtual from a Linux perspective. The interface is 1 register where
-an alarm time (in seconds) is to be written.
-
-Required properties:
-- compatible: should be "amlogic,meson-vrtc"
-- reg: physical address for the alarm register
-
-The alarm register is a simple scratch register shared between the
-application processors (AP) and the secure co-processor (SCP.) When
-the AP suspends, the SCP will use the value of this register to
-program an always-on timer before going sleep. When the timer expires,
-the SCP will wake up and will then wake the AP.
-
-Example:
-
- vrtc: rtc@0a8 {
- compatible = "amlogic,meson-vrtc";
- reg = <0x0 0x000a8 0x0 0x4>;
- };

--
2.34.1


2023-02-09 13:41:55

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 2/6] dt-bindings: soc: amlogic: convert clk-measure.txt to dt-schema

Convert the Amlogic Internal Clock Measurer bindings to dt-schema.

Signed-off-by: Neil Armstrong <[email protected]>
---
.../soc/amlogic/amlogic,meson-gx-clk-measure.yaml | 40 ++++++++++++++++++++++
.../bindings/soc/amlogic/clk-measure.txt | 21 ------------
2 files changed, 40 insertions(+), 21 deletions(-)

diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
new file mode 100644
index 000000000000..77c281153010
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/amlogic/amlogic,meson-gx-clk-measure.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic Internal Clock Measurer
+
+description:
+ The Amlogic SoCs contains an IP to measure the internal clocks.
+ The precision is multiple of MHz, useful to debug the clock states.
+
+maintainers:
+ - Neil Armstrong <[email protected]>
+
+properties:
+ compatible:
+ enum:
+ - amlogic,meson-gx-clk-measure
+ - amlogic,meson8-clk-measure
+ - amlogic,meson8b-clk-measure
+ - amlogic,meson-axg-clk-measure
+ - amlogic,meson-g12a-clk-measure
+ - amlogic,meson-sm1-clk-measure
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ clock-measure@8758 {
+ compatible = "amlogic,meson-gx-clk-measure";
+ reg = <0x8758 0x10>;
+ };
diff --git a/Documentation/devicetree/bindings/soc/amlogic/clk-measure.txt b/Documentation/devicetree/bindings/soc/amlogic/clk-measure.txt
deleted file mode 100644
index 3dd563cec794..000000000000
--- a/Documentation/devicetree/bindings/soc/amlogic/clk-measure.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Amlogic Internal Clock Measurer
-===============================
-
-The Amlogic SoCs contains an IP to measure the internal clocks.
-The precision is multiple of MHz, useful to debug the clock states.
-
-Required properties:
-- compatible: Shall contain one of the following :
- "amlogic,meson-gx-clk-measure" for GX SoCs
- "amlogic,meson8-clk-measure" for Meson8 SoCs
- "amlogic,meson8b-clk-measure" for Meson8b SoCs
- "amlogic,meson-axg-clk-measure" for AXG SoCs
- "amlogic,meson-g12a-clk-measure" for G12a SoCs
- "amlogic,meson-sm1-clk-measure" for SM1 SoCs
-- reg: base address and size of the Clock Measurer register space.
-
-Example:
- clock-measure@8758 {
- compatible = "amlogic,meson-gx-clk-measure";
- reg = <0x0 0x8758 0x0 0x10>;
- };

--
2.34.1


2023-02-09 13:42:04

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 4/6] dt-bindings: soc: amlogic: convert amlogic,gxbb-clkc.txt to dt-schema

Convert the Amlogic Clock Controller bindings to dt-schema.

Signed-off-by: Neil Armstrong <[email protected]>
---
.../bindings/clock/amlogic,gxbb-clkc.txt | 53 ----------------------
.../bindings/clock/amlogic,gxbb-clkc.yaml | 51 +++++++++++++++++++++
2 files changed, 51 insertions(+), 53 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.txt b/Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.txt
deleted file mode 100644
index 7ccecd5c02c1..000000000000
--- a/Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-* Amlogic GXBB Clock and Reset Unit
-
-The Amlogic GXBB clock controller generates and supplies clock to various
-controllers within the SoC.
-
-Required Properties:
-
-- compatible: should be:
- "amlogic,gxbb-clkc" for GXBB SoC,
- "amlogic,gxl-clkc" for GXL and GXM SoC,
- "amlogic,axg-clkc" for AXG SoC.
- "amlogic,g12a-clkc" for G12A SoC.
- "amlogic,g12b-clkc" for G12B SoC.
- "amlogic,sm1-clkc" for SM1 SoC.
-- clocks : list of clock phandle, one for each entry clock-names.
-- clock-names : should contain the following:
- * "xtal": the platform xtal
-
-- #clock-cells: should be 1.
-
-Each clock is assigned an identifier and client nodes can use this identifier
-to specify the clock which they consume. All available clocks are defined as
-preprocessor macros in the dt-bindings/clock/gxbb-clkc.h header and can be
-used in device tree sources.
-
-Parent node should have the following properties :
-- compatible: "syscon", "simple-mfd, and "amlogic,meson-gx-hhi-sysctrl" or
- "amlogic,meson-axg-hhi-sysctrl"
-- reg: base address and size of the HHI system control register space.
-
-Example: Clock controller node:
-
-sysctrl: system-controller@0 {
- compatible = "amlogic,meson-gx-hhi-sysctrl", "syscon", "simple-mfd";
- reg = <0 0 0 0x400>;
-
- clkc: clock-controller {
- #clock-cells = <1>;
- compatible = "amlogic,gxbb-clkc";
- clocks = <&xtal>;
- clock-names = "xtal";
- };
-};
-
-Example: UART controller node that consumes the clock generated by the clock
- controller:
-
- uart_AO: serial@c81004c0 {
- compatible = "amlogic,meson-uart";
- reg = <0xc81004c0 0x14>;
- interrupts = <0 90 1>;
- clocks = <&clkc CLKID_CLK81>;
- };
diff --git a/Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.yaml b/Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.yaml
new file mode 100644
index 000000000000..412453fc75e4
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/amlogic,gxbb-clkc.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,gxbb-clkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic Clock Controller
+
+maintainers:
+ - Neil Armstrong <[email protected]>
+
+properties:
+ compatible:
+ enum:
+ - amlogic,gxbb-clkc
+ - amlogic,gxl-clkc
+ - amlogic,axg-clkc
+ - amlogic,g12a-clkc
+ - amlogic,g12b-clkc
+ - amlogic,sm1-clkc
+
+ clocks:
+ maxItems: 1
+
+ clock-names:
+ const: xtal
+
+ '#clock-cells':
+ const: 1
+
+required:
+ - compatible
+ - clocks
+ - clock-names
+ - '#clock-cells'
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ sysctrl: system-controller@0 {
+ compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
+ reg = <0 0x400>;
+
+ clkc: clock-controller {
+ compatible = "amlogic,gxbb-clkc";
+ #clock-cells = <1>;
+ clocks = <&xtal>;
+ clock-names = "xtal";
+ };
+ };

--
2.34.1


2023-02-09 13:42:09

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 3/6] dt-bindings: soc: amlogic: document System Control registers

Document the System Control registers regions found on all Amlogic
SoC families and it's clock, power, pinctrl and phy subnodes.

The regions has various independent registers tied to other
hardware devices, thus the syscon compatible.

Clock controllers and Pinctrl devices are not yet documented, the
definition of those will be updated in a second time.

Signed-off-by: Neil Armstrong <[email protected]>
---
.../soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml | 109 +++++++++++++++++++++
1 file changed, 109 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
new file mode 100644
index 000000000000..672eabd90c09
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
@@ -0,0 +1,109 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic Meson System Control registers
+
+maintainers:
+ - Neil Armstrong <[email protected]>
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - amlogic,meson-gx-hhi-sysctrl
+ - amlogic,meson-gx-ao-sysctrl
+ - amlogic,meson-axg-hhi-sysctrl
+ - amlogic,meson-axg-ao-sysctrl
+ - const: simple-mfd
+ - const: syscon
+
+ reg:
+ maxItems: 1
+
+ clock-controller:
+ type: object
+
+ power-controller:
+ $ref: /schemas/power/amlogic,meson-ee-pwrc.yaml
+
+ pinctrl:
+ type: object
+
+ phy:
+ type: object
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ enum:
+ - amlogic,meson-gx-hhi-sysctrl
+ - amlogic,meson-axg-hhi-sysctrl
+ then:
+ required:
+ - power-controller
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - amlogic,meson-gx-ao-sysctrl
+ - amlogic,meson-axg-ao-sysctrl
+ then:
+ required:
+ - pinctrl
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - amlogic,meson-axg-hhi-sysctrl
+ then:
+ properties:
+ phy:
+ oneOf:
+ - $ref: /schemas/phy/amlogic,g12a-mipi-dphy-analog.yaml
+ - $ref: /schemas/phy/amlogic,meson-axg-mipi-pcie-analog.yaml
+
+required:
+ - compatible
+ - reg
+ - clock-controller
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ sysctrl: system-controller@0 {
+ compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
+ reg = <0 0x400>;
+
+ clock-controller { };
+
+ power-controller {
+ compatible = "amlogic,meson-gxbb-pwrc";
+ #power-domain-cells = <1>;
+ amlogic,ao-sysctrl = <&sysctrl_AO>;
+
+ resets = <&reset_viu>,
+ <&reset_venc>,
+ <&reset_vcbus>,
+ <&reset_bt656>,
+ <&reset_dvin>,
+ <&reset_rdma>,
+ <&reset_venci>,
+ <&reset_vencp>,
+ <&reset_vdac>,
+ <&reset_vdi6>,
+ <&reset_vencl>,
+ <&reset_vid_lock>;
+ reset-names = "viu", "venc", "vcbus", "bt656", "dvin",
+ "rdma", "venci", "vencp", "vdac", "vdi6",
+ "vencl", "vid_lock";
+ clocks = <&clk_vpu>, <&clk_vapb>;
+ clock-names = "vpu", "vapb";
+ };
+ };

--
2.34.1


2023-02-09 13:42:14

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 5/6] dt-bindings: soc: amlogic: convert amlogic,gxbb-aoclkc.txt to dt-schema

Convert the Amlogic Always-On Clock Controller bindings to dt-schema.

Signed-off-by: Neil Armstrong <[email protected]>
---
.../bindings/clock/amlogic,gxbb-aoclkc.txt | 64 -----------
.../bindings/clock/amlogic,gxbb-aoclkc.yaml | 120 +++++++++++++++++++++
2 files changed, 120 insertions(+), 64 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt b/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt
deleted file mode 100644
index c41f0be5d438..000000000000
--- a/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-* Amlogic GXBB AO Clock and Reset Unit
-
-The Amlogic GXBB AO clock controller generates and supplies clock to various
-controllers within the Always-On part of the SoC.
-
-Required Properties:
-
-- compatible: value should be different for each SoC family as :
- - GXBB (S905) : "amlogic,meson-gxbb-aoclkc"
- - GXL (S905X, S905D) : "amlogic,meson-gxl-aoclkc"
- - GXM (S912) : "amlogic,meson-gxm-aoclkc"
- - AXG (A113D, A113X) : "amlogic,meson-axg-aoclkc"
- - G12A (S905X2, S905D2, S905Y2) : "amlogic,meson-g12a-aoclkc"
- followed by the common "amlogic,meson-gx-aoclkc"
-- clocks: list of clock phandle, one for each entry clock-names.
-- clock-names: should contain the following:
- * "xtal" : the platform xtal
- * "mpeg-clk" : the main clock controller mother clock (aka clk81)
- * "ext-32k-0" : external 32kHz reference #0 if any (optional)
- * "ext-32k-1" : external 32kHz reference #1 if any (optional - gx only)
- * "ext-32k-2" : external 32kHz reference #2 if any (optional - gx only)
-
-- #clock-cells: should be 1.
-
-Each clock is assigned an identifier and client nodes can use this identifier
-to specify the clock which they consume. All available clocks are defined as
-preprocessor macros in the dt-bindings/clock/gxbb-aoclkc.h header and can be
-used in device tree sources.
-
-- #reset-cells: should be 1.
-
-Each reset is assigned an identifier and client nodes can use this identifier
-to specify the reset which they consume. All available resets are defined as
-preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
-used in device tree sources.
-
-Parent node should have the following properties :
-- compatible: "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd"
-- reg: base address and size of the AO system control register space.
-
-Example: AO Clock controller node:
-
-ao_sysctrl: sys-ctrl@0 {
- compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
- reg = <0x0 0x0 0x0 0x100>;
-
- clkc_AO: clock-controller {
- compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
- #clock-cells = <1>;
- #reset-cells = <1>;
- clocks = <&xtal>, <&clkc CLKID_CLK81>;
- clock-names = "xtal", "mpeg-clk";
- };
-
-Example: UART controller node that consumes the clock and reset generated
- by the clock controller:
-
- uart_AO: serial@4c0 {
- compatible = "amlogic,meson-uart";
- reg = <0x4c0 0x14>;
- interrupts = <0 90 1>;
- clocks = <&clkc_AO CLKID_AO_UART1>;
- resets = <&clkc_AO RESET_AO_UART1>;
- };
diff --git a/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.yaml b/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.yaml
new file mode 100644
index 000000000000..3ac432a112ca
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.yaml
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,gxbb-aoclkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic Always-On Clock Controller
+
+maintainers:
+ - Neil Armstrong <[email protected]>
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - enum:
+ - amlogic,meson-gxbb-aoclkc
+ - amlogic,meson-gxl-aoclkc
+ - amlogic,meson-gxm-aoclkc
+ - amlogic,meson-axg-aoclkc
+ - const: amlogic,meson-gx-aoclkc
+ - items:
+ - enum:
+ - amlogic,meson-axg-aoclkc
+ - amlogic,meson-g12a-aoclkc
+
+ clocks:
+ minItems: 2
+
+ clock-names:
+ minItems: 2
+
+ '#clock-cells':
+ const: 1
+
+ '#reset-cells':
+ const: 1
+
+required:
+ - compatible
+ - clocks
+ - clock-names
+ - '#clock-cells'
+ - '#reset-cells'
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ enum:
+ - amlogic,meson-gxbb-clkc
+
+ then:
+ properties:
+ clocks:
+ minItems: 2
+ maxItems: 5
+
+ clock-names:
+ minItems: 2
+ items:
+ - const: xtal
+ - const: mpeg-clk
+ - const: ext-32k-0
+ - const: ext-32k-1
+ - const: ext-32k-2
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - amlogic,meson-g12a-aoclkc
+
+ then:
+ properties:
+ clocks:
+ minItems: 2
+ maxItems: 3
+
+ clock-names:
+ minItems: 2
+ items:
+ - const: xtal
+ - const: mpeg-clk
+ - const: ext-32k-0
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - amlogic,meson-gxl-clkc
+ - amlogic,meson-gxm-clkc
+ - amlogic,meson-axg-clkc
+
+ then:
+ properties:
+ clocks:
+ maxItems: 2
+
+ clock-names:
+ items:
+ - const: xtal
+ - const: mpeg-clk
+
+additionalProperties: false
+
+examples:
+ - |
+ sysctrl: system-controller@0 {
+ compatible = "amlogic,meson-gx-ao-sysctrl", "simple-mfd", "syscon";
+ reg = <0 0x100>;
+
+ clkc: clock-controller {
+ compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ clocks = <&xtal>, <&clk81>;
+ clock-names = "xtal", "mpeg-clk";
+ };
+ };

--
2.34.1


2023-02-09 13:42:16

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 6/6] dt-bindings: soc: amlogic: update sysctrl clock-controller subnode type

Since the clock controllers are now documented define the right ref
for the clock-controller subnodes and fill up the example node.

Signed-off-by: Neil Armstrong <[email protected]>
---
.../soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
index 672eabd90c09..57eae355f1b9 100644
--- a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
+++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
@@ -43,6 +43,10 @@ allOf:
- amlogic,meson-gx-hhi-sysctrl
- amlogic,meson-axg-hhi-sysctrl
then:
+ properties:
+ clock-controller:
+ $ref: /schemas/clock/amlogic,gxbb-clkc.yaml#
+
required:
- power-controller

@@ -53,6 +57,10 @@ allOf:
- amlogic,meson-gx-ao-sysctrl
- amlogic,meson-axg-ao-sysctrl
then:
+ properties:
+ clock-controller:
+ $ref: /schemas/clock/amlogic,gxbb-aoclkc.yaml#
+
required:
- pinctrl

@@ -81,7 +89,12 @@ examples:
compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
reg = <0 0x400>;

- clock-controller { };
+ clock-controller {
+ compatible = "amlogic,gxbb-clkc";
+ #clock-cells = <1>;
+ clocks = <&xtal>;
+ clock-names = "xtal";
+ };

power-controller {
compatible = "amlogic,meson-gxbb-pwrc";

--
2.34.1


2023-02-11 20:10:28

by Martin Blumenstingl

[permalink] [raw]
Subject: Re: [PATCH 1/6] dt-bindings: rtc: convert rtc-meson-vrtc.txt to dt-schema

On Thu, Feb 9, 2023 at 2:41 PM Neil Armstrong <[email protected]> wrote:
>
> Convert the Amlogic Virtual RTC bindings to dt-schema.
>
> Signed-off-by: Neil Armstrong <[email protected]>
Reviewed-by: Martin Blumenstingl <[email protected]>

2023-02-11 20:13:54

by Martin Blumenstingl

[permalink] [raw]
Subject: Re: [PATCH 2/6] dt-bindings: soc: amlogic: convert clk-measure.txt to dt-schema

Hi Neil,

On Thu, Feb 9, 2023 at 2:41 PM Neil Armstrong <[email protected]> wrote:
>
> Convert the Amlogic Internal Clock Measurer bindings to dt-schema.
>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> .../soc/amlogic/amlogic,meson-gx-clk-measure.yaml | 40 ++++++++++++++++++++++
> .../bindings/soc/amlogic/clk-measure.txt | 21 ------------
> 2 files changed, 40 insertions(+), 21 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
> new file mode 100644
> index 000000000000..77c281153010
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
> @@ -0,0 +1,40 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/amlogic/amlogic,meson-gx-clk-measure.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Amlogic Internal Clock Measurer
> +
> +description:
> + The Amlogic SoCs contains an IP to measure the internal clocks.
s/contains/contain/
It's been there in the old bindings as well but it would be great to
have it fixed.

[...]
> +properties:
do we need something like the following?
$nodename:
pattern: "^clock-measurer(@.*|-[0-9a-f])*$"


Best regards,
Martin

2023-02-11 20:25:48

by Martin Blumenstingl

[permalink] [raw]
Subject: Re: [PATCH 3/6] dt-bindings: soc: amlogic: document System Control registers

Hi Neil,

On Thu, Feb 9, 2023 at 2:41 PM Neil Armstrong <[email protected]> wrote:
>
> Document the System Control registers regions found on all Amlogic
> SoC families and it's clock, power, pinctrl and phy subnodes.
I understand clock (main clock controller) power (power domain
controller) and PHY (HDMI and CVBS PHYs). Are you sure about pinctrl?

[...]
> +properties:
> + compatible:
> + items:
> + - enum:
> + - amlogic,meson-gx-hhi-sysctrl
> + - amlogic,meson-gx-ao-sysctrl
> + - amlogic,meson-axg-hhi-sysctrl
> + - amlogic,meson-axg-ao-sysctrl
If you have to re-send this then it would be great if you could add:
- amlogic,meson-hhi-sysctrl
because we already have that in arch/arm/boot/dts/meson.dtsi for the
32-bit SoCs.

[...]
> + power-controller {
> + compatible = "amlogic,meson-gxbb-pwrc";
> + #power-domain-cells = <1>;
> + amlogic,ao-sysctrl = <&sysctrl_AO>;
For this node (and similar ones) I have a question to the device-tree
maintainers:
The power controller has a dedicated sub-range of registers. This also
applies to the CVBS and HDMI PHYs.
But the clock controller does not (it has its registers all over the
place - unfortunately that's how the hardware is).
I have been asked to add a "reg" property to child nodes with a
sub-register space.
Does this mean we need to add a reg property here as well (regardless
of whether we're using it in the driver or not)? And what to do in
case of the clock controller though?


Best regards,
Martin

2023-02-13 10:49:34

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/6] dt-bindings: rtc: convert rtc-meson-vrtc.txt to dt-schema

On 09/02/2023 14:41, Neil Armstrong wrote:
> Convert the Amlogic Virtual RTC bindings to dt-schema.
>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---


Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof


2023-02-13 10:54:30

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 2/6] dt-bindings: soc: amlogic: convert clk-measure.txt to dt-schema

On 09/02/2023 14:41, Neil Armstrong wrote:
> Convert the Amlogic Internal Clock Measurer bindings to dt-schema.
>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---


Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof


2023-02-13 10:59:24

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 3/6] dt-bindings: soc: amlogic: document System Control registers

On 09/02/2023 14:41, Neil Armstrong wrote:
> Document the System Control registers regions found on all Amlogic
> SoC families and it's clock, power, pinctrl and phy subnodes.
>
> The regions has various independent registers tied to other
> hardware devices, thus the syscon compatible.
>
> Clock controllers and Pinctrl devices are not yet documented, the
> definition of those will be updated in a second time.
>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> .../soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml | 109 +++++++++++++++++++++
> 1 file changed, 109 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
> new file mode 100644
> index 000000000000..672eabd90c09
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
> @@ -0,0 +1,109 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Amlogic Meson System Control registers
> +
> +maintainers:
> + - Neil Armstrong <[email protected]>
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - amlogic,meson-gx-hhi-sysctrl
> + - amlogic,meson-gx-ao-sysctrl
> + - amlogic,meson-axg-hhi-sysctrl
> + - amlogic,meson-axg-ao-sysctrl
> + - const: simple-mfd
> + - const: syscon
> +
> + reg:
> + maxItems: 1
> +
> + clock-controller:
> + type: object
> +
> + power-controller:
> + $ref: /schemas/power/amlogic,meson-ee-pwrc.yaml
> +
> + pinctrl:
> + type: object
> +
> + phy:
> + type: object
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + enum:
> + - amlogic,meson-gx-hhi-sysctrl
> + - amlogic,meson-axg-hhi-sysctrl
> + then:
> + required:
> + - power-controller
> +
> + - if:
> + properties:
> + compatible:
> + enum:
> + - amlogic,meson-gx-ao-sysctrl
> + - amlogic,meson-axg-ao-sysctrl
> + then:
> + required:
> + - pinctrl
> +
> + - if:
> + properties:
> + compatible:
> + enum:
> + - amlogic,meson-axg-hhi-sysctrl
> + then:
> + properties:
> + phy:
> + oneOf:
> + - $ref: /schemas/phy/amlogic,g12a-mipi-dphy-analog.yaml
> + - $ref: /schemas/phy/amlogic,meson-axg-mipi-pcie-analog.yaml

And all other variants? This allows phy/power/pinctrl/clock in any
combination, thus maybe the binding should be just split? Hard to say
without full picture.

> +
> +required:
> + - compatible
> + - reg
> + - clock-controller
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + sysctrl: system-controller@0 {
> + compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
> + reg = <0 0x400>;
> +
> + clock-controller { };

The example should be complete, so empty node does not look correct. If
you wait for other bindings, send them as patchset when all are ready.

Best regards,
Krzysztof


2023-02-13 11:00:15

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 6/6] dt-bindings: soc: amlogic: update sysctrl clock-controller subnode type

On 09/02/2023 14:41, Neil Armstrong wrote:
> Since the clock controllers are now documented define the right ref
> for the clock-controller subnodes and fill up the example node.
>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> .../soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
> index 672eabd90c09..57eae355f1b9 100644
> --- a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
> +++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
> @@ -43,6 +43,10 @@ allOf:
> - amlogic,meson-gx-hhi-sysctrl
> - amlogic,meson-axg-hhi-sysctrl
> then:
> + properties:
> + clock-controller:
> + $ref: /schemas/clock/amlogic,gxbb-clkc.yaml#

You just added this binding. I don't understand the split.

> +
> required:
> - power-controller
>
> @@ -53,6 +57,10 @@ allOf:
> - amlogic,meson-gx-ao-sysctrl
> - amlogic,meson-axg-ao-sysctrl
> then:
> + properties:
> + clock-controller:
> + $ref: /schemas/clock/amlogic,gxbb-aoclkc.yaml#
> +
> required:
> - pinctrl
>
> @@ -81,7 +89,12 @@ examples:
> compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
> reg = <0 0x400>;
>
> - clock-controller { };
> + clock-controller {
> + compatible = "amlogic,gxbb-clkc";
> + #clock-cells = <1>;
> + clocks = <&xtal>;
> + clock-names = "xtal";


Best regards,
Krzysztof


2023-02-13 11:02:07

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 4/6] dt-bindings: soc: amlogic: convert amlogic,gxbb-clkc.txt to dt-schema

On 09/02/2023 14:41, Neil Armstrong wrote:
> Convert the Amlogic Clock Controller bindings to dt-schema.

Subject prefix - clock, not soc.

>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> .../bindings/clock/amlogic,gxbb-clkc.txt | 53 ----------------------
> .../bindings/clock/amlogic,gxbb-clkc.yaml | 51 +++++++++++++++++++++
> 2 files changed, 51 insertions(+), 53 deletions(-)


> + clocks:
> + maxItems: 1
> +
> + clock-names:
> + const: xtal
> +
> + '#clock-cells':
> + const: 1
> +
> +required:
> + - compatible
> + - clocks
> + - clock-names
> + - '#clock-cells'
> +
> +unevaluatedProperties: false

additionalProperties: false

> +
> +examples:
> + - |
> + sysctrl: system-controller@0 {
> + compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
> + reg = <0 0x400>;

Drop the parent node, not needed here. You could even skip the example
entirely as it is part of your syscon. If you keep example, then without
parent pieces.

> +
> + clkc: clock-controller {
> + compatible = "amlogic,gxbb-clkc";
> + #clock-cells = <1>;
> + clocks = <&xtal>;
> + clock-names = "xtal";
> + };
> + };
>

Best regards,
Krzysztof


2023-02-13 11:03:26

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH 6/6] dt-bindings: soc: amlogic: update sysctrl clock-controller subnode type

Hi,

On 13/02/2023 12:00, Krzysztof Kozlowski wrote:
> On 09/02/2023 14:41, Neil Armstrong wrote:
>> Since the clock controllers are now documented define the right ref
>> for the clock-controller subnodes and fill up the example node.
>>
>> Signed-off-by: Neil Armstrong <[email protected]>
>> ---
>> .../soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml | 15 ++++++++++++++-
>> 1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
>> index 672eabd90c09..57eae355f1b9 100644
>> --- a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
>> +++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
>> @@ -43,6 +43,10 @@ allOf:
>> - amlogic,meson-gx-hhi-sysctrl
>> - amlogic,meson-axg-hhi-sysctrl
>> then:
>> + properties:
>> + clock-controller:
>> + $ref: /schemas/clock/amlogic,gxbb-clkc.yaml#
>
> You just added this binding. I don't understand the split.

It's a chicken and egg problem, the clock controller bindings (patches 4 & 6)
I've added the system-controller top node in the DT example, but this
example won't be valid until I add the system-controller bindings.

To solve this, I add it in 2 steps, but if it's an *real* issue I can remove
the top system-controller nodes in the clock controller bindings and add them
later on and add the sysctrl bindings in one step.

Neil

>
>> +
>> required:
>> - power-controller
>>
>> @@ -53,6 +57,10 @@ allOf:
>> - amlogic,meson-gx-ao-sysctrl
>> - amlogic,meson-axg-ao-sysctrl
>> then:
>> + properties:
>> + clock-controller:
>> + $ref: /schemas/clock/amlogic,gxbb-aoclkc.yaml#
>> +
>> required:
>> - pinctrl
>>
>> @@ -81,7 +89,12 @@ examples:
>> compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
>> reg = <0 0x400>;
>>
>> - clock-controller { };
>> + clock-controller {
>> + compatible = "amlogic,gxbb-clkc";
>> + #clock-cells = <1>;
>> + clocks = <&xtal>;
>> + clock-names = "xtal";
>
>
> Best regards,
> Krzysztof
>


2023-02-13 11:06:18

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 5/6] dt-bindings: soc: amlogic: convert amlogic,gxbb-aoclkc.txt to dt-schema

On 09/02/2023 14:41, Neil Armstrong wrote:
> Convert the Amlogic Always-On Clock Controller bindings to dt-schema.

Subject prefix: clock, not soc

>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> .../bindings/clock/amlogic,gxbb-aoclkc.txt | 64 -----------
> .../bindings/clock/amlogic,gxbb-aoclkc.yaml | 120 +++++++++++++++++++++
> 2 files changed, 120 insertions(+), 64 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt b/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt
> deleted file mode 100644
> index c41f0be5d438..000000000000
> --- a/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.txt
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -* Amlogic GXBB AO Clock and Reset Unit
> -
> -The Amlogic GXBB AO clock controller generates and supplies clock to various
> -controllers within the Always-On part of the SoC.
> -
> -Required Properties:
> -
> -- compatible: value should be different for each SoC family as :
> - - GXBB (S905) : "amlogic,meson-gxbb-aoclkc"
> - - GXL (S905X, S905D) : "amlogic,meson-gxl-aoclkc"
> - - GXM (S912) : "amlogic,meson-gxm-aoclkc"
> - - AXG (A113D, A113X) : "amlogic,meson-axg-aoclkc"
> - - G12A (S905X2, S905D2, S905Y2) : "amlogic,meson-g12a-aoclkc"
> - followed by the common "amlogic,meson-gx-aoclkc"
> -- clocks: list of clock phandle, one for each entry clock-names.
> -- clock-names: should contain the following:
> - * "xtal" : the platform xtal
> - * "mpeg-clk" : the main clock controller mother clock (aka clk81)
> - * "ext-32k-0" : external 32kHz reference #0 if any (optional)
> - * "ext-32k-1" : external 32kHz reference #1 if any (optional - gx only)
> - * "ext-32k-2" : external 32kHz reference #2 if any (optional - gx only)
> -
> -- #clock-cells: should be 1.
> -
> -Each clock is assigned an identifier and client nodes can use this identifier
> -to specify the clock which they consume. All available clocks are defined as
> -preprocessor macros in the dt-bindings/clock/gxbb-aoclkc.h header and can be
> -used in device tree sources.
> -
> -- #reset-cells: should be 1.
> -
> -Each reset is assigned an identifier and client nodes can use this identifier
> -to specify the reset which they consume. All available resets are defined as
> -preprocessor macros in the dt-bindings/reset/gxbb-aoclkc.h header and can be
> -used in device tree sources.
> -
> -Parent node should have the following properties :
> -- compatible: "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd"
> -- reg: base address and size of the AO system control register space.
> -
> -Example: AO Clock controller node:
> -
> -ao_sysctrl: sys-ctrl@0 {
> - compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
> - reg = <0x0 0x0 0x0 0x100>;
> -
> - clkc_AO: clock-controller {
> - compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
> - #clock-cells = <1>;
> - #reset-cells = <1>;
> - clocks = <&xtal>, <&clkc CLKID_CLK81>;
> - clock-names = "xtal", "mpeg-clk";
> - };
> -
> -Example: UART controller node that consumes the clock and reset generated
> - by the clock controller:
> -
> - uart_AO: serial@4c0 {
> - compatible = "amlogic,meson-uart";
> - reg = <0x4c0 0x14>;
> - interrupts = <0 90 1>;
> - clocks = <&clkc_AO CLKID_AO_UART1>;
> - resets = <&clkc_AO RESET_AO_UART1>;
> - };
> diff --git a/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.yaml b/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.yaml
> new file mode 100644
> index 000000000000..3ac432a112ca
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/amlogic,gxbb-aoclkc.yaml
> @@ -0,0 +1,120 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/amlogic,gxbb-aoclkc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Amlogic Always-On Clock Controller
> +
> +maintainers:
> + - Neil Armstrong <[email protected]>
> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - enum:
> + - amlogic,meson-gxbb-aoclkc
> + - amlogic,meson-gxl-aoclkc
> + - amlogic,meson-gxm-aoclkc
> + - amlogic,meson-axg-aoclkc
> + - const: amlogic,meson-gx-aoclkc
> + - items:

Drop this "items"

> + - enum:
> + - amlogic,meson-axg-aoclkc

This does not look correct. Either this is standalone compatible or
followed with a fallback.

> + - amlogic,meson-g12a-aoclkc
> +
> + clocks:
> + minItems: 2

maxItems instead... or you wanted to define constraints? Then you need
min and maxItems.


> +
> + clock-names:
> + minItems: 2

ditto

> +
> + '#clock-cells':
> + const: 1
> +
> + '#reset-cells':
> + const: 1
> +
> +required:
> + - compatible
> + - clocks
> + - clock-names
> + - '#clock-cells'
> + - '#reset-cells'
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + enum:
> + - amlogic,meson-gxbb-clkc

This won't work. Test it... It's not even documented.

> +
> + then:
> + properties:
> + clocks:
> + minItems: 2
> + maxItems: 5
> +
> + clock-names:
> + minItems: 2
> + items:
> + - const: xtal
> + - const: mpeg-clk
> + - const: ext-32k-0
> + - const: ext-32k-1
> + - const: ext-32k-2
> +
> + - if:
> + properties:
> + compatible:
> + enum:
> + - amlogic,meson-g12a-aoclkc
> +
> + then:
> + properties:
> + clocks:
> + minItems: 2
> + maxItems: 3
> +
> + clock-names:
> + minItems: 2
> + items:
> + - const: xtal
> + - const: mpeg-clk
> + - const: ext-32k-0
> +
> + - if:
> + properties:
> + compatible:
> + enum:
> + - amlogic,meson-gxl-clkc

Another set of undocumented compatibles. There is no way this binding is
doing what it is supposed to do.


> + - amlogic,meson-gxm-clkc
> + - amlogic,meson-axg-clkc
> +
> + then:
> + properties:
> + clocks:
> + maxItems: 2
> +
> + clock-names:
> + items:
> + - const: xtal
> + - const: mpeg-clk
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + sysctrl: system-controller@0 {
> + compatible = "amlogic,meson-gx-ao-sysctrl", "simple-mfd", "syscon";
> + reg = <0 0x100>;

Drop parent node.

> +
> + clkc: clock-controller {
> + compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> + clocks = <&xtal>, <&clk81>;
> + clock-names = "xtal", "mpeg-clk";
> + };
> + };
>

Best regards,
Krzysztof


2023-02-13 11:07:00

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 6/6] dt-bindings: soc: amlogic: update sysctrl clock-controller subnode type

On 13/02/2023 12:03, Neil Armstrong wrote:
> Hi,
>
> On 13/02/2023 12:00, Krzysztof Kozlowski wrote:
>> On 09/02/2023 14:41, Neil Armstrong wrote:
>>> Since the clock controllers are now documented define the right ref
>>> for the clock-controller subnodes and fill up the example node.
>>>
>>> Signed-off-by: Neil Armstrong <[email protected]>
>>> ---
>>> .../soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml | 15 ++++++++++++++-
>>> 1 file changed, 14 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
>>> index 672eabd90c09..57eae355f1b9 100644
>>> --- a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
>>> +++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
>>> @@ -43,6 +43,10 @@ allOf:
>>> - amlogic,meson-gx-hhi-sysctrl
>>> - amlogic,meson-axg-hhi-sysctrl
>>> then:
>>> + properties:
>>> + clock-controller:
>>> + $ref: /schemas/clock/amlogic,gxbb-clkc.yaml#
>>
>> You just added this binding. I don't understand the split.
>
> It's a chicken and egg problem, the clock controller bindings (patches 4 & 6)
> I've added the system-controller top node in the DT example, but this
> example won't be valid until I add the system-controller bindings.

Just drop the parent node or even entire example.



Best regards,
Krzysztof


2023-03-06 08:39:36

by Neil Armstrong

[permalink] [raw]
Subject: Re: (subset) [PATCH 0/6] dt-bindings: second batch of dt-schema conversions for Amlogic Meson bindings

Hi,

On Thu, 09 Feb 2023 14:41:36 +0100, Neil Armstrong wrote:
> Batch conversion of the following bindings:
> - rtc-meson-vrtc.txt
> - amlogic,gxbb-clkc.txt
> - amlogic,gxbb-aoclkc.txt
> - clk-measure.txt
>
> And in addition document the System Control registers top node.
>
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.4/drivers)

[2/6] dt-bindings: soc: amlogic: convert clk-measure.txt to dt-schema
https://git.kernel.org/amlogic/c/2227e738b30bf20380a48391a73752c52f5f5c6a

These changes has been applied on the intermediate git tree [1].

The v6.4/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

--
Neil