mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
133 lines
4.5 KiB
Plaintext
133 lines
4.5 KiB
Plaintext
|
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
|