linux/drivers/soc
Rajendra Nayak 279b7e8a62 soc: qcom: rpmhpd: Add RPMh power domain driver
The RPMh power domain driver aggregates the corner votes from various
consumers for the ARC resources and communicates it to RPMh.

With RPMh we use 2 different numbering space for corners, one used
by the clients to express their performance needs, and another used
to communicate to RPMh hardware.

The clients express their performance requirements using a sparse
numbering space which are mapped to meaningful levels like RET, SVS,
NOMINAL, TURBO etc which then get mapped to another number space
between 0 and 15 which is communicated to RPMh. The sparse number space,
also referred to as vlvl is mapped to the continuous number space of 0
to 15, also referred to as hlvl, using command DB.

Some power domain clients could request a performance state only while
the CPU is active, while some others could request for a certain
performance state all the time regardless of the state of the CPU.
We handle this by internally aggregating the votes from both type of
clients and then send the aggregated votes to RPMh.

There are also 3 different types of votes that are comunicated to RPMh
for every resource.
1. ACTIVE_ONLY:
	This specifies the requirement for the resource when the CPU is
 	active
2. SLEEP:
	This specifies the requirement for the resource when the CPU is
	going to sleep
3. WAKE_ONLY:
	This specifies the requirement for the resource when the CPU is
	coming out of sleep to active state

We add data for all power domains on sdm845 SoC as part of the patch.
The driver can be extended to support other SoCs which support RPMh

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2019-01-22 15:10:15 -06:00
..
actions soc: actions: sps: Add S900 power domains 2018-09-30 16:48:10 +02:00
amlogic soc: amlogic: meson-clk-measure: Add missing REGMAP_MMIO dependency 2018-12-10 12:16:22 -08:00
atmel ARM: at91: add support in soc driver for new SAM9X60 2018-12-12 11:55:20 +01:00
bcm soc: bcm: brcmstb: Don't leak device tree node reference 2018-11-28 13:46:44 -08:00
dove soc: Convert to using %pOFn instead of device_node.name 2018-10-04 14:16:01 -05:00
fsl soc: fsl: dpio: Add BP and FQ query APIs 2018-12-19 10:37:22 -08:00
gemini soc: Add SoC driver for Gemini 2018-01-04 17:01:53 +01:00
imx soc: imx: gpc: Increase GPC_CLK_MAX to 7 2018-12-10 08:51:12 +08:00
lantiq MIPS: lantiq: gphy: Drop reboot/remove reset asserts 2018-05-24 13:22:56 +01:00
mediatek soc: mediatek: Add Mediatek CMDQ helper 2018-12-02 20:46:10 +01:00
qcom soc: qcom: rpmhpd: Add RPMh power domain driver 2019-01-22 15:10:15 -06:00
renesas ARM: SoC driver updates 2018-12-31 17:32:35 -08:00
rockchip soc: rockchip: power-domain: add rk3066 powerdomains 2018-11-06 14:13:32 +01:00
samsung soc: samsung: pm_domains: Deprecate support for clocks 2018-04-17 17:25:42 +02:00
sunxi soc: sunxi: sram: Add support for the H5 SoC system control 2018-12-05 11:55:36 +01:00
tegra ARM: SoC driver updates 2018-12-31 17:32:35 -08:00
ti soc: ti: wkup_m3: Add PRCM int16 as the wake up source 2018-11-19 10:36:25 -08:00
ux500 ARM: ux500: move soc_id driver to drivers/soc 2016-07-12 11:24:09 +02:00
versatile soc: versatile: remove unnecessary static in realview_soc_probe() 2017-08-16 22:28:27 +02:00
xilinx soc: xilinx: Fix Kconfig alignment 2018-01-16 15:50:21 +01:00
zte soc: zte: Restrict SOC_ZTE to ARCH_ZX or COMPILE_TEST 2017-07-27 13:12:34 +02:00
Kconfig soc: xilinx: Create folder structure for soc specific drivers 2018-01-08 13:42:39 +01:00
Makefile drivers: soc: Allow building the amlogic drivers without ARCH_MESON 2018-11-15 12:25:20 -08:00