xref: /linux/Documentation/devicetree/bindings/clock/renesas,5p35023.yaml (revision 1260ed77798502de9c98020040d2995008de10cc) !
1a03d23f8SBiju Das# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2a03d23f8SBiju Das%YAML 1.2
3a03d23f8SBiju Das---
4a03d23f8SBiju Das$id: http://devicetree.org/schemas/clock/renesas,5p35023.yaml#
5a03d23f8SBiju Das$schema: http://devicetree.org/meta-schemas/core.yaml#
6a03d23f8SBiju Das
7a03d23f8SBiju Dastitle: Renesas 5p35023 VersaClock 3 programmable I2C clock generator
8a03d23f8SBiju Das
9a03d23f8SBiju Dasmaintainers:
10a03d23f8SBiju Das  - Biju Das <biju.das.jz@bp.renesas.com>
11a03d23f8SBiju Das
12a03d23f8SBiju Dasdescription: |
13a03d23f8SBiju Das  The 5P35023 is a VersaClock programmable clock generator and
14a03d23f8SBiju Das  is designed for low-power, consumer, and high-performance PCI
15a03d23f8SBiju Das  express applications. The 5P35023 device is a three PLL
16a03d23f8SBiju Das  architecture design, and each PLL is individually programmable
17a03d23f8SBiju Das  and allowing for up to 6 unique frequency outputs.
18a03d23f8SBiju Das
19a03d23f8SBiju Das  An internal OTP memory allows the user to store the configuration
20a03d23f8SBiju Das  in the device. After power up, the user can change the device register
21a03d23f8SBiju Das  settings through the I2C interface when I2C mode is selected.
22a03d23f8SBiju Das
23a03d23f8SBiju Das  The driver can read a full register map from the DT, and will use that
24a03d23f8SBiju Das  register map to initialize the attached part (via I2C) when the system
25a03d23f8SBiju Das  boots. Any configuration not supported by the common clock framework
26a03d23f8SBiju Das  must be done via the full register map, including optimized settings.
27a03d23f8SBiju Das
28a03d23f8SBiju Das  Link to datasheet:
29a03d23f8SBiju Das  https://www.renesas.com/us/en/products/clocks-timing/clock-generation/programmable-clocks/5p35023-versaclock-3s-programmable-clock-generator
30a03d23f8SBiju Das
31a03d23f8SBiju Dasproperties:
32a03d23f8SBiju Das  compatible:
33a03d23f8SBiju Das    enum:
34*626b7773SClaudiu Beznea      - renesas,5l35023
35a03d23f8SBiju Das      - renesas,5p35023
36a03d23f8SBiju Das
37a03d23f8SBiju Das  reg:
38a03d23f8SBiju Das    maxItems: 1
39a03d23f8SBiju Das
40a03d23f8SBiju Das  '#clock-cells':
411aa2a9f2SBiju Das    description:
421aa2a9f2SBiju Das      The index in the assigned-clocks is mapped to the output clock as below
431aa2a9f2SBiju Das      0 - REF, 1 - SE1, 2 - SE2, 3 - SE3, 4 - DIFF1, 5 - DIFF2.
44a03d23f8SBiju Das    const: 1
45a03d23f8SBiju Das
46a03d23f8SBiju Das  clocks:
47a03d23f8SBiju Das    maxItems: 1
48a03d23f8SBiju Das
49a03d23f8SBiju Das  renesas,settings:
50a03d23f8SBiju Das    description: Optional, complete register map of the device.
51a03d23f8SBiju Das      Optimized settings for the device must be provided in full
52a03d23f8SBiju Das      and are written during initialization.
53a03d23f8SBiju Das    $ref: /schemas/types.yaml#/definitions/uint8-array
54a03d23f8SBiju Das    maxItems: 37
55a03d23f8SBiju Das
56a03d23f8SBiju Dasrequired:
57a03d23f8SBiju Das  - compatible
58a03d23f8SBiju Das  - reg
59a03d23f8SBiju Das  - '#clock-cells'
60a03d23f8SBiju Das  - clocks
61a03d23f8SBiju Das
62a03d23f8SBiju DasadditionalProperties: false
63a03d23f8SBiju Das
64a03d23f8SBiju Dasexamples:
65a03d23f8SBiju Das  - |
66a03d23f8SBiju Das    i2c {
67a03d23f8SBiju Das        #address-cells = <1>;
68a03d23f8SBiju Das        #size-cells = <0>;
69a03d23f8SBiju Das
70a03d23f8SBiju Das        versa3: clock-generator@68 {
71a03d23f8SBiju Das            compatible = "renesas,5p35023";
72a03d23f8SBiju Das            reg = <0x68>;
73a03d23f8SBiju Das            #clock-cells = <1>;
74a03d23f8SBiju Das
751aa2a9f2SBiju Das            clocks = <&x1>;
76a03d23f8SBiju Das
77a03d23f8SBiju Das            renesas,settings = [
78a03d23f8SBiju Das                80 00 11 19 4c 02 23 7f 83 19 08 a9 5f 25 24 bf
79a03d23f8SBiju Das                00 14 7a e1 00 00 00 00 01 55 59 bb 3f 30 90 b6
80a03d23f8SBiju Das                80 b0 45 c4 95
81a03d23f8SBiju Das            ];
82a03d23f8SBiju Das
83a03d23f8SBiju Das            assigned-clocks = <&versa3 0>, <&versa3 1>,
84a03d23f8SBiju Das                              <&versa3 2>, <&versa3 3>,
85a03d23f8SBiju Das                              <&versa3 4>, <&versa3 5>;
861aa2a9f2SBiju Das            assigned-clock-rates = <24000000>, <11289600>,
871aa2a9f2SBiju Das                                   <11289600>, <12000000>,
881aa2a9f2SBiju Das                                   <25000000>, <12288000>;
89a03d23f8SBiju Das        };
90a03d23f8SBiju Das    };
91