xref: /src/sys/contrib/device-tree/Bindings/clock/brcm,bcm2835-cprman.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1235ad806SAndrew TurnerBroadcom BCM2835 CPRMAN clocks
2235ad806SAndrew Turner
3235ad806SAndrew TurnerThis binding uses the common clock binding:
4235ad806SAndrew Turner    Documentation/devicetree/bindings/clock/clock-bindings.txt
5235ad806SAndrew Turner
6235ad806SAndrew TurnerThe CPRMAN clock controller generates clocks in the audio power domain
7235ad806SAndrew Turnerof the BCM2835.  There is a level of PLLs deriving from an external
8235ad806SAndrew Turneroscillator, a level of PLL dividers that produce channels off of the
9235ad806SAndrew Turnerfew PLLs, and a level of mostly-generic clock generators sourcing from
10235ad806SAndrew Turnerthe PLL channels.  Most other hardware components source from the
11235ad806SAndrew Turnerclock generators, but a few (like the ARM or HDMI) will source from
12235ad806SAndrew Turnerthe PLL dividers directly.
13235ad806SAndrew Turner
14235ad806SAndrew TurnerRequired properties:
15c3f1cfc7SEmmanuel Vadot- compatible:	should be one of the following,
16c3f1cfc7SEmmanuel Vadot	"brcm,bcm2711-cprman"
17c3f1cfc7SEmmanuel Vadot	"brcm,bcm2835-cprman"
18235ad806SAndrew Turner- #clock-cells:	Should be <1>. The permitted clock-specifier values can be
19235ad806SAndrew Turner		  found in include/dt-bindings/clock/bcm2835.h
20235ad806SAndrew Turner- reg:		Specifies base physical address and size of the registers
218fdc67f7SEmmanuel Vadot- clocks:	phandles to the parent clocks used as input to the module, in
228fdc67f7SEmmanuel Vadot		  the following order:
238fdc67f7SEmmanuel Vadot
248fdc67f7SEmmanuel Vadot		  - External oscillator
258fdc67f7SEmmanuel Vadot		  - DSI0 byte clock
268fdc67f7SEmmanuel Vadot		  - DSI0 DDR2 clock
278fdc67f7SEmmanuel Vadot		  - DSI0 DDR clock
288fdc67f7SEmmanuel Vadot		  - DSI1 byte clock
298fdc67f7SEmmanuel Vadot		  - DSI1 DDR2 clock
308fdc67f7SEmmanuel Vadot		  - DSI1 DDR clock
318fdc67f7SEmmanuel Vadot
328fdc67f7SEmmanuel Vadot		  Only external oscillator is required.  The DSI clocks may
338fdc67f7SEmmanuel Vadot		  not be present, in which case their children will be
348fdc67f7SEmmanuel Vadot		  unusable.
35235ad806SAndrew Turner
36235ad806SAndrew TurnerExample:
37235ad806SAndrew Turner
38235ad806SAndrew Turner	clk_osc: clock@3 {
39235ad806SAndrew Turner		compatible = "fixed-clock";
40235ad806SAndrew Turner		reg = <3>;
41235ad806SAndrew Turner		#clock-cells = <0>;
42235ad806SAndrew Turner		clock-output-names = "osc";
43235ad806SAndrew Turner		clock-frequency = <19200000>;
44235ad806SAndrew Turner	};
45235ad806SAndrew Turner
46235ad806SAndrew Turner	clocks: cprman@7e101000 {
47235ad806SAndrew Turner		compatible = "brcm,bcm2835-cprman";
48235ad806SAndrew Turner		#clock-cells = <1>;
49235ad806SAndrew Turner		reg = <0x7e101000 0x2000>;
50235ad806SAndrew Turner		clocks = <&clk_osc>;
51235ad806SAndrew Turner	};
52235ad806SAndrew Turner
53235ad806SAndrew Turner	i2c0: i2c@7e205000 {
54235ad806SAndrew Turner		compatible = "brcm,bcm2835-i2c";
55235ad806SAndrew Turner		reg = <0x7e205000 0x1000>;
56235ad806SAndrew Turner		interrupts = <2 21>;
57235ad806SAndrew Turner		clocks = <&clocks BCM2835_CLOCK_VPU>;
58235ad806SAndrew Turner		#address-cells = <1>;
59235ad806SAndrew Turner		#size-cells = <0>;
60235ad806SAndrew Turner	};
61