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

Commit 43a0a98a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM SoC driver updates from Olof Johansson:
 "Driver updates for ARM SoCs.

  A slew of changes this release cycle.  The reset driver tree, that we
  merge through arm-soc for historical reasons, is also sizable this
  time around.

  Among the changes:

   - clps711x: Treewide changes to compatible strings, merged here for simplicity.
   - Qualcomm: SCM firmware driver cleanups, move to platform driver
   - ux500: Major cleanups, removal of old mach-specific infrastructure.
   - Atmel external bus memory driver
   - Move of brcmstb platform to the rest of bcm
   - PMC driver updates for tegra, various fixes and improvements
   - Samsung platform driver updates to support 64-bit Exynos platforms
   - Reset controller cleanups moving to devm_reset_controller_register() APIs
   - Reset controller driver for Amlogic Meson
   - Reset controller driver for Hisilicon hi6220
   - ARM SCPI power domain support"

* tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (100 commits)
  ARM: ux500: consolidate base platform files
  ARM: ux500: move soc_id driver to drivers/soc
  ARM: ux500: call ux500_setup_id later
  ARM: ux500: consolidate soc_device code in id.c
  ARM: ux500: remove cpu_is_u* helpers
  ARM: ux500: use CLK_OF_DECLARE()
  ARM: ux500: move l2x0 init to .init_irq
  mfd: db8500 stop passing around platform data
  ASoC: ab8500-codec: remove platform data based probe
  ARM: ux500: move ab8500_regulator_plat_data into driver
  ARM: ux500: remove unused regulator data
  soc: raspberrypi-power: add CONFIG_OF dependency
  firmware: scpi: add CONFIG_OF dependency
  video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip
  input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip
  pwm: clps711x: Changing the compatibility string to match with the smallest supported chip
  serial: clps711x: Changing the compatibility string to match with the smallest supported chip
  irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip
  clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip
  clk: clps711x: Changing the compatibility string to match with the smallest supported chip
  ...
parents 6911a528 f8c6d88b
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -87,10 +87,33 @@ Required properties:
			 implementation for the IDs to use. For Juno
			 R0 and Juno R1 refer to [3].

Power domain bindings for the power domains based on SCPI Message Protocol
------------------------------------------------------------

This binding uses the generic power domain binding[4].

PM domain providers
===================

Required properties:
 - #power-domain-cells : Should be 1. Contains the device or the power
			 domain ID value used by SCPI commands.
 - num-domains: Total number of power domains provided by SCPI. This is
		needed as the SCPI message protocol lacks a mechanism to
		query this information at runtime.

PM domain consumers
===================

Required properties:
 - power-domains : A phandle and PM domain specifier as defined by bindings of
                   the power controller specified by phandle.

[0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/thermal/thermal.txt
[3] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0922b/apas03s22.html
[4] Documentation/devicetree/bindings/power/power_domain.txt

Example:

@@ -144,6 +167,12 @@ scpi_protocol: scpi@2e000000 {
		compatible = "arm,scpi-sensors";
		#thermal-sensor-cells = <1>;
	};

	scpi_devpd: scpi-power-domains {
		compatible = "arm,scpi-power-domains";
		num-domains = <2>;
		#power-domain-cells = <1>;
	};
};

