162306a36Sopenharmony_ciBroadcom BCM2835 CPRMAN clocks
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciThis binding uses the common clock binding:
462306a36Sopenharmony_ci    Documentation/devicetree/bindings/clock/clock-bindings.txt
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciThe CPRMAN clock controller generates clocks in the audio power domain
762306a36Sopenharmony_ciof the BCM2835.  There is a level of PLLs deriving from an external
862306a36Sopenharmony_cioscillator, a level of PLL dividers that produce channels off of the
962306a36Sopenharmony_cifew PLLs, and a level of mostly-generic clock generators sourcing from
1062306a36Sopenharmony_cithe PLL channels.  Most other hardware components source from the
1162306a36Sopenharmony_ciclock generators, but a few (like the ARM or HDMI) will source from
1262306a36Sopenharmony_cithe PLL dividers directly.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciRequired properties:
1562306a36Sopenharmony_ci- compatible:	should be one of the following,
1662306a36Sopenharmony_ci	"brcm,bcm2711-cprman"
1762306a36Sopenharmony_ci	"brcm,bcm2835-cprman"
1862306a36Sopenharmony_ci- #clock-cells:	Should be <1>. The permitted clock-specifier values can be
1962306a36Sopenharmony_ci		  found in include/dt-bindings/clock/bcm2835.h
2062306a36Sopenharmony_ci- reg:		Specifies base physical address and size of the registers
2162306a36Sopenharmony_ci- clocks:	phandles to the parent clocks used as input to the module, in
2262306a36Sopenharmony_ci		  the following order:
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci		  - External oscillator
2562306a36Sopenharmony_ci		  - DSI0 byte clock
2662306a36Sopenharmony_ci		  - DSI0 DDR2 clock
2762306a36Sopenharmony_ci		  - DSI0 DDR clock
2862306a36Sopenharmony_ci		  - DSI1 byte clock
2962306a36Sopenharmony_ci		  - DSI1 DDR2 clock
3062306a36Sopenharmony_ci		  - DSI1 DDR clock
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci		  Only external oscillator is required.  The DSI clocks may
3362306a36Sopenharmony_ci		  not be present, in which case their children will be
3462306a36Sopenharmony_ci		  unusable.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciExample:
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	clk_osc: clock@3 {
3962306a36Sopenharmony_ci		compatible = "fixed-clock";
4062306a36Sopenharmony_ci		reg = <3>;
4162306a36Sopenharmony_ci		#clock-cells = <0>;
4262306a36Sopenharmony_ci		clock-output-names = "osc";
4362306a36Sopenharmony_ci		clock-frequency = <19200000>;
4462306a36Sopenharmony_ci	};
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci	clocks: cprman@7e101000 {
4762306a36Sopenharmony_ci		compatible = "brcm,bcm2835-cprman";
4862306a36Sopenharmony_ci		#clock-cells = <1>;
4962306a36Sopenharmony_ci		reg = <0x7e101000 0x2000>;
5062306a36Sopenharmony_ci		clocks = <&clk_osc>;
5162306a36Sopenharmony_ci	};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	i2c0: i2c@7e205000 {
5462306a36Sopenharmony_ci		compatible = "brcm,bcm2835-i2c";
5562306a36Sopenharmony_ci		reg = <0x7e205000 0x1000>;
5662306a36Sopenharmony_ci		interrupts = <2 21>;
5762306a36Sopenharmony_ci		clocks = <&clocks BCM2835_CLOCK_VPU>;
5862306a36Sopenharmony_ci		#address-cells = <1>;
5962306a36Sopenharmony_ci		#size-cells = <0>;
6062306a36Sopenharmony_ci	};
61