Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: clk: Convert rockchip,rk3399-cru to DT schema

Convert the rockchip,rk3399-cru binding to DT schema format.
Tested with
ARCH=arm64 make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/clock/rockchip,rk3399-cru.yaml
ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/clock/rockchip,rk3399-cru.yaml

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210610175613.167601-1-nfraprado@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

authored by

Nícolas F. R. A. Prado and committed by
Heiko Stuebner
d4756536 d61eb8a1

+92 -68
-68
Documentation/devicetree/bindings/clock/rockchip,rk3399-cru.txt
··· 1 - * Rockchip RK3399 Clock and Reset Unit 2 - 3 - The RK3399 clock controller generates and supplies clock to various 4 - controllers within the SoC and also implements a reset controller for SoC 5 - peripherals. 6 - 7 - Required Properties: 8 - 9 - - compatible: PMU for CRU should be "rockchip,rk3399-pmucru" 10 - - compatible: CRU should be "rockchip,rk3399-cru" 11 - - reg: physical base address of the controller and length of memory mapped 12 - region. 13 - - #clock-cells: should be 1. 14 - - #reset-cells: should be 1. 15 - 16 - Optional Properties: 17 - 18 - - rockchip,grf: phandle to the syscon managing the "general register files". 19 - It is used for GRF muxes, if missing any muxes present in the GRF will not 20 - be available. 21 - 22 - Each clock is assigned an identifier and client nodes can use this identifier 23 - to specify the clock which they consume. All available clocks are defined as 24 - preprocessor macros in the dt-bindings/clock/rk3399-cru.h headers and can be 25 - used in device tree sources. Similar macros exist for the reset sources in 26 - these files. 27 - 28 - External clocks: 29 - 30 - There are several clocks that are generated outside the SoC. It is expected 31 - that they are defined using standard clock bindings with following 32 - clock-output-names: 33 - - "xin24m" - crystal input - required, 34 - - "xin32k" - rtc clock - optional, 35 - - "clkin_gmac" - external GMAC clock - optional, 36 - - "clkin_i2s" - external I2S clock - optional, 37 - - "pclkin_cif" - external ISP clock - optional, 38 - - "clk_usbphy0_480m" - output clock of the pll in the usbphy0 39 - - "clk_usbphy1_480m" - output clock of the pll in the usbphy1 40 - 41 - Example: Clock controller node: 42 - 43 - pmucru: pmu-clock-controller@ff750000 { 44 - compatible = "rockchip,rk3399-pmucru"; 45 - reg = <0x0 0xff750000 0x0 0x1000>; 46 - #clock-cells = <1>; 47 - #reset-cells = <1>; 48 - }; 49 - 50 - cru: clock-controller@ff760000 { 51 - compatible = "rockchip,rk3399-cru"; 52 - reg = <0x0 0xff760000 0x0 0x1000>; 53 - #clock-cells = <1>; 54 - #reset-cells = <1>; 55 - }; 56 - 57 - Example: UART controller node that consumes the clock generated by the clock 58 - controller: 59 - 60 - uart0: serial@ff1a0000 { 61 - compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 62 - reg = <0x0 0xff180000 0x0 0x100>; 63 - clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 64 - clock-names = "baudclk", "apb_pclk"; 65 - interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 66 - reg-shift = <2>; 67 - reg-io-width = <4>; 68 - };
+92
Documentation/devicetree/bindings/clock/rockchip,rk3399-cru.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/rockchip,rk3399-cru.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Rockchip RK3399 Clock and Reset Unit 8 + 9 + maintainers: 10 + - Xing Zheng <zhengxing@rock-chips.com> 11 + - Heiko Stuebner <heiko@sntech.de> 12 + 13 + description: | 14 + The RK3399 clock controller generates and supplies clock to various 15 + controllers within the SoC and also implements a reset controller for SoC 16 + peripherals. 17 + Each clock is assigned an identifier and client nodes can use this identifier 18 + to specify the clock which they consume. All available clocks are defined as 19 + preprocessor macros in the dt-bindings/clock/rk3399-cru.h headers and can be 20 + used in device tree sources. Similar macros exist for the reset sources in 21 + these files. 22 + There are several clocks that are generated outside the SoC. It is expected 23 + that they are defined using standard clock bindings with following 24 + clock-output-names: 25 + - "xin24m" - crystal input - required, 26 + - "xin32k" - rtc clock - optional, 27 + - "clkin_gmac" - external GMAC clock - optional, 28 + - "clkin_i2s" - external I2S clock - optional, 29 + - "pclkin_cif" - external ISP clock - optional, 30 + - "clk_usbphy0_480m" - output clock of the pll in the usbphy0 31 + - "clk_usbphy1_480m" - output clock of the pll in the usbphy1 32 + 33 + properties: 34 + compatible: 35 + enum: 36 + - rockchip,rk3399-pmucru 37 + - rockchip,rk3399-cru 38 + 39 + reg: 40 + maxItems: 1 41 + 42 + "#clock-cells": 43 + const: 1 44 + 45 + "#reset-cells": 46 + const: 1 47 + 48 + clocks: 49 + minItems: 1 50 + 51 + assigned-clocks: 52 + minItems: 1 53 + maxItems: 64 54 + 55 + assigned-clock-parents: 56 + minItems: 1 57 + maxItems: 64 58 + 59 + assigned-clock-rates: 60 + minItems: 1 61 + maxItems: 64 62 + 63 + rockchip,grf: 64 + $ref: /schemas/types.yaml#/definitions/phandle 65 + description: > 66 + phandle to the syscon managing the "general register files". It is used 67 + for GRF muxes, if missing any muxes present in the GRF will not be 68 + available. 69 + 70 + required: 71 + - compatible 72 + - reg 73 + - "#clock-cells" 74 + - "#reset-cells" 75 + 76 + additionalProperties: false 77 + 78 + examples: 79 + - | 80 + pmucru: pmu-clock-controller@ff750000 { 81 + compatible = "rockchip,rk3399-pmucru"; 82 + reg = <0xff750000 0x1000>; 83 + #clock-cells = <1>; 84 + #reset-cells = <1>; 85 + }; 86 + - | 87 + cru: clock-controller@ff760000 { 88 + compatible = "rockchip,rk3399-cru"; 89 + reg = <0xff760000 0x1000>; 90 + #clock-cells = <1>; 91 + #reset-cells = <1>; 92 + };