PM / AVS: exynos-avs: Add Adaptive Voltage Scaling (AVS) device driver 50/111950/11
authorWook Song <wook16.song@samsung.com>
Tue, 24 Jan 2017 08:10:54 +0000 (17:10 +0900)
committerWook Song <wook16.song@samsung.com>
Mon, 17 Jul 2017 08:58:59 +0000 (17:58 +0900)
commit2ad3a2e4aef9cb5e1292668ab8c2cb1021d5cf33
treeb717588c54a28b40c89be3c9adfc2129c4348b8b
parent9897c97255f3ae6e0fae2aa17947eb8b0a1699c7
PM / AVS: exynos-avs: Add Adaptive Voltage Scaling (AVS) device driver

In Exynos SoC, Adaptive Supply Voltage (ASV) is a technique, which
provides sets of voltage values optimized to the SoC revision variations
for given operating frequencies of devices such as CPU, GPU, and BUS.
For each given operating frequency of the device, there is an ASV group
number, which indicates the SoC revision variaion. By using the ASV
group number, it is possible to identify which one is the most suitable
set of voltages. In general, the ASV group numbers are decided at the
manufactoring time and we can get these numbers by reading specific
memory addresses mapped to a special read-only region.

This patch adds a dt-based common device driver for ASV support in
Exynos SoC. Since the ASV technique can be also viewed as a Adaptive
Voltage Scaling (AVS) feature, we let this device driver be included in
drivers/power/avs directory. This common device driver supports basic
operations to read the ASV group number and replace the OPP table of the
device with the optimized one by using the ASV group number.

In the current version of the AVS common device driver, instead of
supporting all the resource types, CPU-related resource types are
supported. It will be extended to support other types of resources such
as GPU and BUS.

For the specific SoC support by using this common device driver, this
patch also adds a device driver for Exynos5433 SoC. In the case of
Exynos5433 SoC, there are four vesions of the OPP tables for each
resource. Since each OPP table contains 16 sets of voltages for 16 ASV
groups, 64 sets of operating points are required to only support the
Little cluster. Therefore, in the current implementation, this
Exynos5433-specific device driver only supports the optimized OPP table
for the ASV group number of 8 in version 2 of the OPP table (which is
the latest version). It will be also extended to supprot all of the 16
ASV groups in the OPP table version 2 soon.

Change-Id: Ie4d7e810a42c1cbcad7c6af9a77cce0964e104bb
Signed-off-by: Wook Song <wook16.song@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/power/avs/Kconfig
drivers/power/avs/Makefile
drivers/power/avs/exynos-avs.c [new file with mode: 0644]