Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8a504c4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -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>;
	};
	};
+93 −0
Original line number Original line Diff line number Diff line
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>;
	};
+4 −0
Original line number Original line Diff line number Diff line
@@ -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>;
};
};
+6 −0
Original line number Original line Diff line number Diff line
@@ -44,5 +44,11 @@
		status = "okay";
		status = "okay";
	};
	};


	usbotg: usb@3f120000 {
		status = "okay";
	};


	usbphy: usb-phy@3f130000 {
		status = "okay";
	};
};
};
+165 −5
Original line number Original line Diff line number Diff line
@@ -43,7 +43,7 @@
		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 @@
		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 @@
		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 @@
		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 @@
		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 @@
		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 @@
		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 @@
		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 @@
		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 @@
		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";
	};
};
};
Loading