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