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

Commit fe8fee69 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'arm-soc-pmdomain' of...

Merge tag 'arm-soc-pmdomain' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/drivers

ARM SOC PM domain support for 4.12

Dave Gerlach (5):
      PM / Domains: Add generic data pointer to genpd data struct
      PM / Domains: Do not check if simple providers have phandle cells
      dt-bindings: Add TI SCI PM Domains
      soc: ti: Add ti_sci_pm_domains driver
      ARM: keystone: Drop PM domain support for k2g

* tag 'arm-soc-pmdomain' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone

:
  ARM: keystone: Drop PM domain support for k2g
  soc: ti: Add ti_sci_pm_domains driver
  dt-bindings: Add TI SCI PM Domains
  PM / Domains: Do not check if simple providers have phandle cells
  PM / Domains: Add generic data pointer to genpd data struct

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 1dfe4616 ae3874cc
Loading
Loading
Loading
Loading
+57 −0
Original line number Diff line number Diff line
Texas Instruments TI-SCI Generic Power Domain
---------------------------------------------

Some TI SoCs contain a system controller (like the PMMC, etc...) that is
responsible for controlling the state of the IPs that are present.
Communication between the host processor running an OS and the system
controller happens through a protocol known as TI-SCI [1].

[1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt

PM Domain Node
==============
The PM domain node represents the global PM domain managed by the PMMC, which
in this case is the implementation as documented by the generic PM domain
bindings in Documentation/devicetree/bindings/power/power_domain.txt.  Because
this relies on the TI SCI protocol to communicate with the PMMC it must be a
child of the pmmc node.

Required Properties:
--------------------
- compatible: should be "ti,sci-pm-domain"
- #power-domain-cells: Must be 1 so that an id can be provided in each
		       device node.

Example (K2G):
-------------
	pmmc: pmmc {
		compatible = "ti,k2g-sci";
		...

		k2g_pds: power-controller {
			compatible = "ti,sci-pm-domain";
			#power-domain-cells = <1>;
		};
	};

PM Domain Consumers
===================
Hardware blocks belonging to a PM domain should contain a "power-domains"
property that is a phandle pointing to the corresponding PM domain node
along with an index representing the device id to be passed to the PMMC
for device control.

Required Properties:
--------------------
- power-domains: phandle pointing to the corresponding PM domain node
		 and an ID representing the device.

See dt-bindings/genpd/k2g.h for the list of valid identifiers for k2g.

Example (K2G):
--------------------
	uart0: serial@02530c00 {
		compatible = "ns16550a";
		...
		power-domains = <&k2g_pds K2G_DEV_UART0>;
	};
+3 −0
Original line number Diff line number Diff line
@@ -12384,6 +12384,9 @@ S: Maintained
F:	Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
F:	drivers/firmware/ti_sci*
F:	include/linux/soc/ti/ti_sci_protocol.h
F:	Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
F:	include/dt-bindings/genpd/k2g.h
F:	drivers/soc/ti/ti_sci_pm_domains.c

THANKO'S RAREMONO AM/FM/SW RADIO RECEIVER USB DRIVER
M:	Hans Verkuil <hverkuil@xs4all.nl>
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ config ARCH_KEYSTONE
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ZONE_DMA if ARM_LPAE
	select PINCTRL
	select PM_GENERIC_DOMAINS if PM
	help
	  Support for boards based on the Texas Instruments Keystone family of
	  SoCs.
+3 −1
Original line number Diff line number Diff line
@@ -32,7 +32,9 @@ static struct pm_clk_notifier_block platform_domain_notifier = {
};

static const struct of_device_id of_keystone_table[] = {
	{.compatible = "ti,keystone"},
	{.compatible = "ti,k2hk"},
	{.compatible = "ti,k2e"},
	{.compatible = "ti,k2l"},
	{ /* end of list */ },
};

+0 −2
Original line number Diff line number Diff line
@@ -1622,8 +1622,6 @@ static struct generic_pm_domain *genpd_xlate_simple(
					struct of_phandle_args *genpdspec,
					void *data)
{
	if (genpdspec->args_count != 0)
		return ERR_PTR(-EINVAL);
	return data;
}

Loading