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