18c2ecf20Sopenharmony_ciBroadcom Kona Family Clocks 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThis binding is associated with Broadcom SoCs having "Kona" style 48c2ecf20Sopenharmony_ciclock control units (CCUs). A CCU is a clock provider that manages 58c2ecf20Sopenharmony_cia set of clock signals. Each CCU is represented by a node in the 68c2ecf20Sopenharmony_cidevice tree. 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ciThis binding uses the common clock binding: 98c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/clock/clock-bindings.txt 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciRequired properties: 128c2ecf20Sopenharmony_ci- compatible 138c2ecf20Sopenharmony_ci Shall have a value of the form "brcm,<model>-<which>-ccu", 148c2ecf20Sopenharmony_ci where <model> is a Broadcom SoC model number and <which> is 158c2ecf20Sopenharmony_ci the name of a defined CCU. For example: 168c2ecf20Sopenharmony_ci "brcm,bcm11351-root-ccu" 178c2ecf20Sopenharmony_ci The compatible strings used for each supported SoC family 188c2ecf20Sopenharmony_ci are defined below. 198c2ecf20Sopenharmony_ci- reg 208c2ecf20Sopenharmony_ci Shall define the base and range of the address space 218c2ecf20Sopenharmony_ci containing clock control registers 228c2ecf20Sopenharmony_ci- #clock-cells 238c2ecf20Sopenharmony_ci Shall have value <1>. The permitted clock-specifier values 248c2ecf20Sopenharmony_ci are defined below. 258c2ecf20Sopenharmony_ci- clock-output-names 268c2ecf20Sopenharmony_ci Shall be an ordered list of strings defining the names of 278c2ecf20Sopenharmony_ci the clocks provided by the CCU. 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciDevice tree example: 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci slave_ccu: slave_ccu { 328c2ecf20Sopenharmony_ci compatible = "brcm,bcm11351-slave-ccu"; 338c2ecf20Sopenharmony_ci reg = <0x3e011000 0x0f00>; 348c2ecf20Sopenharmony_ci #clock-cells = <1>; 358c2ecf20Sopenharmony_ci clock-output-names = "uartb", 368c2ecf20Sopenharmony_ci "uartb2", 378c2ecf20Sopenharmony_ci "uartb3", 388c2ecf20Sopenharmony_ci "uartb4"; 398c2ecf20Sopenharmony_ci }; 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci ref_crystal_clk: ref_crystal { 428c2ecf20Sopenharmony_ci #clock-cells = <0>; 438c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 448c2ecf20Sopenharmony_ci clock-frequency = <26000000>; 458c2ecf20Sopenharmony_ci }; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci uart@3e002000 { 488c2ecf20Sopenharmony_ci compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; 498c2ecf20Sopenharmony_ci reg = <0x3e002000 0x1000>; 508c2ecf20Sopenharmony_ci clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>; 518c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 528c2ecf20Sopenharmony_ci reg-shift = <2>; 538c2ecf20Sopenharmony_ci reg-io-width = <4>; 548c2ecf20Sopenharmony_ci }; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ciBCM281XX family 578c2ecf20Sopenharmony_ci--------------- 588c2ecf20Sopenharmony_ciCCU compatible string values for SoCs in the BCM281XX family are: 598c2ecf20Sopenharmony_ci "brcm,bcm11351-root-ccu" 608c2ecf20Sopenharmony_ci "brcm,bcm11351-aon-ccu" 618c2ecf20Sopenharmony_ci "brcm,bcm11351-hub-ccu" 628c2ecf20Sopenharmony_ci "brcm,bcm11351-master-ccu" 638c2ecf20Sopenharmony_ci "brcm,bcm11351-slave-ccu" 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciThe following table defines the set of CCUs and clock specifiers for 668c2ecf20Sopenharmony_ciBCM281XX family clocks. When a clock consumer references a clocks, 678c2ecf20Sopenharmony_ciits symbolic specifier (rather than its numeric index value) should 688c2ecf20Sopenharmony_cibe used. These specifiers are defined in: 698c2ecf20Sopenharmony_ci "include/dt-bindings/clock/bcm281xx.h" 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci CCU Clock Type Index Specifier 728c2ecf20Sopenharmony_ci --- ----- ---- ----- --------- 738c2ecf20Sopenharmony_ci root frac_1m peri 0 BCM281XX_ROOT_CCU_FRAC_1M 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci aon hub_timer peri 0 BCM281XX_AON_CCU_HUB_TIMER 768c2ecf20Sopenharmony_ci aon pmu_bsc peri 1 BCM281XX_AON_CCU_PMU_BSC 778c2ecf20Sopenharmony_ci aon pmu_bsc_var peri 2 BCM281XX_AON_CCU_PMU_BSC_VAR 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci hub tmon_1m peri 0 BCM281XX_HUB_CCU_TMON_1M 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci master sdio1 peri 0 BCM281XX_MASTER_CCU_SDIO1 828c2ecf20Sopenharmony_ci master sdio2 peri 1 BCM281XX_MASTER_CCU_SDIO2 838c2ecf20Sopenharmony_ci master sdio3 peri 2 BCM281XX_MASTER_CCU_SDIO3 848c2ecf20Sopenharmony_ci master sdio4 peri 3 BCM281XX_MASTER_CCU_SDIO4 858c2ecf20Sopenharmony_ci master dmac peri 4 BCM281XX_MASTER_CCU_DMAC 868c2ecf20Sopenharmony_ci master usb_ic peri 5 BCM281XX_MASTER_CCU_USB_IC 878c2ecf20Sopenharmony_ci master hsic2_48m peri 6 BCM281XX_MASTER_CCU_HSIC_48M 888c2ecf20Sopenharmony_ci master hsic2_12m peri 7 BCM281XX_MASTER_CCU_HSIC_12M 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci slave uartb peri 0 BCM281XX_SLAVE_CCU_UARTB 918c2ecf20Sopenharmony_ci slave uartb2 peri 1 BCM281XX_SLAVE_CCU_UARTB2 928c2ecf20Sopenharmony_ci slave uartb3 peri 2 BCM281XX_SLAVE_CCU_UARTB3 938c2ecf20Sopenharmony_ci slave uartb4 peri 3 BCM281XX_SLAVE_CCU_UARTB4 948c2ecf20Sopenharmony_ci slave ssp0 peri 4 BCM281XX_SLAVE_CCU_SSP0 958c2ecf20Sopenharmony_ci slave ssp2 peri 5 BCM281XX_SLAVE_CCU_SSP2 968c2ecf20Sopenharmony_ci slave bsc1 peri 6 BCM281XX_SLAVE_CCU_BSC1 978c2ecf20Sopenharmony_ci slave bsc2 peri 7 BCM281XX_SLAVE_CCU_BSC2 988c2ecf20Sopenharmony_ci slave bsc3 peri 8 BCM281XX_SLAVE_CCU_BSC3 998c2ecf20Sopenharmony_ci slave pwm peri 9 BCM281XX_SLAVE_CCU_PWM 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ciBCM21664 family 1038c2ecf20Sopenharmony_ci--------------- 1048c2ecf20Sopenharmony_ciCCU compatible string values for SoCs in the BCM21664 family are: 1058c2ecf20Sopenharmony_ci "brcm,bcm21664-root-ccu" 1068c2ecf20Sopenharmony_ci "brcm,bcm21664-aon-ccu" 1078c2ecf20Sopenharmony_ci "brcm,bcm21664-master-ccu" 1088c2ecf20Sopenharmony_ci "brcm,bcm21664-slave-ccu" 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ciThe following table defines the set of CCUs and clock specifiers for 1118c2ecf20Sopenharmony_ciBCM21664 family clocks. When a clock consumer references a clocks, 1128c2ecf20Sopenharmony_ciits symbolic specifier (rather than its numeric index value) should 1138c2ecf20Sopenharmony_cibe used. These specifiers are defined in: 1148c2ecf20Sopenharmony_ci "include/dt-bindings/clock/bcm21664.h" 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci CCU Clock Type Index Specifier 1178c2ecf20Sopenharmony_ci --- ----- ---- ----- --------- 1188c2ecf20Sopenharmony_ci root frac_1m peri 0 BCM21664_ROOT_CCU_FRAC_1M 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci aon hub_timer peri 0 BCM21664_AON_CCU_HUB_TIMER 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci master sdio1 peri 0 BCM21664_MASTER_CCU_SDIO1 1238c2ecf20Sopenharmony_ci master sdio2 peri 1 BCM21664_MASTER_CCU_SDIO2 1248c2ecf20Sopenharmony_ci master sdio3 peri 2 BCM21664_MASTER_CCU_SDIO3 1258c2ecf20Sopenharmony_ci master sdio4 peri 3 BCM21664_MASTER_CCU_SDIO4 1268c2ecf20Sopenharmony_ci master sdio1_sleep peri 4 BCM21664_MASTER_CCU_SDIO1_SLEEP 1278c2ecf20Sopenharmony_ci master sdio2_sleep peri 5 BCM21664_MASTER_CCU_SDIO2_SLEEP 1288c2ecf20Sopenharmony_ci master sdio3_sleep peri 6 BCM21664_MASTER_CCU_SDIO3_SLEEP 1298c2ecf20Sopenharmony_ci master sdio4_sleep peri 7 BCM21664_MASTER_CCU_SDIO4_SLEEP 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci slave uartb peri 0 BCM21664_SLAVE_CCU_UARTB 1328c2ecf20Sopenharmony_ci slave uartb2 peri 1 BCM21664_SLAVE_CCU_UARTB2 1338c2ecf20Sopenharmony_ci slave uartb3 peri 2 BCM21664_SLAVE_CCU_UARTB3 1348c2ecf20Sopenharmony_ci slave uartb4 peri 3 BCM21664_SLAVE_CCU_UARTB4 1358c2ecf20Sopenharmony_ci slave bsc1 peri 4 BCM21664_SLAVE_CCU_BSC1 1368c2ecf20Sopenharmony_ci slave bsc2 peri 5 BCM21664_SLAVE_CCU_BSC2 1378c2ecf20Sopenharmony_ci slave bsc3 peri 6 BCM21664_SLAVE_CCU_BSC3 1388c2ecf20Sopenharmony_ci slave bsc4 peri 7 BCM21664_SLAVE_CCU_BSC4 139