1f2b883bbSLinus Walleij# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2f2b883bbSLinus Walleij%YAML 1.2 3f2b883bbSLinus Walleij--- 4f2b883bbSLinus Walleij$id: http://devicetree.org/schemas/clock/stericsson,u8500-clks.yaml# 5f2b883bbSLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml# 6f2b883bbSLinus Walleij 7f2b883bbSLinus Walleijtitle: ST-Ericsson DB8500 (U8500) clocks 8f2b883bbSLinus Walleij 9f2b883bbSLinus Walleijmaintainers: 10f2b883bbSLinus Walleij - Ulf Hansson <ulf.hansson@linaro.org> 11f2b883bbSLinus Walleij - Linus Walleij <linus.walleij@linaro.org> 12f2b883bbSLinus Walleij 13f2b883bbSLinus Walleijdescription: While named "U8500 clocks" these clocks are inside the 14f2b883bbSLinus Walleij DB8500 digital baseband system-on-chip and its siblings such as 15f2b883bbSLinus Walleij DB8520. These bindings consider the clocks present in the SoC 16f2b883bbSLinus Walleij itself, not off-chip clocks. There are four different on-chip 17f2b883bbSLinus Walleij clocks - RTC (32 kHz), CPU clock (SMP TWD), PRCMU (power reset and 18f2b883bbSLinus Walleij control management unit) clocks and PRCC (peripheral reset and 19f2b883bbSLinus Walleij clock controller) clocks. For some reason PRCC 4 does not exist so 20f2b883bbSLinus Walleij the itemization can be a bit unintuitive. 21f2b883bbSLinus Walleij 22f2b883bbSLinus Walleijproperties: 23f2b883bbSLinus Walleij compatible: 24f2b883bbSLinus Walleij enum: 25f2b883bbSLinus Walleij - stericsson,u8500-clks 26f2b883bbSLinus Walleij - stericsson,u8540-clks 27f2b883bbSLinus Walleij - stericsson,u9540-clks 28f2b883bbSLinus Walleij 29f2b883bbSLinus Walleij reg: 30f2b883bbSLinus Walleij items: 31f2b883bbSLinus Walleij - description: PRCC 1 register area 32f2b883bbSLinus Walleij - description: PRCC 2 register area 33f2b883bbSLinus Walleij - description: PRCC 3 register area 34f2b883bbSLinus Walleij - description: PRCC 5 register area 35f2b883bbSLinus Walleij - description: PRCC 6 register area 36f2b883bbSLinus Walleij 37f2b883bbSLinus Walleij prcmu-clock: 38f2b883bbSLinus Walleij description: A subnode with one clock cell for PRCMU (power, reset, control 39f2b883bbSLinus Walleij management unit) clocks. The cell indicates which PRCMU clock in the 40f2b883bbSLinus Walleij prcmu-clock node the consumer wants to use. 41f2b883bbSLinus Walleij type: object 42f2b883bbSLinus Walleij 43f2b883bbSLinus Walleij properties: 44f2b883bbSLinus Walleij '#clock-cells': 45f2b883bbSLinus Walleij const: 1 46f2b883bbSLinus Walleij 47f2b883bbSLinus Walleij additionalProperties: false 48f2b883bbSLinus Walleij 49f2b883bbSLinus Walleij prcc-periph-clock: 50f2b883bbSLinus Walleij description: A subnode with two clock cells for PRCC (peripheral 51f2b883bbSLinus Walleij reset and clock controller) peripheral clocks. The first cell indicates 52f2b883bbSLinus Walleij which PRCC block the consumer wants to use, possible values are 1, 2, 3, 53f2b883bbSLinus Walleij 5, 6. The second cell indicates which clock inside the PRCC block it 54f2b883bbSLinus Walleij wants, possible values are 0 thru 31. 55f2b883bbSLinus Walleij type: object 56f2b883bbSLinus Walleij 57f2b883bbSLinus Walleij properties: 58f2b883bbSLinus Walleij '#clock-cells': 59f2b883bbSLinus Walleij const: 2 60f2b883bbSLinus Walleij 61f2b883bbSLinus Walleij additionalProperties: false 62f2b883bbSLinus Walleij 63f2b883bbSLinus Walleij prcc-kernel-clock: 64f2b883bbSLinus Walleij description: A subnode with two clock cells for PRCC (peripheral reset 65f2b883bbSLinus Walleij and clock controller) kernel clocks. The first cell indicates which PRCC 66f2b883bbSLinus Walleij block the consumer wants to use, possible values are 1, 2, 3, 5, 6. The 67f2b883bbSLinus Walleij second cell indicates which clock inside the PRCC block it wants, possible 68f2b883bbSLinus Walleij values are 0 thru 31. 69f2b883bbSLinus Walleij type: object 70f2b883bbSLinus Walleij 71f2b883bbSLinus Walleij properties: 72f2b883bbSLinus Walleij '#clock-cells': 73f2b883bbSLinus Walleij const: 2 74f2b883bbSLinus Walleij 75f2b883bbSLinus Walleij additionalProperties: false 76f2b883bbSLinus Walleij 77f2b883bbSLinus Walleij prcc-reset-controller: 78f2b883bbSLinus Walleij description: A subnode with two reset cells for the reset portions of the 79f2b883bbSLinus Walleij PRCC (peripheral reset and clock controller). The first cell indicates 80f2b883bbSLinus Walleij which PRCC block the consumer wants to use, possible values are 1, 2, 3 81f2b883bbSLinus Walleij 5 and 6. The second cell indicates which reset line inside the PRCC block 82f2b883bbSLinus Walleij it wants to control, possible values are 0 thru 31. 83f2b883bbSLinus Walleij type: object 84f2b883bbSLinus Walleij 85f2b883bbSLinus Walleij properties: 86f2b883bbSLinus Walleij '#reset-cells': 87f2b883bbSLinus Walleij const: 2 88f2b883bbSLinus Walleij 89f2b883bbSLinus Walleij additionalProperties: false 90f2b883bbSLinus Walleij 91f2b883bbSLinus Walleij rtc32k-clock: 92f2b883bbSLinus Walleij description: A subnode with zero clock cells for the 32kHz RTC clock. 93f2b883bbSLinus Walleij type: object 94f2b883bbSLinus Walleij 95f2b883bbSLinus Walleij properties: 96f2b883bbSLinus Walleij '#clock-cells': 97f2b883bbSLinus Walleij const: 0 98f2b883bbSLinus Walleij 99f2b883bbSLinus Walleij additionalProperties: false 100f2b883bbSLinus Walleij 101f2b883bbSLinus Walleij smp-twd-clock: 102f2b883bbSLinus Walleij description: A subnode for the ARM SMP Timer Watchdog cluster with zero 103f2b883bbSLinus Walleij clock cells. 104f2b883bbSLinus Walleij type: object 105f2b883bbSLinus Walleij 106f2b883bbSLinus Walleij properties: 107f2b883bbSLinus Walleij '#clock-cells': 108f2b883bbSLinus Walleij const: 0 109f2b883bbSLinus Walleij 110f2b883bbSLinus Walleij additionalProperties: false 111f2b883bbSLinus Walleij 112*7335631fSLinus Walleij clkout-clock: 113*7335631fSLinus Walleij description: A subnode with three clock cells for externally routed clocks, 114*7335631fSLinus Walleij output clocks. These are two PRCMU-internal clocks that can be divided and 115*7335631fSLinus Walleij muxed out on the pads of the DB8500 SoC. 116*7335631fSLinus Walleij type: object 117*7335631fSLinus Walleij 118*7335631fSLinus Walleij properties: 119*7335631fSLinus Walleij '#clock-cells': 120*7335631fSLinus Walleij description: 121*7335631fSLinus Walleij The first cell indicates which output clock we are using, 122*7335631fSLinus Walleij possible values are 0 (CLKOUT1) and 1 (CLKOUT2). 123*7335631fSLinus Walleij The second cell indicates which clock we want to use as source, 124*7335631fSLinus Walleij possible values are 0 thru 7, see the defines for the different 125*7335631fSLinus Walleij source clocks. 126*7335631fSLinus Walleij The third cell is a divider, legal values are 1 thru 63. 127*7335631fSLinus Walleij const: 3 128*7335631fSLinus Walleij 129*7335631fSLinus Walleij additionalProperties: false 130*7335631fSLinus Walleij 131f2b883bbSLinus Walleijrequired: 132f2b883bbSLinus Walleij - compatible 133f2b883bbSLinus Walleij - reg 134f2b883bbSLinus Walleij - prcmu-clock 135f2b883bbSLinus Walleij - prcc-periph-clock 136f2b883bbSLinus Walleij - prcc-kernel-clock 137f2b883bbSLinus Walleij - rtc32k-clock 138f2b883bbSLinus Walleij - smp-twd-clock 139f2b883bbSLinus Walleij 140f2b883bbSLinus WalleijadditionalProperties: false 141*7335631fSLinus Walleij 142*7335631fSLinus Walleijexamples: 143*7335631fSLinus Walleij - | 144*7335631fSLinus Walleij #include <dt-bindings/clock/ste-db8500-clkout.h> 145*7335631fSLinus Walleij clocks@8012 { 146*7335631fSLinus Walleij compatible = "stericsson,u8500-clks"; 147*7335631fSLinus Walleij reg = <0x8012f000 0x1000>, <0x8011f000 0x1000>, 148*7335631fSLinus Walleij <0x8000f000 0x1000>, <0xa03ff000 0x1000>, 149*7335631fSLinus Walleij <0xa03cf000 0x1000>; 150*7335631fSLinus Walleij 151*7335631fSLinus Walleij prcmu_clk: prcmu-clock { 152*7335631fSLinus Walleij #clock-cells = <1>; 153*7335631fSLinus Walleij }; 154*7335631fSLinus Walleij 155*7335631fSLinus Walleij prcc_pclk: prcc-periph-clock { 156*7335631fSLinus Walleij #clock-cells = <2>; 157*7335631fSLinus Walleij }; 158*7335631fSLinus Walleij 159*7335631fSLinus Walleij prcc_kclk: prcc-kernel-clock { 160*7335631fSLinus Walleij #clock-cells = <2>; 161*7335631fSLinus Walleij }; 162*7335631fSLinus Walleij 163*7335631fSLinus Walleij prcc_reset: prcc-reset-controller { 164*7335631fSLinus Walleij #reset-cells = <2>; 165*7335631fSLinus Walleij }; 166*7335631fSLinus Walleij 167*7335631fSLinus Walleij rtc_clk: rtc32k-clock { 168*7335631fSLinus Walleij #clock-cells = <0>; 169*7335631fSLinus Walleij }; 170*7335631fSLinus Walleij 171*7335631fSLinus Walleij smp_twd_clk: smp-twd-clock { 172*7335631fSLinus Walleij #clock-cells = <0>; 173*7335631fSLinus Walleij }; 174*7335631fSLinus Walleij 175*7335631fSLinus Walleij clkout_clk: clkout-clock { 176*7335631fSLinus Walleij #clock-cells = <3>; 177*7335631fSLinus Walleij }; 178*7335631fSLinus Walleij }; 179