1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/allwinner,sun6i-a31-prcm.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7*7ef62cebSEmmanuel Vadottitle: Allwinner A31 PRCM 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Chen-Yu Tsai <wens@csie.org> 11c66ec88fSEmmanuel Vadot - Maxime Ripard <mripard@kernel.org> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadotdeprecated: true 14c66ec88fSEmmanuel Vadot 15c66ec88fSEmmanuel Vadotproperties: 16c66ec88fSEmmanuel Vadot compatible: 17c66ec88fSEmmanuel Vadot const: allwinner,sun6i-a31-prcm 18c66ec88fSEmmanuel Vadot 19c66ec88fSEmmanuel Vadot reg: 20c66ec88fSEmmanuel Vadot maxItems: 1 21c66ec88fSEmmanuel Vadot 22c66ec88fSEmmanuel VadotpatternProperties: 23c66ec88fSEmmanuel Vadot "^.*_(clk|rst)$": 24c66ec88fSEmmanuel Vadot type: object 25*7ef62cebSEmmanuel Vadot unevaluatedProperties: false 26c66ec88fSEmmanuel Vadot 27c66ec88fSEmmanuel Vadot properties: 28c66ec88fSEmmanuel Vadot compatible: 29c66ec88fSEmmanuel Vadot enum: 30c66ec88fSEmmanuel Vadot - allwinner,sun4i-a10-mod0-clk 31c66ec88fSEmmanuel Vadot - allwinner,sun6i-a31-apb0-clk 32c66ec88fSEmmanuel Vadot - allwinner,sun6i-a31-apb0-gates-clk 33c66ec88fSEmmanuel Vadot - allwinner,sun6i-a31-ar100-clk 34c66ec88fSEmmanuel Vadot - allwinner,sun6i-a31-clock-reset 35c66ec88fSEmmanuel Vadot - fixed-factor-clock 36c66ec88fSEmmanuel Vadot 37c66ec88fSEmmanuel Vadot allOf: 38c66ec88fSEmmanuel Vadot - if: 39c66ec88fSEmmanuel Vadot properties: 40c66ec88fSEmmanuel Vadot compatible: 41c66ec88fSEmmanuel Vadot contains: 42*7ef62cebSEmmanuel Vadot const: fixed-factor-clock 43*7ef62cebSEmmanuel Vadot 44*7ef62cebSEmmanuel Vadot then: 45*7ef62cebSEmmanuel Vadot $ref: /schemas/clock/fixed-factor-clock.yaml# 46*7ef62cebSEmmanuel Vadot 47*7ef62cebSEmmanuel Vadot - if: 48*7ef62cebSEmmanuel Vadot properties: 49*7ef62cebSEmmanuel Vadot compatible: 50*7ef62cebSEmmanuel Vadot contains: 51*7ef62cebSEmmanuel Vadot const: allwinner,sun4i-a10-mod0-clk 52*7ef62cebSEmmanuel Vadot 53*7ef62cebSEmmanuel Vadot then: 54*7ef62cebSEmmanuel Vadot properties: 55*7ef62cebSEmmanuel Vadot "#clock-cells": 56*7ef62cebSEmmanuel Vadot const: 0 57*7ef62cebSEmmanuel Vadot 58*7ef62cebSEmmanuel Vadot # Already checked in the main schema 59*7ef62cebSEmmanuel Vadot compatible: true 60*7ef62cebSEmmanuel Vadot 61*7ef62cebSEmmanuel Vadot clocks: 62*7ef62cebSEmmanuel Vadot maxItems: 2 63*7ef62cebSEmmanuel Vadot 64*7ef62cebSEmmanuel Vadot clock-output-names: 65*7ef62cebSEmmanuel Vadot maxItems: 1 66*7ef62cebSEmmanuel Vadot 67*7ef62cebSEmmanuel Vadot phandle: true 68*7ef62cebSEmmanuel Vadot 69*7ef62cebSEmmanuel Vadot required: 70*7ef62cebSEmmanuel Vadot - "#clock-cells" 71*7ef62cebSEmmanuel Vadot - compatible 72*7ef62cebSEmmanuel Vadot - clocks 73*7ef62cebSEmmanuel Vadot - clock-output-names 74*7ef62cebSEmmanuel Vadot 75*7ef62cebSEmmanuel Vadot additionalProperties: false 76*7ef62cebSEmmanuel Vadot 77*7ef62cebSEmmanuel Vadot - if: 78*7ef62cebSEmmanuel Vadot properties: 79*7ef62cebSEmmanuel Vadot compatible: 80*7ef62cebSEmmanuel Vadot contains: 81c66ec88fSEmmanuel Vadot const: allwinner,sun6i-a31-apb0-clk 82c66ec88fSEmmanuel Vadot 83c66ec88fSEmmanuel Vadot then: 84c66ec88fSEmmanuel Vadot properties: 85c66ec88fSEmmanuel Vadot "#clock-cells": 86c66ec88fSEmmanuel Vadot const: 0 87c66ec88fSEmmanuel Vadot 88c66ec88fSEmmanuel Vadot # Already checked in the main schema 89c66ec88fSEmmanuel Vadot compatible: true 90c66ec88fSEmmanuel Vadot 91c66ec88fSEmmanuel Vadot clocks: 92c66ec88fSEmmanuel Vadot maxItems: 1 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot clock-output-names: 95c66ec88fSEmmanuel Vadot maxItems: 1 96c66ec88fSEmmanuel Vadot 97c66ec88fSEmmanuel Vadot phandle: true 98c66ec88fSEmmanuel Vadot 99c66ec88fSEmmanuel Vadot required: 100c66ec88fSEmmanuel Vadot - "#clock-cells" 101c66ec88fSEmmanuel Vadot - compatible 102c66ec88fSEmmanuel Vadot - clocks 103c66ec88fSEmmanuel Vadot - clock-output-names 104c66ec88fSEmmanuel Vadot 105c66ec88fSEmmanuel Vadot additionalProperties: false 106c66ec88fSEmmanuel Vadot 107c66ec88fSEmmanuel Vadot - if: 108c66ec88fSEmmanuel Vadot properties: 109c66ec88fSEmmanuel Vadot compatible: 110c66ec88fSEmmanuel Vadot contains: 111c66ec88fSEmmanuel Vadot const: allwinner,sun6i-a31-apb0-gates-clk 112c66ec88fSEmmanuel Vadot 113c66ec88fSEmmanuel Vadot then: 114c66ec88fSEmmanuel Vadot properties: 115c66ec88fSEmmanuel Vadot "#clock-cells": 116c66ec88fSEmmanuel Vadot const: 1 117c66ec88fSEmmanuel Vadot description: > 118c66ec88fSEmmanuel Vadot This additional argument passed to that clock is the 119c66ec88fSEmmanuel Vadot offset of the bit controlling this particular gate in 120c66ec88fSEmmanuel Vadot the register. 121c66ec88fSEmmanuel Vadot 122c66ec88fSEmmanuel Vadot # Already checked in the main schema 123c66ec88fSEmmanuel Vadot compatible: true 124c66ec88fSEmmanuel Vadot 125c66ec88fSEmmanuel Vadot clocks: 126c66ec88fSEmmanuel Vadot maxItems: 1 127c66ec88fSEmmanuel Vadot 128c66ec88fSEmmanuel Vadot clock-output-names: 129c66ec88fSEmmanuel Vadot minItems: 1 130c66ec88fSEmmanuel Vadot maxItems: 32 131c66ec88fSEmmanuel Vadot 132c66ec88fSEmmanuel Vadot phandle: true 133c66ec88fSEmmanuel Vadot 134c66ec88fSEmmanuel Vadot required: 135c66ec88fSEmmanuel Vadot - "#clock-cells" 136c66ec88fSEmmanuel Vadot - compatible 137c66ec88fSEmmanuel Vadot - clocks 138c66ec88fSEmmanuel Vadot - clock-output-names 139c66ec88fSEmmanuel Vadot 140c66ec88fSEmmanuel Vadot additionalProperties: false 141c66ec88fSEmmanuel Vadot 142c66ec88fSEmmanuel Vadot - if: 143c66ec88fSEmmanuel Vadot properties: 144c66ec88fSEmmanuel Vadot compatible: 145c66ec88fSEmmanuel Vadot contains: 146c66ec88fSEmmanuel Vadot const: allwinner,sun6i-a31-ar100-clk 147c66ec88fSEmmanuel Vadot 148c66ec88fSEmmanuel Vadot then: 149c66ec88fSEmmanuel Vadot properties: 150c66ec88fSEmmanuel Vadot "#clock-cells": 151c66ec88fSEmmanuel Vadot const: 0 152c66ec88fSEmmanuel Vadot 153c66ec88fSEmmanuel Vadot # Already checked in the main schema 154c66ec88fSEmmanuel Vadot compatible: true 155c66ec88fSEmmanuel Vadot 156c66ec88fSEmmanuel Vadot clocks: 157c66ec88fSEmmanuel Vadot maxItems: 4 158c66ec88fSEmmanuel Vadot description: > 159c66ec88fSEmmanuel Vadot The parent order must match the hardware programming 160c66ec88fSEmmanuel Vadot order. 161c66ec88fSEmmanuel Vadot 162c66ec88fSEmmanuel Vadot clock-output-names: 163c66ec88fSEmmanuel Vadot maxItems: 1 164c66ec88fSEmmanuel Vadot 165c66ec88fSEmmanuel Vadot phandle: true 166c66ec88fSEmmanuel Vadot 167c66ec88fSEmmanuel Vadot required: 168c66ec88fSEmmanuel Vadot - "#clock-cells" 169c66ec88fSEmmanuel Vadot - compatible 170c66ec88fSEmmanuel Vadot - clocks 171c66ec88fSEmmanuel Vadot - clock-output-names 172c66ec88fSEmmanuel Vadot 173c66ec88fSEmmanuel Vadot additionalProperties: false 174c66ec88fSEmmanuel Vadot 175c66ec88fSEmmanuel Vadot - if: 176c66ec88fSEmmanuel Vadot properties: 177c66ec88fSEmmanuel Vadot compatible: 178c66ec88fSEmmanuel Vadot contains: 179c66ec88fSEmmanuel Vadot const: allwinner,sun6i-a31-clock-reset 180c66ec88fSEmmanuel Vadot 181c66ec88fSEmmanuel Vadot then: 182c66ec88fSEmmanuel Vadot properties: 183c66ec88fSEmmanuel Vadot "#reset-cells": 184c66ec88fSEmmanuel Vadot const: 1 185c66ec88fSEmmanuel Vadot 186c66ec88fSEmmanuel Vadot # Already checked in the main schema 187c66ec88fSEmmanuel Vadot compatible: true 188c66ec88fSEmmanuel Vadot 189c66ec88fSEmmanuel Vadot phandle: true 190c66ec88fSEmmanuel Vadot 191c66ec88fSEmmanuel Vadot required: 192c66ec88fSEmmanuel Vadot - "#reset-cells" 193c66ec88fSEmmanuel Vadot - compatible 194c66ec88fSEmmanuel Vadot 195c66ec88fSEmmanuel Vadot additionalProperties: false 196c66ec88fSEmmanuel Vadot 197c66ec88fSEmmanuel Vadotrequired: 198c66ec88fSEmmanuel Vadot - compatible 199c66ec88fSEmmanuel Vadot - reg 200c66ec88fSEmmanuel Vadot 201c66ec88fSEmmanuel VadotadditionalProperties: false 202c66ec88fSEmmanuel Vadot 203c66ec88fSEmmanuel Vadotexamples: 204c66ec88fSEmmanuel Vadot - | 205c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/sun6i-a31-ccu.h> 206c66ec88fSEmmanuel Vadot 207c66ec88fSEmmanuel Vadot prcm@1f01400 { 208c66ec88fSEmmanuel Vadot compatible = "allwinner,sun6i-a31-prcm"; 209c66ec88fSEmmanuel Vadot reg = <0x01f01400 0x200>; 210c66ec88fSEmmanuel Vadot 211c66ec88fSEmmanuel Vadot ar100: ar100_clk { 212c66ec88fSEmmanuel Vadot compatible = "allwinner,sun6i-a31-ar100-clk"; 213c66ec88fSEmmanuel Vadot #clock-cells = <0>; 214c66ec88fSEmmanuel Vadot clocks = <&rtc 0>, <&osc24M>, 215c66ec88fSEmmanuel Vadot <&ccu CLK_PLL_PERIPH>, 216c66ec88fSEmmanuel Vadot <&ccu CLK_PLL_PERIPH>; 217c66ec88fSEmmanuel Vadot clock-output-names = "ar100"; 218c66ec88fSEmmanuel Vadot }; 219c66ec88fSEmmanuel Vadot 220c66ec88fSEmmanuel Vadot ahb0: ahb0_clk { 221c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 222c66ec88fSEmmanuel Vadot #clock-cells = <0>; 223c66ec88fSEmmanuel Vadot clock-div = <1>; 224c66ec88fSEmmanuel Vadot clock-mult = <1>; 225c66ec88fSEmmanuel Vadot clocks = <&ar100>; 226c66ec88fSEmmanuel Vadot clock-output-names = "ahb0"; 227c66ec88fSEmmanuel Vadot }; 228c66ec88fSEmmanuel Vadot 229c66ec88fSEmmanuel Vadot apb0: apb0_clk { 230c66ec88fSEmmanuel Vadot compatible = "allwinner,sun6i-a31-apb0-clk"; 231c66ec88fSEmmanuel Vadot #clock-cells = <0>; 232c66ec88fSEmmanuel Vadot clocks = <&ahb0>; 233c66ec88fSEmmanuel Vadot clock-output-names = "apb0"; 234c66ec88fSEmmanuel Vadot }; 235c66ec88fSEmmanuel Vadot 236c66ec88fSEmmanuel Vadot apb0_gates: apb0_gates_clk { 237c66ec88fSEmmanuel Vadot compatible = "allwinner,sun6i-a31-apb0-gates-clk"; 238c66ec88fSEmmanuel Vadot #clock-cells = <1>; 239c66ec88fSEmmanuel Vadot clocks = <&apb0>; 240c66ec88fSEmmanuel Vadot clock-output-names = "apb0_pio", "apb0_ir", 241c66ec88fSEmmanuel Vadot "apb0_timer", "apb0_p2wi", 242c66ec88fSEmmanuel Vadot "apb0_uart", "apb0_1wire", 243c66ec88fSEmmanuel Vadot "apb0_i2c"; 244c66ec88fSEmmanuel Vadot }; 245c66ec88fSEmmanuel Vadot 246c66ec88fSEmmanuel Vadot ir_clk: ir_clk { 247c66ec88fSEmmanuel Vadot #clock-cells = <0>; 248c66ec88fSEmmanuel Vadot compatible = "allwinner,sun4i-a10-mod0-clk"; 249c66ec88fSEmmanuel Vadot clocks = <&rtc 0>, <&osc24M>; 250c66ec88fSEmmanuel Vadot clock-output-names = "ir"; 251c66ec88fSEmmanuel Vadot }; 252c66ec88fSEmmanuel Vadot 253c66ec88fSEmmanuel Vadot apb0_rst: apb0_rst { 254c66ec88fSEmmanuel Vadot compatible = "allwinner,sun6i-a31-clock-reset"; 255c66ec88fSEmmanuel Vadot #reset-cells = <1>; 256c66ec88fSEmmanuel Vadot }; 257c66ec88fSEmmanuel Vadot }; 258c66ec88fSEmmanuel Vadot 259c66ec88fSEmmanuel Vadot... 260