18c2ecf20Sopenharmony_ciBroadcom BCM2835 CPRMAN clocks
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThis binding uses the common clock binding:
48c2ecf20Sopenharmony_ci    Documentation/devicetree/bindings/clock/clock-bindings.txt
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciThe CPRMAN clock controller generates clocks in the audio power domain
78c2ecf20Sopenharmony_ciof the BCM2835.  There is a level of PLLs deriving from an external
88c2ecf20Sopenharmony_cioscillator, a level of PLL dividers that produce channels off of the
98c2ecf20Sopenharmony_cifew PLLs, and a level of mostly-generic clock generators sourcing from
108c2ecf20Sopenharmony_cithe PLL channels.  Most other hardware components source from the
118c2ecf20Sopenharmony_ciclock generators, but a few (like the ARM or HDMI) will source from
128c2ecf20Sopenharmony_cithe PLL dividers directly.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciRequired properties:
158c2ecf20Sopenharmony_ci- compatible:	should be one of the following,
168c2ecf20Sopenharmony_ci	"brcm,bcm2711-cprman"
178c2ecf20Sopenharmony_ci	"brcm,bcm2835-cprman"
188c2ecf20Sopenharmony_ci- #clock-cells:	Should be <1>. The permitted clock-specifier values can be
198c2ecf20Sopenharmony_ci		  found in include/dt-bindings/clock/bcm2835.h
208c2ecf20Sopenharmony_ci- reg:		Specifies base physical address and size of the registers
218c2ecf20Sopenharmony_ci- clocks:	phandles to the parent clocks used as input to the module, in
228c2ecf20Sopenharmony_ci		  the following order:
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci		  - External oscillator
258c2ecf20Sopenharmony_ci		  - DSI0 byte clock
268c2ecf20Sopenharmony_ci		  - DSI0 DDR2 clock
278c2ecf20Sopenharmony_ci		  - DSI0 DDR clock
288c2ecf20Sopenharmony_ci		  - DSI1 byte clock
298c2ecf20Sopenharmony_ci		  - DSI1 DDR2 clock
308c2ecf20Sopenharmony_ci		  - DSI1 DDR clock
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci		  Only external oscillator is required.  The DSI clocks may
338c2ecf20Sopenharmony_ci		  not be present, in which case their children will be
348c2ecf20Sopenharmony_ci		  unusable.
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciExample:
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci	clk_osc: clock@3 {
398c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
408c2ecf20Sopenharmony_ci		reg = <3>;
418c2ecf20Sopenharmony_ci		#clock-cells = <0>;
428c2ecf20Sopenharmony_ci		clock-output-names = "osc";
438c2ecf20Sopenharmony_ci		clock-frequency = <19200000>;
448c2ecf20Sopenharmony_ci	};
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci	clocks: cprman@7e101000 {
478c2ecf20Sopenharmony_ci		compatible = "brcm,bcm2835-cprman";
488c2ecf20Sopenharmony_ci		#clock-cells = <1>;
498c2ecf20Sopenharmony_ci		reg = <0x7e101000 0x2000>;
508c2ecf20Sopenharmony_ci		clocks = <&clk_osc>;
518c2ecf20Sopenharmony_ci	};
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci	i2c0: i2c@7e205000 {
548c2ecf20Sopenharmony_ci		compatible = "brcm,bcm2835-i2c";
558c2ecf20Sopenharmony_ci		reg = <0x7e205000 0x1000>;
568c2ecf20Sopenharmony_ci		interrupts = <2 21>;
578c2ecf20Sopenharmony_ci		clocks = <&clocks BCM2835_CLOCK_VPU>;
588c2ecf20Sopenharmony_ci		#address-cells = <1>;
598c2ecf20Sopenharmony_ci		#size-cells = <0>;
608c2ecf20Sopenharmony_ci	};
61