Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: clk: emev2: Convert to json-schema

Convert the Renesas EMMA Mobile EV2 System Management Unit (SMU) Device
Tree binding documentation to json-schema.

Drop the separate provider examples, as they mostly duplicate the global
example. Drop the consumer example, as it doesn't belong here.
Update the global example to match reality.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/526e1a412145a0fcc5a43dcf6de5c580301017cb.1620119350.git.geert+renesas@glider.be
Signed-off-by: Rob Herring <robh@kernel.org>

authored by

Geert Uytterhoeven and committed by
Rob Herring
aef65474 4d92239b

+140 -98
-98
Documentation/devicetree/bindings/clock/renesas,emev2-smu.txt
··· 1 - Device tree Clock bindings for Renesas EMMA Mobile EV2 2 - 3 - This binding uses the common clock binding. 4 - 5 - * SMU 6 - System Management Unit described in user's manual R19UH0037EJ1000_SMU. 7 - This is not a clock provider, but clocks under SMU depend on it. 8 - 9 - Required properties: 10 - - compatible: Should be "renesas,emev2-smu" 11 - - reg: Address and Size of SMU registers 12 - 13 - * SMU_CLKDIV 14 - Function block with an input mux and a divider, which corresponds to 15 - "Serial clock generator" in fig."Clock System Overview" of the manual, 16 - and "xxx frequency division setting register" (XXXCLKDIV) registers. 17 - This makes internal (neither input nor output) clock that is provided 18 - to input of xxxGCLK block. 19 - 20 - Required properties: 21 - - compatible: Should be "renesas,emev2-smu-clkdiv" 22 - - reg: Byte offset from SMU base and Bit position in the register 23 - - clocks: Parent clocks. Input clocks as described in clock-bindings.txt 24 - - #clock-cells: Should be <0> 25 - 26 - * SMU_GCLK 27 - Clock gating node shown as "Clock stop processing block" in the 28 - fig."Clock System Overview" of the manual. 29 - Registers are "xxx clock gate control register" (XXXGCLKCTRL). 30 - 31 - Required properties: 32 - - compatible: Should be "renesas,emev2-smu-gclk" 33 - - reg: Byte offset from SMU base and Bit position in the register 34 - - clocks: Input clock as described in clock-bindings.txt 35 - - #clock-cells: Should be <0> 36 - 37 - Example of provider: 38 - 39 - usia_u0_sclkdiv: usia_u0_sclkdiv { 40 - compatible = "renesas,emev2-smu-clkdiv"; 41 - reg = <0x610 0>; 42 - clocks = <&pll3_fo>, <&pll4_fo>, <&pll1_fo>, <&osc1_fo>; 43 - #clock-cells = <0>; 44 - }; 45 - 46 - usia_u0_sclk: usia_u0_sclk { 47 - compatible = "renesas,emev2-smu-gclk"; 48 - reg = <0x4a0 1>; 49 - clocks = <&usia_u0_sclkdiv>; 50 - #clock-cells = <0>; 51 - }; 52 - 53 - Example of consumer: 54 - 55 - serial@e1020000 { 56 - compatible = "renesas,em-uart"; 57 - reg = <0xe1020000 0x38>; 58 - interrupts = <0 8 0>; 59 - clocks = <&usia_u0_sclk>; 60 - clock-names = "sclk"; 61 - }; 62 - 63 - Example of clock-tree description: 64 - 65 - This describes a clock path in the clock tree 66 - c32ki -> pll3_fo -> usia_u0_sclkdiv -> usia_u0_sclk 67 - 68 - smu@e0110000 { 69 - compatible = "renesas,emev2-smu"; 70 - reg = <0xe0110000 0x10000>; 71 - #address-cells = <2>; 72 - #size-cells = <0>; 73 - 74 - c32ki: c32ki { 75 - compatible = "fixed-clock"; 76 - clock-frequency = <32768>; 77 - #clock-cells = <0>; 78 - }; 79 - pll3_fo: pll3_fo { 80 - compatible = "fixed-factor-clock"; 81 - clocks = <&c32ki>; 82 - clock-div = <1>; 83 - clock-mult = <7000>; 84 - #clock-cells = <0>; 85 - }; 86 - usia_u0_sclkdiv: usia_u0_sclkdiv { 87 - compatible = "renesas,emev2-smu-clkdiv"; 88 - reg = <0x610 0>; 89 - clocks = <&pll3_fo>; 90 - #clock-cells = <0>; 91 - }; 92 - usia_u0_sclk: usia_u0_sclk { 93 - compatible = "renesas,emev2-smu-gclk"; 94 - reg = <0x4a0 1>; 95 - clocks = <&usia_u0_sclkdiv>; 96 - #clock-cells = <0>; 97 - }; 98 - };
+140
Documentation/devicetree/bindings/clock/renesas,emev2-smu.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/renesas,emev2-smu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas EMMA Mobile EV2 System Management Unit 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + - Magnus Damm <magnus.damm@gmail.com> 12 + 13 + description: | 14 + The System Management Unit is described in user's manual R19UH0037EJ1000_SMU. 15 + This is not a clock provider, but clocks under SMU depend on it. 16 + 17 + properties: 18 + compatible: 19 + const: renesas,emev2-smu 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + '#address-cells': 25 + const: 2 26 + 27 + '#size-cells': 28 + const: 0 29 + 30 + required: 31 + - compatible 32 + - reg 33 + - '#address-cells' 34 + - '#size-cells' 35 + 36 + patternProperties: 37 + ".*sclkdiv@.*": 38 + type: object 39 + 40 + description: | 41 + Function block with an input mux and a divider, which corresponds to 42 + "Serial clock generator" in fig. "Clock System Overview" of the manual, 43 + and "xxx frequency division setting register" (XXXCLKDIV) registers. 44 + This makes internal (neither input nor output) clock that is provided 45 + to input of xxxGCLK block. 46 + 47 + properties: 48 + compatible: 49 + const: renesas,emev2-smu-clkdiv 50 + 51 + reg: 52 + maxItems: 1 53 + description: 54 + Byte offset from SMU base and Bit position in the register. 55 + 56 + clocks: 57 + minItems: 1 58 + maxItems: 4 59 + 60 + '#clock-cells': 61 + const: 0 62 + 63 + required: 64 + - compatible 65 + - reg 66 + - clocks 67 + - '#clock-cells' 68 + 69 + additionalProperties: false 70 + 71 + ".*sclk@.*": 72 + type: object 73 + 74 + description: | 75 + Clock gating node shown as "Clock stop processing block" in the 76 + fig. "Clock System Overview" of the manual. 77 + Registers are "xxx clock gate control register" (XXXGCLKCTRL). 78 + 79 + properties: 80 + compatible: 81 + const: renesas,emev2-smu-gclk 82 + 83 + reg: 84 + maxItems: 1 85 + description: 86 + Byte offset from SMU base and Bit position in the register. 87 + 88 + clocks: 89 + maxItems: 1 90 + 91 + '#clock-cells': 92 + const: 0 93 + 94 + required: 95 + - compatible 96 + - reg 97 + - clocks 98 + - '#clock-cells' 99 + 100 + additionalProperties: false 101 + 102 + additionalProperties: true 103 + 104 + examples: 105 + - | 106 + // Example of clock-tree description: 107 + // 108 + // This describes a clock path in the clock tree 109 + // c32ki -> pll3_fo -> usia_u0_sclkdiv -> usia_u0_sclk 110 + clocks@e0110000 { 111 + compatible = "renesas,emev2-smu"; 112 + reg = <0xe0110000 0x10000>; 113 + #address-cells = <2>; 114 + #size-cells = <0>; 115 + 116 + c32ki: c32ki { 117 + compatible = "fixed-clock"; 118 + clock-frequency = <32768>; 119 + #clock-cells = <0>; 120 + }; 121 + pll3_fo: pll3_fo { 122 + compatible = "fixed-factor-clock"; 123 + clocks = <&c32ki>; 124 + clock-div = <1>; 125 + clock-mult = <7000>; 126 + #clock-cells = <0>; 127 + }; 128 + usia_u0_sclkdiv: usia_u0_sclkdiv@610,0 { 129 + compatible = "renesas,emev2-smu-clkdiv"; 130 + reg = <0x610 0>; 131 + clocks = <&pll3_fo>; 132 + #clock-cells = <0>; 133 + }; 134 + usia_u0_sclk: usia_u0_sclk@4a0,1 { 135 + compatible = "renesas,emev2-smu-gclk"; 136 + reg = <0x4a0 1>; 137 + clocks = <&usia_u0_sclkdiv>; 138 + #clock-cells = <0>; 139 + }; 140 + };