162306a36Sopenharmony_ciBroadcom Kona Family Clocks 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciThis binding is associated with Broadcom SoCs having "Kona" style 462306a36Sopenharmony_ciclock control units (CCUs). A CCU is a clock provider that manages 562306a36Sopenharmony_cia set of clock signals. Each CCU is represented by a node in the 662306a36Sopenharmony_cidevice tree. 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciThis binding uses the common clock binding: 962306a36Sopenharmony_ci Documentation/devicetree/bindings/clock/clock-bindings.txt 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciRequired properties: 1262306a36Sopenharmony_ci- compatible 1362306a36Sopenharmony_ci Shall have a value of the form "brcm,<model>-<which>-ccu", 1462306a36Sopenharmony_ci where <model> is a Broadcom SoC model number and <which> is 1562306a36Sopenharmony_ci the name of a defined CCU. For example: 1662306a36Sopenharmony_ci "brcm,bcm11351-root-ccu" 1762306a36Sopenharmony_ci The compatible strings used for each supported SoC family 1862306a36Sopenharmony_ci are defined below. 1962306a36Sopenharmony_ci- reg 2062306a36Sopenharmony_ci Shall define the base and range of the address space 2162306a36Sopenharmony_ci containing clock control registers 2262306a36Sopenharmony_ci- #clock-cells 2362306a36Sopenharmony_ci Shall have value <1>. The permitted clock-specifier values 2462306a36Sopenharmony_ci are defined below. 2562306a36Sopenharmony_ci- clock-output-names 2662306a36Sopenharmony_ci Shall be an ordered list of strings defining the names of 2762306a36Sopenharmony_ci the clocks provided by the CCU. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciDevice tree example: 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci slave_ccu: slave_ccu { 3262306a36Sopenharmony_ci compatible = "brcm,bcm11351-slave-ccu"; 3362306a36Sopenharmony_ci reg = <0x3e011000 0x0f00>; 3462306a36Sopenharmony_ci #clock-cells = <1>; 3562306a36Sopenharmony_ci clock-output-names = "uartb", 3662306a36Sopenharmony_ci "uartb2", 3762306a36Sopenharmony_ci "uartb3", 3862306a36Sopenharmony_ci "uartb4"; 3962306a36Sopenharmony_ci }; 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci ref_crystal_clk: ref_crystal { 4262306a36Sopenharmony_ci #clock-cells = <0>; 4362306a36Sopenharmony_ci compatible = "fixed-clock"; 4462306a36Sopenharmony_ci clock-frequency = <26000000>; 4562306a36Sopenharmony_ci }; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci uart@3e002000 { 4862306a36Sopenharmony_ci compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; 4962306a36Sopenharmony_ci reg = <0x3e002000 0x1000>; 5062306a36Sopenharmony_ci clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>; 5162306a36Sopenharmony_ci interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 5262306a36Sopenharmony_ci reg-shift = <2>; 5362306a36Sopenharmony_ci reg-io-width = <4>; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ciBCM281XX family 5762306a36Sopenharmony_ci--------------- 5862306a36Sopenharmony_ciCCU compatible string values for SoCs in the BCM281XX family are: 5962306a36Sopenharmony_ci "brcm,bcm11351-root-ccu" 6062306a36Sopenharmony_ci "brcm,bcm11351-aon-ccu" 6162306a36Sopenharmony_ci "brcm,bcm11351-hub-ccu" 6262306a36Sopenharmony_ci "brcm,bcm11351-master-ccu" 6362306a36Sopenharmony_ci "brcm,bcm11351-slave-ccu" 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciThe following table defines the set of CCUs and clock specifiers for 6662306a36Sopenharmony_ciBCM281XX family clocks. When a clock consumer references a clocks, 6762306a36Sopenharmony_ciits symbolic specifier (rather than its numeric index value) should 6862306a36Sopenharmony_cibe used. These specifiers are defined in: 6962306a36Sopenharmony_ci "include/dt-bindings/clock/bcm281xx.h" 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci CCU Clock Type Index Specifier 7262306a36Sopenharmony_ci --- ----- ---- ----- --------- 7362306a36Sopenharmony_ci root frac_1m peri 0 BCM281XX_ROOT_CCU_FRAC_1M 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci aon hub_timer peri 0 BCM281XX_AON_CCU_HUB_TIMER 7662306a36Sopenharmony_ci aon pmu_bsc peri 1 BCM281XX_AON_CCU_PMU_BSC 7762306a36Sopenharmony_ci aon pmu_bsc_var peri 2 BCM281XX_AON_CCU_PMU_BSC_VAR 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci hub tmon_1m peri 0 BCM281XX_HUB_CCU_TMON_1M 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci master sdio1 peri 0 BCM281XX_MASTER_CCU_SDIO1 8262306a36Sopenharmony_ci master sdio2 peri 1 BCM281XX_MASTER_CCU_SDIO2 8362306a36Sopenharmony_ci master sdio3 peri 2 BCM281XX_MASTER_CCU_SDIO3 8462306a36Sopenharmony_ci master sdio4 peri 3 BCM281XX_MASTER_CCU_SDIO4 8562306a36Sopenharmony_ci master dmac peri 4 BCM281XX_MASTER_CCU_DMAC 8662306a36Sopenharmony_ci master usb_ic peri 5 BCM281XX_MASTER_CCU_USB_IC 8762306a36Sopenharmony_ci master hsic2_48m peri 6 BCM281XX_MASTER_CCU_HSIC_48M 8862306a36Sopenharmony_ci master hsic2_12m peri 7 BCM281XX_MASTER_CCU_HSIC_12M 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci slave uartb peri 0 BCM281XX_SLAVE_CCU_UARTB 9162306a36Sopenharmony_ci slave uartb2 peri 1 BCM281XX_SLAVE_CCU_UARTB2 9262306a36Sopenharmony_ci slave uartb3 peri 2 BCM281XX_SLAVE_CCU_UARTB3 9362306a36Sopenharmony_ci slave uartb4 peri 3 BCM281XX_SLAVE_CCU_UARTB4 9462306a36Sopenharmony_ci slave ssp0 peri 4 BCM281XX_SLAVE_CCU_SSP0 9562306a36Sopenharmony_ci slave ssp2 peri 5 BCM281XX_SLAVE_CCU_SSP2 9662306a36Sopenharmony_ci slave bsc1 peri 6 BCM281XX_SLAVE_CCU_BSC1 9762306a36Sopenharmony_ci slave bsc2 peri 7 BCM281XX_SLAVE_CCU_BSC2 9862306a36Sopenharmony_ci slave bsc3 peri 8 BCM281XX_SLAVE_CCU_BSC3 9962306a36Sopenharmony_ci slave pwm peri 9 BCM281XX_SLAVE_CCU_PWM 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ciBCM21664 family 10362306a36Sopenharmony_ci--------------- 10462306a36Sopenharmony_ciCCU compatible string values for SoCs in the BCM21664 family are: 10562306a36Sopenharmony_ci "brcm,bcm21664-root-ccu" 10662306a36Sopenharmony_ci "brcm,bcm21664-aon-ccu" 10762306a36Sopenharmony_ci "brcm,bcm21664-master-ccu" 10862306a36Sopenharmony_ci "brcm,bcm21664-slave-ccu" 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ciThe following table defines the set of CCUs and clock specifiers for 11162306a36Sopenharmony_ciBCM21664 family clocks. When a clock consumer references a clocks, 11262306a36Sopenharmony_ciits symbolic specifier (rather than its numeric index value) should 11362306a36Sopenharmony_cibe used. These specifiers are defined in: 11462306a36Sopenharmony_ci "include/dt-bindings/clock/bcm21664.h" 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci CCU Clock Type Index Specifier 11762306a36Sopenharmony_ci --- ----- ---- ----- --------- 11862306a36Sopenharmony_ci root frac_1m peri 0 BCM21664_ROOT_CCU_FRAC_1M 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci aon hub_timer peri 0 BCM21664_AON_CCU_HUB_TIMER 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci master sdio1 peri 0 BCM21664_MASTER_CCU_SDIO1 12362306a36Sopenharmony_ci master sdio2 peri 1 BCM21664_MASTER_CCU_SDIO2 12462306a36Sopenharmony_ci master sdio3 peri 2 BCM21664_MASTER_CCU_SDIO3 12562306a36Sopenharmony_ci master sdio4 peri 3 BCM21664_MASTER_CCU_SDIO4 12662306a36Sopenharmony_ci master sdio1_sleep peri 4 BCM21664_MASTER_CCU_SDIO1_SLEEP 12762306a36Sopenharmony_ci master sdio2_sleep peri 5 BCM21664_MASTER_CCU_SDIO2_SLEEP 12862306a36Sopenharmony_ci master sdio3_sleep peri 6 BCM21664_MASTER_CCU_SDIO3_SLEEP 12962306a36Sopenharmony_ci master sdio4_sleep peri 7 BCM21664_MASTER_CCU_SDIO4_SLEEP 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci slave uartb peri 0 BCM21664_SLAVE_CCU_UARTB 13262306a36Sopenharmony_ci slave uartb2 peri 1 BCM21664_SLAVE_CCU_UARTB2 13362306a36Sopenharmony_ci slave uartb3 peri 2 BCM21664_SLAVE_CCU_UARTB3 13462306a36Sopenharmony_ci slave uartb4 peri 3 BCM21664_SLAVE_CCU_UARTB4 13562306a36Sopenharmony_ci slave bsc1 peri 4 BCM21664_SLAVE_CCU_BSC1 13662306a36Sopenharmony_ci slave bsc2 peri 5 BCM21664_SLAVE_CCU_BSC2 13762306a36Sopenharmony_ci slave bsc3 peri 6 BCM21664_SLAVE_CCU_BSC3 13862306a36Sopenharmony_ci slave bsc4 peri 7 BCM21664_SLAVE_CCU_BSC4 139