Commit f8a504c4 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'late-dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC late changes from Kevin Hilman:
 "These are changes that arrived a little late but were considered
  self-contained enough to still go in for v3.14.

  They are all device tree updtes this time around, and mainly for
  Broadcom SoCs"

* tag 'late-dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: moxart: move fixed rate clock child node to board level dts
  clk: bcm281xx: define kona clock binding
  ARM: dts: add usb udc support to bcm281xx
  ARM: dts: Specify clocks for timer on bcm11351
  Documentation: dt: kona-timer: Add clocks property
  ARM: dts: Specify clocks for SDHCIs on bcm11351
  Documentation: dt: kona-sdhci: Add clocks property
  ARM: dts: Specify clocks for UARTs on bcm11351
  ARM: dts: bcm281xx: Add i2c busses
  ARM: dts: Declare clocks as fixed on bcm11351
  ARM: dts: bcm28155-ap: Enable all the i2c busses
parents cdfc8307 929267cb
...@@ -8,13 +8,18 @@ Required properties: ...@@ -8,13 +8,18 @@ Required properties:
- DEPRECATED: compatible : "bcm,kona-timer" - DEPRECATED: compatible : "bcm,kona-timer"
- reg : Register range for the timer - reg : Register range for the timer
- interrupts : interrupt for the timer - interrupts : interrupt for the timer
- clocks: phandle + clock specifier pair of the external clock
- clock-frequency: frequency that the clock operates - clock-frequency: frequency that the clock operates
Only one of clocks or clock-frequency should be specified.
Refer to clocks/clock-bindings.txt for generic clock consumer properties.
Example: Example:
timer@35006000 { timer@35006000 {
compatible = "brcm,kona-timer"; compatible = "brcm,kona-timer";
reg = <0x35006000 0x1000>; reg = <0x35006000 0x1000>;
interrupts = <0x0 7 0x4>; interrupts = <0x0 7 0x4>;
clock-frequency = <32768>; clocks = <&hub_timer_clk>;
}; };
Broadcom Kona Family Clocks
This binding is associated with Broadcom SoCs having "Kona" style
clock control units (CCUs). A CCU is a clock provider that manages
a set of clock signals. Each CCU is represented by a node in the
device tree.
This binding uses the common clock binding:
Documentation/devicetree/bindings/clock/clock-bindings.txt
Required properties:
- compatible
Shall have one of the following values:
- "brcm,bcm11351-root-ccu"
- "brcm,bcm11351-aon-ccu"
- "brcm,bcm11351-hub-ccu"
- "brcm,bcm11351-master-ccu"
- "brcm,bcm11351-slave-ccu"
- reg
Shall define the base and range of the address space
containing clock control registers
- #clock-cells
Shall have value <1>. The permitted clock-specifier values
are defined below.
- clock-output-names
Shall be an ordered list of strings defining the names of
the clocks provided by the CCU.
BCM281XX family SoCs use Kona CCUs. The following table defines
the set of CCUs and clock specifiers for BCM281XX clocks. When
a clock consumer references a clocks, its symbolic specifier
(rather than its numeric index value) should be used. These
specifiers are defined in "include/dt-bindings/clock/bcm281xx.h".
CCU Clock Type Index Specifier
--- ----- ---- ----- ---------
root frac_1m peri 0 BCM281XX_ROOT_CCU_FRAC_1M
aon hub_timer peri 0 BCM281XX_AON_CCU_HUB_TIMER
aon pmu_bsc peri 1 BCM281XX_AON_CCU_PMU_BSC
aon pmu_bsc_var peri 2 BCM281XX_AON_CCU_PMU_BSC_VAR
hub tmon_1m peri 0 BCM281XX_HUB_CCU_TMON_1M
master sdio1 peri 0 BCM281XX_MASTER_CCU_SDIO1
master sdio2 peri 1 BCM281XX_MASTER_CCU_SDIO2
master sdio3 peri 2 BCM281XX_MASTER_CCU_SDIO3
master sdio4 peri 3 BCM281XX_MASTER_CCU_SDIO4
master dmac peri 4 BCM281XX_MASTER_CCU_DMAC
master usb_ic peri 5 BCM281XX_MASTER_CCU_USB_IC
master hsic2_48m peri 6 BCM281XX_MASTER_CCU_HSIC_48M
master hsic2_12m peri 7 BCM281XX_MASTER_CCU_HSIC_12M
slave uartb peri 0 BCM281XX_SLAVE_CCU_UARTB
slave uartb2 peri 1 BCM281XX_SLAVE_CCU_UARTB2
slave uartb3 peri 2 BCM281XX_SLAVE_CCU_UARTB3
slave uartb4 peri 3 BCM281XX_SLAVE_CCU_UARTB4
slave ssp0 peri 4 BCM281XX_SLAVE_CCU_SSP0
slave ssp2 peri 5 BCM281XX_SLAVE_CCU_SSP2
slave bsc1 peri 6 BCM281XX_SLAVE_CCU_BSC1
slave bsc2 peri 7 BCM281XX_SLAVE_CCU_BSC2
slave bsc3 peri 8 BCM281XX_SLAVE_CCU_BSC3
slave pwm peri 9 BCM281XX_SLAVE_CCU_PWM
Device tree example:
slave_ccu: slave_ccu {
compatible = "brcm,bcm11351-slave-ccu";
reg = <0x3e011000 0x0f00>;
#clock-cells = <1>;
clock-output-names = "uartb",
"uartb2",
"uartb3",
"uartb4";
};
ref_crystal_clk: ref_crystal {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <26000000>;
};
uart@3e002000 {
compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
status = "disabled";
reg = <0x3e002000 0x1000>;
clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>;
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
};
...@@ -6,12 +6,16 @@ and the properties present in the bcm281xx SDHCI ...@@ -6,12 +6,16 @@ and the properties present in the bcm281xx SDHCI
Required properties: Required properties:
- compatible : Should be "brcm,kona-sdhci" - compatible : Should be "brcm,kona-sdhci"
- DEPRECATED: compatible : Should be "bcm,kona-sdhci" - DEPRECATED: compatible : Should be "bcm,kona-sdhci"
- clocks: phandle + clock specifier pair of the external clock
Refer to clocks/clock-bindings.txt for generic clock consumer properties.
Example: Example:
sdio2: sdio@0x3f1a0000 { sdio2: sdio@0x3f1a0000 {
compatible = "brcm,kona-sdhci"; compatible = "brcm,kona-sdhci";
reg = <0x3f1a0000 0x10000>; reg = <0x3f1a0000 0x10000>;
clocks = <&sdio3_clk>;
interrupts = <0x0 74 0x4>; interrupts = <0x0 74 0x4>;
}; };
...@@ -44,5 +44,11 @@ sdio4: sdio@3f1b0000 { ...@@ -44,5 +44,11 @@ sdio4: sdio@3f1b0000 {
status = "okay"; status = "okay";
}; };
usbotg: usb@3f120000 {
status = "okay";
};
usbphy: usb-phy@3f130000 {
status = "okay";
};
}; };
...@@ -43,7 +43,7 @@ uart@3e000000 { ...@@ -43,7 +43,7 @@ uart@3e000000 {
compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
status = "disabled"; status = "disabled";
reg = <0x3e000000 0x1000>; reg = <0x3e000000 0x1000>;
clock-frequency = <13000000>; clocks = <&uartb_clk>;
interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>; reg-shift = <2>;
reg-io-width = <4>; reg-io-width = <4>;
...@@ -53,7 +53,7 @@ uart@3e001000 { ...@@ -53,7 +53,7 @@ uart@3e001000 {
compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
status = "disabled"; status = "disabled";
reg = <0x3e001000 0x1000>; reg = <0x3e001000 0x1000>;
clock-frequency = <13000000>; clocks = <&uartb2_clk>;
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>; reg-shift = <2>;
reg-io-width = <4>; reg-io-width = <4>;
...@@ -63,7 +63,7 @@ uart@3e002000 { ...@@ -63,7 +63,7 @@ uart@3e002000 {
compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
status = "disabled"; status = "disabled";
reg = <0x3e002000 0x1000>; reg = <0x3e002000 0x1000>;
clock-frequency = <13000000>; clocks = <&uartb3_clk>;
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>; reg-shift = <2>;
reg-io-width = <4>; reg-io-width = <4>;
...@@ -73,7 +73,7 @@ uart@3e003000 { ...@@ -73,7 +73,7 @@ uart@3e003000 {
compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
status = "disabled"; status = "disabled";
reg = <0x3e003000 0x1000>; reg = <0x3e003000 0x1000>;
clock-frequency = <13000000>; clocks = <&uartb4_clk>;
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>; reg-shift = <2>;
reg-io-width = <4>; reg-io-width = <4>;
...@@ -95,7 +95,7 @@ timer@35006000 { ...@@ -95,7 +95,7 @@ timer@35006000 {
compatible = "brcm,kona-timer"; compatible = "brcm,kona-timer";
reg = <0x35006000 0x1000>; reg = <0x35006000 0x1000>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
clock-frequency = <32768>; clocks = <&hub_timer_clk>;
}; };
gpio: gpio@35003000 { gpio: gpio@35003000 {
...@@ -118,6 +118,7 @@ sdio1: sdio@3f180000 { ...@@ -118,6 +118,7 @@ sdio1: sdio@3f180000 {
compatible = "brcm,kona-sdhci"; compatible = "brcm,kona-sdhci";
reg = <0x3f180000 0x10000>; reg = <0x3f180000 0x10000>;
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sdio1_clk>;
status = "disabled"; status = "disabled";
}; };
...@@ -125,6 +126,7 @@ sdio2: sdio@3f190000 { ...@@ -125,6 +126,7 @@ sdio2: sdio@3f190000 {
compatible = "brcm,kona-sdhci"; compatible = "brcm,kona-sdhci";
reg = <0x3f190000 0x10000>; reg = <0x3f190000 0x10000>;
interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sdio2_clk>;
status = "disabled"; status = "disabled";
}; };
...@@ -132,6 +134,7 @@ sdio3: sdio@3f1a0000 { ...@@ -132,6 +134,7 @@ sdio3: sdio@3f1a0000 {
compatible = "brcm,kona-sdhci"; compatible = "brcm,kona-sdhci";
reg = <0x3f1a0000 0x10000>; reg = <0x3f1a0000 0x10000>;
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sdio3_clk>;
status = "disabled"; status = "disabled";
}; };
...@@ -139,6 +142,7 @@ sdio4: sdio@3f1b0000 { ...@@ -139,6 +142,7 @@ sdio4: sdio@3f1b0000 {
compatible = "brcm,kona-sdhci"; compatible = "brcm,kona-sdhci";
reg = <0x3f1b0000 0x10000>; reg = <0x3f1b0000 0x10000>;
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sdio4_clk>;
status = "disabled"; status = "disabled";
}; };
...@@ -146,4 +150,160 @@ pinctrl@35004800 { ...@@ -146,4 +150,160 @@ pinctrl@35004800 {
compatible = "brcm,capri-pinctrl"; compatible = "brcm,capri-pinctrl";
reg = <0x35004800 0x430>; reg = <0x35004800 0x430>;
}; };
i2c@3e016000 {
compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
reg = <0x3e016000 0x80>;
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&bsc1_clk>;
status = "disabled";
};
i2c@3e017000 {
compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
reg = <0x3e017000 0x80>;
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&bsc2_clk>;
status = "disabled";
};
i2c@3e018000 {
compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
reg = <0x3e018000 0x80>;
interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&bsc3_clk>;
status = "disabled";
};
i2c@3500d000 {
compatible = "brcm,bcm11351-i2c", "brcm,kona-i2c";
reg = <0x3500d000 0x80>;
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&pmu_bsc_clk>;
status = "disabled";
};
clocks {
bsc1_clk: bsc1 {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
bsc2_clk: bsc2 {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
bsc3_clk: bsc3 {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
pmu_bsc_clk: pmu_bsc {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
hub_timer_clk: hub_timer {
compatible = "fixed-clock";
clock-frequency = <32768>;
#clock-cells = <0>;
};
pwm_clk: pwm {
compatible = "fixed-clock";
clock-frequency = <26000000>;
#clock-cells = <0>;
};
sdio1_clk: sdio1 {
compatible = "fixed-clock";
clock-frequency = <48000000>;
#clock-cells = <0>;
};
sdio2_clk: sdio2 {
compatible = "fixed-clock";
clock-frequency = <48000000>;
#clock-cells = <0>;
};
sdio3_clk: sdio3 {
compatible = "fixed-clock";
clock-frequency = <48000000>;
#clock-cells = <0>;
};
sdio4_clk: sdio4 {
compatible = "fixed-clock";
clock-frequency = <48000000>;
#clock-cells = <0>;
};
tmon_1m_clk: tmon_1m {
compatible = "fixed-clock";
clock-frequency = <1000000>;
#clock-cells = <0>;
};
uartb_clk: uartb {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
uartb2_clk: uartb2 {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
uartb3_clk: uartb3 {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
uartb4_clk: uartb4 {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
usb_otg_ahb_clk: usb_otg_ahb {
compatible = "fixed-clock";
clock-frequency = <52000000>;
#clock-cells = <0>;
};
};
usbotg: usb@3f120000 {
compatible = "snps,dwc2";
reg = <0x3f120000 0x10000>;
interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&usb_otg_ahb_clk>;
clock-names = "otg";
phys = <&usbphy>;
phy-names = "usb2-phy";
status = "disabled";
};
usbphy: usb-phy@3f130000 {
compatible = "brcm,kona-usb2-phy";
reg = <0x3f130000 0x28>;
#phy-cells = <0>;
status = "disabled";
};
}; };
...@@ -27,6 +27,26 @@ uart@3e000000 { ...@@ -27,6 +27,26 @@ uart@3e000000 {
status = "okay"; status = "okay";
}; };
i2c@3e016000 {
status="okay";
clock-frequency = <400000>;
};
i2c@3e017000 {
status="okay";
clock-frequency = <400000>;
};
i2c@3e018000 {
status="okay";
clock-frequency = <400000>;
};
i2c@3500d000 {
status="okay";
clock-frequency = <400000>;
};
sdio1: sdio@3f180000 { sdio1: sdio@3f180000 {
max-frequency = <48000000>; max-frequency = <48000000>;
status = "okay"; status = "okay";
...@@ -43,4 +63,12 @@ sdio4: sdio@3f1b0000 { ...@@ -43,4 +63,12 @@ sdio4: sdio@3f1b0000 {
cd-gpios = <&gpio 14 0>; cd-gpios = <&gpio 14 0>;
status = "okay"; status = "okay";
}; };
usbotg: usb@3f120000 {
status = "okay";
};
usbphy: usb-phy@3f130000 {
status = "okay";
};
}; };
...@@ -17,6 +17,14 @@ memory { ...@@ -17,6 +17,14 @@ memory {
reg = <0x0 0x2000000>; reg = <0x0 0x2000000>;
}; };
clocks {
ref12: ref12M {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <12000000>;
};
};
flash@80000000,0 { flash@80000000,0 {
compatible = "numonyx,js28f128", "cfi-flash"; compatible = "numonyx,js28f128", "cfi-flash";
reg = <0x80000000 0x1000000>; reg = <0x80000000 0x1000000>;
......
...@@ -26,12 +26,6 @@ cpu@0 { ...@@ -26,12 +26,6 @@ cpu@0 {
clocks { clocks {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
ref12: ref12M {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <12000000>;
};
}; };
soc { soc {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment