| # SPDX-License-Identifier: GPL-2.0+ |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/mfd/allwinner,sun8i-a23-prcm.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Allwinner A23 PRCM |
| |
| maintainers: |
| - Chen-Yu Tsai <wens@csie.org> |
| - Maxime Ripard <mripard@kernel.org> |
| |
| deprecated: true |
| |
| properties: |
| compatible: |
| const: allwinner,sun8i-a23-prcm |
| |
| reg: |
| maxItems: 1 |
| |
| patternProperties: |
| "^.*(clk|rst|codec).*$": |
| type: object |
| unevaluatedProperties: false |
| |
| properties: |
| compatible: |
| enum: |
| - fixed-factor-clock |
| - allwinner,sun8i-a23-apb0-clk |
| - allwinner,sun8i-a23-apb0-gates-clk |
| - allwinner,sun6i-a31-clock-reset |
| - allwinner,sun8i-a23-codec-analog |
| |
| required: |
| - compatible |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: fixed-factor-clock |
| |
| then: |
| $ref: /schemas/clock/fixed-factor-clock.yaml# |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: allwinner,sun8i-a23-apb0-clk |
| |
| then: |
| properties: |
| "#clock-cells": |
| const: 0 |
| |
| # Already checked in the main schema |
| compatible: true |
| |
| clocks: |
| maxItems: 1 |
| |
| clock-output-names: |
| maxItems: 1 |
| |
| phandle: true |
| |
| required: |
| - "#clock-cells" |
| - compatible |
| - clocks |
| - clock-output-names |
| |
| additionalProperties: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: allwinner,sun8i-a23-apb0-gates-clk |
| |
| then: |
| properties: |
| "#clock-cells": |
| const: 1 |
| description: > |
| This additional argument passed to that clock is the |
| offset of the bit controlling this particular gate in |
| the register. |
| |
| # Already checked in the main schema |
| compatible: true |
| |
| clocks: |
| maxItems: 1 |
| |
| clock-output-names: |
| minItems: 1 |
| maxItems: 32 |
| |
| phandle: true |
| |
| required: |
| - "#clock-cells" |
| - compatible |
| - clocks |
| - clock-output-names |
| |
| additionalProperties: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: allwinner,sun6i-a31-clock-reset |
| |
| then: |
| properties: |
| "#reset-cells": |
| const: 1 |
| |
| # Already checked in the main schema |
| compatible: true |
| |
| phandle: true |
| |
| required: |
| - "#reset-cells" |
| - compatible |
| |
| additionalProperties: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: allwinner,sun8i-a23-codec-analog |
| |
| then: |
| properties: |
| # Already checked in the main schema |
| compatible: true |
| |
| phandle: true |
| |
| required: |
| - compatible |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| prcm@1f01400 { |
| compatible = "allwinner,sun8i-a23-prcm"; |
| reg = <0x01f01400 0x200>; |
| |
| ar100: ar100_clk { |
| compatible = "fixed-factor-clock"; |
| #clock-cells = <0>; |
| clock-div = <1>; |
| clock-mult = <1>; |
| clocks = <&osc24M>; |
| clock-output-names = "ar100"; |
| }; |
| |
| ahb0: ahb0_clk { |
| compatible = "fixed-factor-clock"; |
| #clock-cells = <0>; |
| clock-div = <1>; |
| clock-mult = <1>; |
| clocks = <&ar100>; |
| clock-output-names = "ahb0"; |
| }; |
| |
| apb0: apb0_clk { |
| compatible = "allwinner,sun8i-a23-apb0-clk"; |
| #clock-cells = <0>; |
| clocks = <&ahb0>; |
| clock-output-names = "apb0"; |
| }; |
| |
| apb0_gates: apb0_gates_clk { |
| compatible = "allwinner,sun8i-a23-apb0-gates-clk"; |
| #clock-cells = <1>; |
| clocks = <&apb0>; |
| clock-output-names = "apb0_pio", "apb0_timer", |
| "apb0_rsb", "apb0_uart", |
| "apb0_i2c"; |
| }; |
| |
| apb0_rst: apb0_rst { |
| compatible = "allwinner,sun6i-a31-clock-reset"; |
| #reset-cells = <1>; |
| }; |
| |
| codec_analog: codec-analog { |
| compatible = "allwinner,sun8i-a23-codec-analog"; |
| }; |
| }; |
| |
| ... |