-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
clk: iproc: define Broadcom iProc clock binding
Document the device tree binding for Broadcom iProc architecture based clock controller Signed-off-by: Ray Jui <rjui@broadcom.com> Reviewed-by: Scott Branden <sbranden@broadcom.com> Signed-off-by: Michael Turquette <mturquette@baylibre.com>
- Loading branch information
Ray Jui
authored and
Michael Turquette
committed
Jun 18, 2015
1 parent
a85fa00
commit 476276d
Showing
1 changed file
with
132 additions
and
0 deletions.
There are no files selected for viewing
132 changes: 132 additions & 0 deletions
132
Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
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 |