242 lines
5.5 KiB
YAML
242 lines
5.5 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/clock/renesas,cpg-clocks.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Renesas Clock Pulse Generator (CPG)
|
||
|
|
||
|
maintainers:
|
||
|
- Geert Uytterhoeven <geert+renesas@glider.be>
|
||
|
|
||
|
description:
|
||
|
The Clock Pulse Generator (CPG) generates core clocks for the SoC. It
|
||
|
includes PLLs, and fixed and variable ratio dividers.
|
||
|
|
||
|
The CPG may also provide a Clock Domain for SoC devices, in combination with
|
||
|
the CPG Module Stop (MSTP) Clocks.
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
oneOf:
|
||
|
- const: renesas,r8a73a4-cpg-clocks # R-Mobile APE6
|
||
|
- const: renesas,r8a7740-cpg-clocks # R-Mobile A1
|
||
|
- const: renesas,r8a7778-cpg-clocks # R-Car M1
|
||
|
- const: renesas,r8a7779-cpg-clocks # R-Car H1
|
||
|
- items:
|
||
|
- enum:
|
||
|
- renesas,r7s72100-cpg-clocks # RZ/A1H
|
||
|
- const: renesas,rz-cpg-clocks # RZ/A1
|
||
|
- const: renesas,sh73a0-cpg-clocks # SH-Mobile AG5
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
clocks: true
|
||
|
|
||
|
'#clock-cells':
|
||
|
const: 1
|
||
|
|
||
|
clock-output-names: true
|
||
|
|
||
|
renesas,mode:
|
||
|
description: Board-specific settings of the MD_CK* bits on R-Mobile A1
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
minimum: 0
|
||
|
maximum: 7
|
||
|
|
||
|
'#power-domain-cells':
|
||
|
const: 0
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- clocks
|
||
|
- '#clock-cells'
|
||
|
- clock-output-names
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: renesas,r8a73a4-cpg-clocks
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description: extal1
|
||
|
- description: extal2
|
||
|
|
||
|
clock-output-names:
|
||
|
items:
|
||
|
- const: main
|
||
|
- const: pll0
|
||
|
- const: pll1
|
||
|
- const: pll2
|
||
|
- const: pll2s
|
||
|
- const: pll2h
|
||
|
- const: z
|
||
|
- const: z2
|
||
|
- const: i
|
||
|
- const: m3
|
||
|
- const: b
|
||
|
- const: m1
|
||
|
- const: m2
|
||
|
- const: zx
|
||
|
- const: zs
|
||
|
- const: hp
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: renesas,r8a7740-cpg-clocks
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description: extal1
|
||
|
- description: extal2
|
||
|
- description: extalr
|
||
|
|
||
|
clock-output-names:
|
||
|
items:
|
||
|
- const: system
|
||
|
- const: pllc0
|
||
|
- const: pllc1
|
||
|
- const: pllc2
|
||
|
- const: r
|
||
|
- const: usb24s
|
||
|
- const: i
|
||
|
- const: zg
|
||
|
- const: b
|
||
|
- const: m1
|
||
|
- const: hp
|
||
|
- const: hpp
|
||
|
- const: usbp
|
||
|
- const: s
|
||
|
- const: zb
|
||
|
- const: m3
|
||
|
- const: cp
|
||
|
|
||
|
required:
|
||
|
- renesas,mode
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: renesas,r8a7778-cpg-clocks
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
maxItems: 1
|
||
|
|
||
|
clock-output-names:
|
||
|
items:
|
||
|
- const: plla
|
||
|
- const: pllb
|
||
|
- const: b
|
||
|
- const: out
|
||
|
- const: p
|
||
|
- const: s
|
||
|
- const: s1
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: renesas,r8a7779-cpg-clocks
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
maxItems: 1
|
||
|
|
||
|
clock-output-names:
|
||
|
items:
|
||
|
- const: plla
|
||
|
- const: z
|
||
|
- const: zs
|
||
|
- const: s
|
||
|
- const: s1
|
||
|
- const: p
|
||
|
- const: b
|
||
|
- const: out
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: renesas,r7s72100-cpg-clocks
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description: extal1
|
||
|
- description: usb_x1
|
||
|
|
||
|
clock-output-names:
|
||
|
items:
|
||
|
- const: pll
|
||
|
- const: i
|
||
|
- const: g
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: renesas,sh73a0-cpg-clocks
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description: extal1
|
||
|
- description: extal2
|
||
|
|
||
|
clock-output-names:
|
||
|
items:
|
||
|
- const: main
|
||
|
- const: pll0
|
||
|
- const: pll1
|
||
|
- const: pll2
|
||
|
- const: pll3
|
||
|
- const: dsi0phy
|
||
|
- const: dsi1phy
|
||
|
- const: zg
|
||
|
- const: m3
|
||
|
- const: b
|
||
|
- const: m1
|
||
|
- const: m2
|
||
|
- const: z
|
||
|
- const: zx
|
||
|
- const: hp
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- renesas,r8a7778-cpg-clocks
|
||
|
- renesas,r8a7779-cpg-clocks
|
||
|
- renesas,rz-cpg-clocks
|
||
|
then:
|
||
|
required:
|
||
|
- '#power-domain-cells'
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/clock/r8a7740-clock.h>
|
||
|
cpg_clocks: cpg_clocks@e6150000 {
|
||
|
compatible = "renesas,r8a7740-cpg-clocks";
|
||
|
reg = <0xe6150000 0x10000>;
|
||
|
clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>;
|
||
|
#clock-cells = <1>;
|
||
|
clock-output-names = "system", "pllc0", "pllc1", "pllc2", "r",
|
||
|
"usb24s", "i", "zg", "b", "m1", "hp", "hpp",
|
||
|
"usbp", "s", "zb", "m3", "cp";
|
||
|
renesas,mode = <0x05>;
|
||
|
};
|