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

Commit 384d11fa authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM SoC driver updates from Arnd Bergmann:
 "As usual, the drivers/tee and drivers/reset subsystems get merged
  here, with the expected set of smaller updates and some new hardware
  support. The tee subsystem now supports device drivers to be attached
  to a tee, the first example here is a random number driver with its
  implementation in the secure world.

  Three new power domain drivers get added for specific chip families:
   - Broadcom BCM283x chips (used in Raspberry Pi)
   - Qualcomm Snapdragon phone chips
   - Xilinx ZynqMP FPGA SoCs

  One new driver is added to talk to the BPMP firmware on NVIDIA
  Tegra210

  Existing drivers are extended for new SoC variants from NXP, NVIDIA,
  Amlogic and Qualcomm"

* tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (113 commits)
  tee: optee: update optee_msg.h and optee_smc.h to dual license
  tee: add cancellation support to client interface
  dpaa2-eth: configure the cache stashing amount on a queue
  soc: fsl: dpio: configure cache stashing destination
  soc: fsl: dpio: enable frame data cache stashing per software portal
  soc: fsl: guts: make fsl_guts_get_svr() static
  hwrng: make symbol 'optee_rng_id_table' static
  tee: optee: Fix unsigned comparison with less than zero
  hwrng: Fix unsigned comparison with less than zero
  tee: fix possible error pointer ctx dereferencing
  hwrng: optee: Initialize some structs using memset instead of braces
  tee: optee: Initialize some structs using memset instead of braces
  soc: fsl: dpio: fix memory leak of a struct qbman on error exit path
  clk: tegra: dfll: Make symbol 'tegra210_cpu_cvb_tables' static
  soc: qcom: llcc-slice: Fix typos
  qcom: soc: llcc-slice: Consolidate some code
  qcom: soc: llcc-slice: Clear the global drv_data pointer on error
  drivers: soc: xilinx: Add ZynqMP power domain driver
  firmware: xilinx: Add APIs to control node status/power
  dt-bindings: power: Add ZynqMP power domain bindings
  ...
parents 6ad63dec 8ceb820b
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -58,7 +58,11 @@ This binding for the SCU power domain providers uses the generic power
domain binding[2].

Required properties:
- compatible:		Should be "fsl,imx8qxp-scu-pd".
- compatible:		Should be one of:
			  "fsl,imx8qm-scu-pd",
			  "fsl,imx8qxp-scu-pd"
			followed by "fsl,scu-pd"

- #power-domain-cells:	Must be 1. Contains the Resource ID used by
			SCU commands.
			See detailed Resource ID list from:
@@ -157,7 +161,7 @@ firmware {
		};

		pd: imx8qx-pd {
			compatible = "fsl,imx8qxp-scu-pd";
			compatible = "fsl,imx8qxp-scu-pd", "fsl,scu-pd";
			#power-domain-cells = <1>;
		};

+29 −3
Original line number Diff line number Diff line
@@ -47,9 +47,9 @@ Optional properties:
Timing property for child nodes. It is mandatory, not optional.

 - fsl,weim-cs-timing:	The timing array, contains timing values for the
			child node. We can get the CS index from the child
			node's "reg" property. The number of registers depends
			on the selected chip.
			child node. We get the CS indexes from the address
			ranges in the child node's "reg" property.
			The number of registers depends on the selected chip:
			For i.MX1, i.MX21 ("fsl,imx1-weim") there are two
			registers: CSxU, CSxL.
			For i.MX25, i.MX27, i.MX31 and i.MX35 ("fsl,imx27-weim")
@@ -80,3 +80,29 @@ Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM:
					0x0000c000 0x1404a38e 0x00000000>;
		};
	};

Example for an imx6q-based board, a multi-chipselect device connected to WEIM:

In this case, both chip select 0 and 1 will be configured with the same timing
array values.

	weim: weim@21b8000 {
		compatible = "fsl,imx6q-weim";
		reg = <0x021b8000 0x4000>;
		clocks = <&clks 196>;
		#address-cells = <2>;
		#size-cells = <1>;
		ranges = <0 0 0x08000000 0x02000000
			  1 0 0x0a000000 0x02000000
			  2 0 0x0c000000 0x02000000
			  3 0 0x0e000000 0x02000000>;
		fsl,weim-cs-gpr = <&gpr>;

		acme@0 {
			compatible = "acme,whatever";
			reg = <0 0 0x100>, <0 0x400000 0x800>,
				<1 0x400000 0x800>;
			fsl,weim-cs-timing = <0x024400b1 0x00001010 0x20081100
				0x00000000 0xa0000240 0x00000000>;
		};
	};
+46 −0
Original line number Diff line number Diff line
--------------------------------------------------------------------------
=  Zynq UltraScale+ MPSoC nvmem firmware driver binding =
--------------------------------------------------------------------------
The nvmem_firmware node provides access to the hardware related data
like soc revision, IDCODE... etc, By using the firmware interface.

Required properties:
- compatible: should be "xlnx,zynqmp-nvmem-fw"

= Data cells =
Are child nodes of silicon id, bindings of which as described in
bindings/nvmem/nvmem.txt

-------
 Example
-------
firmware {
	zynqmp_firmware: zynqmp-firmware {
		compatible = "xlnx,zynqmp-firmware";
		method = "smc";

		nvmem_firmware {
			compatible = "xlnx,zynqmp-nvmem-fw";
			#address-cells = <1>;
			#size-cells = <1>;

			/* Data cells */
			soc_revision: soc_revision {
				reg = <0x0 0x4>;
			};
		};
	};
};

= Data consumers =
Are device nodes which consume nvmem data cells.

For example:
	pcap {
		...

		nvmem-cells = <&soc_revision>;
		nvmem-cell-names = "soc_revision";

		...
	};
+3 −0
Original line number Diff line number Diff line
@@ -129,6 +129,9 @@ Optional properties:
- opp-microamp-<name>: Named opp-microamp property. Similar to
  opp-microvolt-<name> property, but for microamp instead.

- opp-level: A value representing the performance level of the device,
  expressed as a 32-bit integer.

- clock-latency-ns: Specifies the maximum possible transition latency (in
  nanoseconds) for switching to this OPP from any other OPP.

+3 −0
Original line number Diff line number Diff line
@@ -32,6 +32,9 @@ Required properties:
Optional properties:

- power-supply: Power supply used to power the domain
- clocks: a number of phandles to clocks that need to be enabled during
  domain power-up sequencing to ensure reset propagation into devices
  located inside this power domain

Example:

Loading