[PATCH RFC 0/8] Exynos Adaptive Supply Voltage support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The Adaptive Supply Voltage (ASV) on Exynos SoCs is a technique of adjusting
subsystem operating points, i.e. power supply voltage for given clock 
frequency, in order to better match actual capabilities of the hardware 
and optimize power consumption.  This applies to subsystems of the SoC like: 
CPU clusters, GPU, the memory controller or camera ISP.  During production 
process the SoC chip is assigned to one of several bins (ASV groups) and 
the group information is encoded in the SoC CHIPID block registers and/or 
OTP memory.  This information is then used to select more finely matching 
operating points for devices.

The motivation of this patch set was, amongst others, to ensure proper 
Odroid XU3/XU4 operation with highest performance operating points.

This patch set adds a driver parsing ASV tables from DT and finely 
adjusting CPU operating points to optimize power consumption and ensure 
proper operation for each SoC revision.

I just recently noticed there are already somewhat similar drivers located
in drivers/power/avs, I'm considering moving exynos-asv driver there in next 
iteration of this patch set. 

This patch set includes Exynos CHIPID driver posted by Pankaj Dubey and
futher improved by Bartlomiej Zolnierkiewicz [1].

Tested on Odroid XU3, XU3 Lite, XU4 and Exynos5433 TM2 board (with further 
patches not included in this series).

The DT binding documented in patch 3/8 doesn't describe any hardware,
it's purely software description.  I'd like to get some feedback specially
on that one, I thought it was reasonable to put that data in DT.  There 
will be many of this tables, per each SoC type and the driver looks much
better with those tables in DT IMHO. 

[1] https://lkml.org/lkml/2018/11/15/908

Pankaj Dubey (3):
  soc: samsung: Add exynos chipid driver support
  ARM: EXYNOS: enable exynos_chipid for ARCH_EXYNOS
  ARM64: EXYNOS: enable exynos_chipid for ARCH_EXYNOS

Sylwester Nawrocki (5):
  soc: samsung: Exynos chipid driver update
  dt-bindings: exynos: Add ASV tables binding documentation
  soc: samsung: Add Exynos Adaptive Supply Voltage driver
  ARM: EXYNOS: Enable exynos-asv driver for ARCH_EXYNOS
  ARM: dts: exynos: Add ASV tables for exynos5422/5800

 .../devicetree/bindings/arm/samsung/asv.txt   |  76 +++++
 arch/arm/boot/dts/exynos5.dtsi                |   2 +-
 arch/arm/boot/dts/exynos5800.dtsi             | 207 +++++++++++++
 arch/arm/mach-exynos/Kconfig                  |   2 +
 arch/arm64/Kconfig.platforms                  |   1 +
 drivers/soc/samsung/Kconfig                   |  16 +
 drivers/soc/samsung/Makefile                  |   5 +
 drivers/soc/samsung/exynos-asv.c              | 279 ++++++++++++++++++
 drivers/soc/samsung/exynos-asv.h              | 114 +++++++
 drivers/soc/samsung/exynos-chipid.c           | 113 +++++++
 drivers/soc/samsung/exynos-chipid.h           |  48 +++
 drivers/soc/samsung/exynos5422-asv.c          | 209 +++++++++++++
 drivers/soc/samsung/exynos5422-asv.h          |  25 ++
 13 files changed, 1096 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/arm/samsung/asv.txt
 create mode 100644 drivers/soc/samsung/exynos-asv.c
 create mode 100644 drivers/soc/samsung/exynos-asv.h
 create mode 100644 drivers/soc/samsung/exynos-chipid.c
 create mode 100644 drivers/soc/samsung/exynos-chipid.h
 create mode 100644 drivers/soc/samsung/exynos5422-asv.c
 create mode 100644 drivers/soc/samsung/exynos5422-asv.h

-- 
2.17.1




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux