| Broadcom iProc Family Clocks |
| |
| This binding uses the common clock binding: |
| Documentation/devicetree/bindings/clock/clock-bindings.txt |
| |
| The iProc clock controller manages clocks that are common to the iProc family. |
| An SoC from the iProc family may have several PPLs, e.g., ARMPLL, GENPLL, |
| LCPLL0, MIPIPLL, and etc., all derived from an onboard crystal. Each PLL |
| comprises of several leaf clocks |
| |
| Required properties for a PLL and its leaf clocks: |
| |
| - compatible: |
| Should have a value of the form "brcm,<soc>-<pll>". For example, GENPLL on |
| Cygnus has a compatible string of "brcm,cygnus-genpll" |
| |
| - #clock-cells: |
| Have a value of <1> since there are more than 1 leaf clock of a given PLL |
| |
| - reg: |
| Define the base and range of the I/O address space that contain the iProc |
| clock control registers required for the PLL |
| |
| - clocks: |
| The input parent clock phandle for the PLL. For most iProc PLLs, this is an |
| onboard crystal with a fixed rate |
| |
| - clock-output-names: |
| An ordered list of strings defining the names of the clocks |
| |
| Example: |
| |
| osc: oscillator { |
| #clock-cells = <0>; |
| compatible = "fixed-clock"; |
| clock-frequency = <25000000>; |
| }; |
| |
| genpll: genpll { |
| #clock-cells = <1>; |
| compatible = "brcm,cygnus-genpll"; |
| reg = <0x0301d000 0x2c>, <0x0301c020 0x4>; |
| clocks = <&osc>; |
| clock-output-names = "genpll", "axi21", "250mhz", "ihost_sys", |
| "enet_sw", "audio_125", "can"; |
| }; |
| |
| Required properties for ASIU clocks: |
| |
| ASIU clocks are a special case. These clocks are derived directly from the |
| reference clock of the onboard crystal |
| |
| - compatible: |
| Should have a value of the form "brcm,<soc>-asiu-clk". For example, ASIU |
| clocks for Cygnus have a compatible string of "brcm,cygnus-asiu-clk" |
| |
| - #clock-cells: |
| Have a value of <1> since there are more than 1 ASIU clocks |
| |
| - reg: |
| Define the base and range of the I/O address space that contain the iProc |
| clock control registers required for ASIU clocks |
| |
| - clocks: |
| The input parent clock phandle for the ASIU clock, i.e., the onboard |
| crystal |
| |
| - clock-output-names: |
| An ordered list of strings defining the names of the ASIU clocks |
| |
| Example: |
| |
| osc: oscillator { |
| #clock-cells = <0>; |
| compatible = "fixed-clock"; |
| clock-frequency = <25000000>; |
| }; |
| |
| asiu_clks: asiu_clks { |
| #clock-cells = <1>; |
| compatible = "brcm,cygnus-asiu-clk"; |
| reg = <0x0301d048 0xc>, <0x180aa024 0x4>; |
| clocks = <&osc>; |
| clock-output-names = "keypad", "adc/touch", "pwm"; |
| }; |
| |
| Cygnus |
| ------ |
| PLL and leaf clock compatible strings for Cygnus are: |
| "brcm,cygnus-armpll" |
| "brcm,cygnus-genpll" |
| "brcm,cygnus-lcpll0" |
| "brcm,cygnus-mipipll" |
| "brcm,cygnus-asiu-clk" |
| |
| The following table defines the set of PLL/clock index and ID for Cygnus. |
| These clock IDs are defined in: |
| "include/dt-bindings/clock/bcm-cygnus.h" |
| |
| Clock Source (Parent) Index ID |
| --- ----- ----- --------- |
| crystal N/A N/A N/A |
| |
| armpll crystal N/A N/A |
| |
| keypad crystal (ASIU) 0 BCM_CYGNUS_ASIU_KEYPAD_CLK |
| adc/tsc crystal (ASIU) 1 BCM_CYGNUS_ASIU_ADC_CLK |
| pwm crystal (ASIU) 2 BCM_CYGNUS_ASIU_PWM_CLK |
| |
| genpll crystal 0 BCM_CYGNUS_GENPLL |
| axi21 genpll 1 BCM_CYGNUS_GENPLL_AXI21_CLK |
| 250mhz genpll 2 BCM_CYGNUS_GENPLL_250MHZ_CLK |
| ihost_sys genpll 3 BCM_CYGNUS_GENPLL_IHOST_SYS_CLK |
| enet_sw genpll 4 BCM_CYGNUS_GENPLL_ENET_SW_CLK |
| audio_125 genpll 5 BCM_CYGNUS_GENPLL_AUDIO_125_CLK |
| can genpll 6 BCM_CYGNUS_GENPLL_CAN_CLK |
| |
| lcpll0 crystal 0 BCM_CYGNUS_LCPLL0 |
| pcie_phy lcpll0 1 BCM_CYGNUS_LCPLL0_PCIE_PHY_REF_CLK |
| ddr_phy lcpll0 2 BCM_CYGNUS_LCPLL0_DDR_PHY_CLK |
| sdio lcpll0 3 BCM_CYGNUS_LCPLL0_SDIO_CLK |
| usb_phy lcpll0 4 BCM_CYGNUS_LCPLL0_USB_PHY_REF_CLK |
| smart_card lcpll0 5 BCM_CYGNUS_LCPLL0_SMART_CARD_CLK |
| ch5_unused lcpll0 6 BCM_CYGNUS_LCPLL0_CH5_UNUSED |
| |
| mipipll crystal 0 BCM_CYGNUS_MIPIPLL |
| ch0_unused mipipll 1 BCM_CYGNUS_MIPIPLL_CH0_UNUSED |
| ch1_lcd mipipll 2 BCM_CYGNUS_MIPIPLL_CH1_LCD |
| ch2_v3d mipipll 3 BCM_CYGNUS_MIPIPLL_CH2_V3D |
| ch3_unused mipipll 4 BCM_CYGNUS_MIPIPLL_CH3_UNUSED |
| ch4_unused mipipll 5 BCM_CYGNUS_MIPIPLL_CH4_UNUSED |
| ch5_unused mipipll 6 BCM_CYGNUS_MIPIPLL_CH5_UNUSED |