18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/allwinner,sun6i-a31-prcm.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Allwinner A31 PRCM Device Tree Bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Chen-Yu Tsai <wens@csie.org> 118c2ecf20Sopenharmony_ci - Maxime Ripard <mripard@kernel.org> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cideprecated: true 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciproperties: 168c2ecf20Sopenharmony_ci compatible: 178c2ecf20Sopenharmony_ci const: allwinner,sun6i-a31-prcm 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci reg: 208c2ecf20Sopenharmony_ci maxItems: 1 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cipatternProperties: 238c2ecf20Sopenharmony_ci "^.*_(clk|rst)$": 248c2ecf20Sopenharmony_ci type: object 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci properties: 278c2ecf20Sopenharmony_ci compatible: 288c2ecf20Sopenharmony_ci enum: 298c2ecf20Sopenharmony_ci - allwinner,sun4i-a10-mod0-clk 308c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-apb0-clk 318c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-apb0-gates-clk 328c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-ar100-clk 338c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-clock-reset 348c2ecf20Sopenharmony_ci - fixed-factor-clock 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci allOf: 378c2ecf20Sopenharmony_ci - if: 388c2ecf20Sopenharmony_ci properties: 398c2ecf20Sopenharmony_ci compatible: 408c2ecf20Sopenharmony_ci contains: 418c2ecf20Sopenharmony_ci const: allwinner,sun6i-a31-apb0-clk 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci then: 448c2ecf20Sopenharmony_ci properties: 458c2ecf20Sopenharmony_ci "#clock-cells": 468c2ecf20Sopenharmony_ci const: 0 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci # Already checked in the main schema 498c2ecf20Sopenharmony_ci compatible: true 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci clocks: 528c2ecf20Sopenharmony_ci maxItems: 1 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci clock-output-names: 558c2ecf20Sopenharmony_ci maxItems: 1 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci phandle: true 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci required: 608c2ecf20Sopenharmony_ci - "#clock-cells" 618c2ecf20Sopenharmony_ci - compatible 628c2ecf20Sopenharmony_ci - clocks 638c2ecf20Sopenharmony_ci - clock-output-names 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci additionalProperties: false 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci - if: 688c2ecf20Sopenharmony_ci properties: 698c2ecf20Sopenharmony_ci compatible: 708c2ecf20Sopenharmony_ci contains: 718c2ecf20Sopenharmony_ci const: allwinner,sun6i-a31-apb0-gates-clk 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci then: 748c2ecf20Sopenharmony_ci properties: 758c2ecf20Sopenharmony_ci "#clock-cells": 768c2ecf20Sopenharmony_ci const: 1 778c2ecf20Sopenharmony_ci description: > 788c2ecf20Sopenharmony_ci This additional argument passed to that clock is the 798c2ecf20Sopenharmony_ci offset of the bit controlling this particular gate in 808c2ecf20Sopenharmony_ci the register. 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci # Already checked in the main schema 838c2ecf20Sopenharmony_ci compatible: true 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci clocks: 868c2ecf20Sopenharmony_ci maxItems: 1 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci clock-output-names: 898c2ecf20Sopenharmony_ci minItems: 1 908c2ecf20Sopenharmony_ci maxItems: 32 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci phandle: true 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci required: 958c2ecf20Sopenharmony_ci - "#clock-cells" 968c2ecf20Sopenharmony_ci - compatible 978c2ecf20Sopenharmony_ci - clocks 988c2ecf20Sopenharmony_ci - clock-output-names 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci additionalProperties: false 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci - if: 1038c2ecf20Sopenharmony_ci properties: 1048c2ecf20Sopenharmony_ci compatible: 1058c2ecf20Sopenharmony_ci contains: 1068c2ecf20Sopenharmony_ci const: allwinner,sun6i-a31-ar100-clk 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci then: 1098c2ecf20Sopenharmony_ci properties: 1108c2ecf20Sopenharmony_ci "#clock-cells": 1118c2ecf20Sopenharmony_ci const: 0 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci # Already checked in the main schema 1148c2ecf20Sopenharmony_ci compatible: true 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci clocks: 1178c2ecf20Sopenharmony_ci maxItems: 4 1188c2ecf20Sopenharmony_ci description: > 1198c2ecf20Sopenharmony_ci The parent order must match the hardware programming 1208c2ecf20Sopenharmony_ci order. 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci clock-output-names: 1238c2ecf20Sopenharmony_ci maxItems: 1 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci phandle: true 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci required: 1288c2ecf20Sopenharmony_ci - "#clock-cells" 1298c2ecf20Sopenharmony_ci - compatible 1308c2ecf20Sopenharmony_ci - clocks 1318c2ecf20Sopenharmony_ci - clock-output-names 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci additionalProperties: false 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci - if: 1368c2ecf20Sopenharmony_ci properties: 1378c2ecf20Sopenharmony_ci compatible: 1388c2ecf20Sopenharmony_ci contains: 1398c2ecf20Sopenharmony_ci const: allwinner,sun6i-a31-clock-reset 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci then: 1428c2ecf20Sopenharmony_ci properties: 1438c2ecf20Sopenharmony_ci "#reset-cells": 1448c2ecf20Sopenharmony_ci const: 1 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci # Already checked in the main schema 1478c2ecf20Sopenharmony_ci compatible: true 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci phandle: true 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci required: 1528c2ecf20Sopenharmony_ci - "#reset-cells" 1538c2ecf20Sopenharmony_ci - compatible 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci additionalProperties: false 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_cirequired: 1588c2ecf20Sopenharmony_ci - compatible 1598c2ecf20Sopenharmony_ci - reg 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ciadditionalProperties: false 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ciexamples: 1648c2ecf20Sopenharmony_ci - | 1658c2ecf20Sopenharmony_ci #include <dt-bindings/clock/sun6i-a31-ccu.h> 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci prcm@1f01400 { 1688c2ecf20Sopenharmony_ci compatible = "allwinner,sun6i-a31-prcm"; 1698c2ecf20Sopenharmony_ci reg = <0x01f01400 0x200>; 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci ar100: ar100_clk { 1728c2ecf20Sopenharmony_ci compatible = "allwinner,sun6i-a31-ar100-clk"; 1738c2ecf20Sopenharmony_ci #clock-cells = <0>; 1748c2ecf20Sopenharmony_ci clocks = <&rtc 0>, <&osc24M>, 1758c2ecf20Sopenharmony_ci <&ccu CLK_PLL_PERIPH>, 1768c2ecf20Sopenharmony_ci <&ccu CLK_PLL_PERIPH>; 1778c2ecf20Sopenharmony_ci clock-output-names = "ar100"; 1788c2ecf20Sopenharmony_ci }; 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci ahb0: ahb0_clk { 1818c2ecf20Sopenharmony_ci compatible = "fixed-factor-clock"; 1828c2ecf20Sopenharmony_ci #clock-cells = <0>; 1838c2ecf20Sopenharmony_ci clock-div = <1>; 1848c2ecf20Sopenharmony_ci clock-mult = <1>; 1858c2ecf20Sopenharmony_ci clocks = <&ar100>; 1868c2ecf20Sopenharmony_ci clock-output-names = "ahb0"; 1878c2ecf20Sopenharmony_ci }; 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci apb0: apb0_clk { 1908c2ecf20Sopenharmony_ci compatible = "allwinner,sun6i-a31-apb0-clk"; 1918c2ecf20Sopenharmony_ci #clock-cells = <0>; 1928c2ecf20Sopenharmony_ci clocks = <&ahb0>; 1938c2ecf20Sopenharmony_ci clock-output-names = "apb0"; 1948c2ecf20Sopenharmony_ci }; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci apb0_gates: apb0_gates_clk { 1978c2ecf20Sopenharmony_ci compatible = "allwinner,sun6i-a31-apb0-gates-clk"; 1988c2ecf20Sopenharmony_ci #clock-cells = <1>; 1998c2ecf20Sopenharmony_ci clocks = <&apb0>; 2008c2ecf20Sopenharmony_ci clock-output-names = "apb0_pio", "apb0_ir", 2018c2ecf20Sopenharmony_ci "apb0_timer", "apb0_p2wi", 2028c2ecf20Sopenharmony_ci "apb0_uart", "apb0_1wire", 2038c2ecf20Sopenharmony_ci "apb0_i2c"; 2048c2ecf20Sopenharmony_ci }; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci ir_clk: ir_clk { 2078c2ecf20Sopenharmony_ci #clock-cells = <0>; 2088c2ecf20Sopenharmony_ci compatible = "allwinner,sun4i-a10-mod0-clk"; 2098c2ecf20Sopenharmony_ci clocks = <&rtc 0>, <&osc24M>; 2108c2ecf20Sopenharmony_ci clock-output-names = "ir"; 2118c2ecf20Sopenharmony_ci }; 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_ci apb0_rst: apb0_rst { 2148c2ecf20Sopenharmony_ci compatible = "allwinner,sun6i-a31-clock-reset"; 2158c2ecf20Sopenharmony_ci #reset-cells = <1>; 2168c2ecf20Sopenharmony_ci }; 2178c2ecf20Sopenharmony_ci }; 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci... 220