diff options
author | Eric Anholt <eric@anholt.net> | 2015-09-28 17:22:03 -0400 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2015-10-01 20:12:14 -0400 |
commit | 2c74b5399de730e3155dc3d5a8ad041fba5e93f4 (patch) | |
tree | 00b711ac83e9dee9bc08c006e02688eee0ddd1a8 | |
parent | 4f61d8e220c110de90a02736ceb55e1e398d6be7 (diff) |
clk: bcm2835: Add binding docs for the new platform clock driver.
Previously we've only supported a few fixed clocks based on
assumptions about how the firmware sets up the clocks, but this
binding will let us control the actual (audio power domain) clock
manager.
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Lee Jones <lee@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
-rw-r--r-- | Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt | 45 | ||||
-rw-r--r-- | include/dt-bindings/clock/bcm2835.h | 47 |
2 files changed, 92 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt b/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt new file mode 100644 index 000000000000..e56a1df3a9d3 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt | |||
@@ -0,0 +1,45 @@ | |||
1 | Broadcom BCM2835 CPRMAN clocks | ||
2 | |||
3 | This binding uses the common clock binding: | ||
4 | Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
5 | |||
6 | The CPRMAN clock controller generates clocks in the audio power domain | ||
7 | of the BCM2835. There is a level of PLLs deriving from an external | ||
8 | oscillator, a level of PLL dividers that produce channels off of the | ||
9 | few PLLs, and a level of mostly-generic clock generators sourcing from | ||
10 | the PLL channels. Most other hardware components source from the | ||
11 | clock generators, but a few (like the ARM or HDMI) will source from | ||
12 | the PLL dividers directly. | ||
13 | |||
14 | Required properties: | ||
15 | - compatible: Should be "brcm,bcm2835-cprman" | ||
16 | - #clock-cells: Should be <1>. The permitted clock-specifier values can be | ||
17 | found in include/dt-bindings/clock/bcm2835.h | ||
18 | - reg: Specifies base physical address and size of the registers | ||
19 | - clocks: The external oscillator clock phandle | ||
20 | |||
21 | Example: | ||
22 | |||
23 | clk_osc: clock@3 { | ||
24 | compatible = "fixed-clock"; | ||
25 | reg = <3>; | ||
26 | #clock-cells = <0>; | ||
27 | clock-output-names = "osc"; | ||
28 | clock-frequency = <19200000>; | ||
29 | }; | ||
30 | |||
31 | clocks: cprman@7e101000 { | ||
32 | compatible = "brcm,bcm2835-cprman"; | ||
33 | #clock-cells = <1>; | ||
34 | reg = <0x7e101000 0x2000>; | ||
35 | clocks = <&clk_osc>; | ||
36 | }; | ||
37 | |||
38 | i2c0: i2c@7e205000 { | ||
39 | compatible = "brcm,bcm2835-i2c"; | ||
40 | reg = <0x7e205000 0x1000>; | ||
41 | interrupts = <2 21>; | ||
42 | clocks = <&clocks BCM2835_CLOCK_VPU>; | ||
43 | #address-cells = <1>; | ||
44 | #size-cells = <0>; | ||
45 | }; | ||
diff --git a/include/dt-bindings/clock/bcm2835.h b/include/dt-bindings/clock/bcm2835.h new file mode 100644 index 000000000000..d323efac7edf --- /dev/null +++ b/include/dt-bindings/clock/bcm2835.h | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2015 Broadcom Corporation | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License as | ||
6 | * published by the Free Software Foundation version 2. | ||
7 | * | ||
8 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
9 | * kind, whether express or implied; without even the implied warranty | ||
10 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | #define BCM2835_PLLA 0 | ||
15 | #define BCM2835_PLLB 1 | ||
16 | #define BCM2835_PLLC 2 | ||
17 | #define BCM2835_PLLD 3 | ||
18 | #define BCM2835_PLLH 4 | ||
19 | |||
20 | #define BCM2835_PLLA_CORE 5 | ||
21 | #define BCM2835_PLLA_PER 6 | ||
22 | #define BCM2835_PLLB_ARM 7 | ||
23 | #define BCM2835_PLLC_CORE0 8 | ||
24 | #define BCM2835_PLLC_CORE1 9 | ||
25 | #define BCM2835_PLLC_CORE2 10 | ||
26 | #define BCM2835_PLLC_PER 11 | ||
27 | #define BCM2835_PLLD_CORE 12 | ||
28 | #define BCM2835_PLLD_PER 13 | ||
29 | #define BCM2835_PLLH_RCAL 14 | ||
30 | #define BCM2835_PLLH_AUX 15 | ||
31 | #define BCM2835_PLLH_PIX 16 | ||
32 | |||
33 | #define BCM2835_CLOCK_TIMER 17 | ||
34 | #define BCM2835_CLOCK_OTP 18 | ||
35 | #define BCM2835_CLOCK_UART 19 | ||
36 | #define BCM2835_CLOCK_VPU 20 | ||
37 | #define BCM2835_CLOCK_V3D 21 | ||
38 | #define BCM2835_CLOCK_ISP 22 | ||
39 | #define BCM2835_CLOCK_H264 23 | ||
40 | #define BCM2835_CLOCK_VEC 24 | ||
41 | #define BCM2835_CLOCK_HSM 25 | ||
42 | #define BCM2835_CLOCK_SDRAM 26 | ||
43 | #define BCM2835_CLOCK_TSENS 27 | ||
44 | #define BCM2835_CLOCK_EMMC 28 | ||
45 | #define BCM2835_CLOCK_PERI_IMAGE 29 | ||
46 | |||
47 | #define BCM2835_CLOCK_COUNT 30 | ||