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