hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Binding for TI DaVinci Power Sleep Controller (PSC)
 
The PSC provides power management, clock gating and reset functionality. It is
primarily used for clocking.
 
Required properties:
- compatible: shall be one of:
   - "ti,da850-psc0" for PSC0 on DA850/OMAP-L138/AM18XX
   - "ti,da850-psc1" for PSC1 on DA850/OMAP-L138/AM18XX
- reg: physical base address and size of the controller's register area
- #clock-cells: from common clock binding; shall be set to 1
- #power-domain-cells: from generic power domain binding; shall be set to 1.
- clocks: phandles to clocks corresponding to the clock-names property
- clock-names: list of parent clock names - depends on compatible value
   - for "ti,da850-psc0", shall be "pll0_sysclk1", "pll0_sysclk2",
     "pll0_sysclk4", "pll0_sysclk6", "async1"
   - for "ti,da850-psc1", shall be "pll0_sysclk2", "pll0_sysclk4", "async3"
 
Optional properties:
- #reset-cells: from reset binding; shall be set to 1 - only applicable when
  at least one local domain provides a local reset.
 
Consumers:
 
   Clock, power domain and reset consumers shall use the local power domain
   module ID (LPSC) as the index corresponding to the clock cell. Refer to
   the device-specific datasheet to find these numbers. NB: Most local
   domains    only provide a clock/power domain and not a reset.
 
Examples:
 
   psc0: clock-controller@10000 {
       compatible = "ti,da850-psc0";
       reg = <0x10000 0x1000>;
       #clock-cells = <1>;
       #power-domain-cells = <1>;
       #reset-cells = <1>;
       clocks = <&pll0_sysclk 1>, <&pll0_sysclk 2>,
            <&pll0_sysclk 4>, <&pll0_sysclk 6>, <&async1_clk>;
       clock_names = "pll0_sysclk1", "pll0_sysclk2",
                 "pll0_sysclk4", "pll0_sysclk6", "async1";
   };
   psc1: clock-controller@227000 {
       compatible = "ti,da850-psc1";
       reg = <0x227000 0x1000>;
       #clock-cells = <1>;
       #power-domain-cells = <1>;
       clocks = <&pll0_sysclk 2>, <&pll0_sysclk 4>, <&async3_clk>;
       clock_names = "pll0_sysclk2", "pll0_sysclk4", "async3";
   };
 
   /* consumer */
   dsp: dsp@11800000 {
       compatible = "ti,da850-dsp";
       reg = <0x11800000 0x40000>,
             <0x11e00000 0x8000>,
             <0x11f00000 0x8000>,
             <0x01c14044 0x4>,
             <0x01c14174 0x8>;
       reg-names = "l2sram", "l1pram", "l1dram", "host1cfg", "chipsig";
       interrupt-parent = <&intc>;
       interrupts = <28>;
       clocks = <&psc0 15>;
       power-domains = <&psc0 15>;
       resets = <&psc0 15>;
   };
 
Also see:
- Documentation/devicetree/bindings/clock/clock-bindings.txt
- Documentation/devicetree/bindings/power/power-domain.yaml
- Documentation/devicetree/bindings/reset/reset.txt