Merge branch 'drm-tda9950-fixes' of git://git.armlinux.org.uk/~rmk/linux-arm into...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / clock / st,stm32mp1-rcc.txt
1 STMicroelectronics STM32 Peripheral Reset Clock Controller
2 ==========================================================
3
4 The RCC IP is both a reset and a clock controller.
5
6 RCC makes also power management (resume/supend and wakeup interrupt).
7
8 Please also refer to reset.txt for common reset controller binding usage.
9
10 Please also refer to clock-bindings.txt for common clock controller
11 binding usage.
12
13
14 Required properties:
15 - compatible: "st,stm32mp1-rcc", "syscon"
16 - reg: should be register base and length as documented in the datasheet
17 - #clock-cells: 1, device nodes should specify the clock in their
18   "clocks" property, containing a phandle to the clock device node,
19   an index specifying the clock to use.
20 - #reset-cells: Shall be 1
21 - interrupts: Should contain a general interrupt line and a interrupt line
22   to the wake-up of processor (CSTOP).
23
24 Example:
25         rcc: rcc@50000000 {
26                 compatible = "st,stm32mp1-rcc", "syscon";
27                 reg = <0x50000000 0x1000>;
28                 #clock-cells = <1>;
29                 #reset-cells = <1>;
30                 interrupts = <GIC_SPI 5 IRQ_TYPE_NONE>,
31                              <GIC_SPI 145 IRQ_TYPE_NONE>;
32         };
33
34 Specifying clocks
35 =================
36
37 All available clocks are defined as preprocessor macros in
38 dt-bindings/clock/stm32mp1-clks.h header and can be used in device
39 tree sources.
40
41 Specifying softreset control of devices
42 =======================================
43
44 Device nodes should specify the reset channel required in their "resets"
45 property, containing a phandle to the reset device node and an index specifying
46 which channel to use.
47 The index is the bit number within the RCC registers bank, starting from RCC
48 base address.
49 It is calculated as: index = register_offset / 4 * 32 + bit_offset.
50 Where bit_offset is the bit offset within the register.
51
52 For example on STM32MP1, for LTDC reset:
53  ltdc = APB4_RSTSETR_offset / 4 * 32 + LTDC_bit_offset
54       = 0x180 / 4 * 32 + 0 = 3072
55
56 The list of valid indices for STM32MP1 is available in:
57 include/dt-bindings/reset-controller/stm32mp1-resets.h
58
59 This file implements defines like:
60 #define LTDC_R  3072