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