cpu@0 {
@@ -156,6 +185,7 @@ hdlcd@7ff60000 {
	...
	reg = <0 0x7ff60000 0 0x1000>;
	clocks = <&scpi_clk 4>;
	power-domains = <&scpi_devpd 1>;
};

thermal-zones {
@@ -186,3 +216,7 @@ The thermal-sensors property in the soc_thermal node uses the
temperature sensor provided by SCP firmware to setup a thermal
zone. The ID "3" is the sensor identifier for the temperature sensor
as used by the firmware.

The num-domains property in scpi-power-domains domain specifies that
SCPI provides 2 power domains. The hdlcd node uses the power domain with
domain ID 1.
+45 −0
Original line number Diff line number Diff line
NVIDIA Tegra ACONNECT Bus

The Tegra ACONNECT bus is an AXI switch which is used to connnect various
components inside the Audio Processing Engine (APE). All CPU accesses to
the APE subsystem go through the ACONNECT via an APB to AXI wrapper.

Required properties:
- compatible: Must be "nvidia,tegra210-aconnect".
- clocks: Must contain the entries for the APE clock (TEGRA210_CLK_APE),
  and APE interface clock (TEGRA210_CLK_APB2APE).
- clock-names: Must contain the names "ape" and "apb2ape" for the corresponding
  'clocks' entries.
- power-domains: Must contain a phandle that points to the audio powergate
  (namely 'aud') for Tegra210.
- #address-cells: The number of cells used to represent physical base addresses
  in the aconnect address space. Should be 1.
- #size-cells: The number of cells used to represent the size of an address
  range in the aconnect address space. Should be 1.
- ranges: Mapping of the aconnect address space to the CPU address space.

All devices accessed via the ACONNNECT are described by child-nodes.

Example:

	aconnect@702c0000 {
		compatible = "nvidia,tegra210-aconnect";
		clocks = <&tegra_car TEGRA210_CLK_APE>,
			 <&tegra_car TEGRA210_CLK_APB2APE>;
		clock-names = "ape", "apb2ape";
		power-domains = <&pd_audio>;

		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x702c0000 0x0 0x702c0000 0x00040000>;

		status = "disabled";

		child1 {
			...
		};

		child2 {
			...
		};
	};
+2 −2
Original line number Diff line number Diff line
* Clock bindings for the Cirrus Logic CLPS711X CPUs

Required properties:
- compatible       : Shall contain "cirrus,clps711x-clk".
- compatible       : Shall contain "cirrus,ep7209-clk".
- reg              : Address of the internal register set.
- startup-frequency: Factory set CPU startup frequency in HZ.
- #clock-cells     : Should be <1>.
@@ -13,7 +13,7 @@ for the full list of CLPS711X clock IDs.
Example:
	clks: clks@80000000 {
		#clock-cells = <1>;
		compatible = "cirrus,ep7312-clk", "cirrus,clps711x-clk";
		compatible = "cirrus,ep7312-clk", "cirrus,ep7209-clk";
		reg = <0x80000000 0xc000>;
		startup-frequency = <73728000>;
	};
+2 −2
Original line number Diff line number Diff line
* Currus Logic CLPS711X Framebuffer

Required properties:
- compatible: Shall contain "cirrus,clps711x-fb".
- compatible: Shall contain "cirrus,ep7209-fb".
- reg       : Physical base address and length of the controller's registers +
              location and size of the framebuffer memory.
- clocks    : phandle + clock specifier pair of the FB reference clock.
@@ -18,7 +18,7 @@ Optional properties:

Example:
	fb: fb@800002c0 {
		compatible = "cirrus,ep7312-fb", "cirrus,clps711x-fb";
		compatible = "cirrus,ep7312-fb", "cirrus,ep7209-fb";
		reg = <0x800002c0 0xd44>, <0x60000000 0xc000>;
		clocks = <&clks 2>;
		lcd-supply = <&reg5v0>;
+2 −2
Original line number Diff line number Diff line
* Cirrus Logic CLPS711X matrix keypad device tree bindings

Required Properties:
- compatible:    Shall contain "cirrus,clps711x-keypad".
- compatible:    Shall contain "cirrus,ep7209-keypad".
- row-gpios:     List of GPIOs used as row lines.
- poll-interval: Poll interval time in milliseconds.
- linux,keymap:  The definition can be found at
@@ -12,7 +12,7 @@ Optional Properties:

Example:
	keypad {
		compatible = "cirrus,ep7312-keypad", "cirrus,clps711x-keypad";
		compatible = "cirrus,ep7312-keypad", "cirrus,ep7209-keypad";
		autorepeat;
		poll-interval = <120>;
		row-gpios = <&porta 0 0>,
Loading