On Mon, Oct 28, 2019 at 04:15:33PM +0100, Sylwester Nawrocki wrote: > The Adaptive Supply Voltage (ASV) driver adjusts CPU cluster operating > points depending on exact revision of an SoC retrieved from the CHIPID > block or the OTP memory. This allows for some power saving as for some > CPU clock frequencies we can lower CPU cluster's supply voltage comparing > to safe values common to all the SoC revisions. > > This patch adds support for Exynos5422/5800 SoC, it is partially based > on code from https://github.com/hardkernel/linux repository, > branch odroidxu4-4.14.y, files: arch/arm/mach-exynos/exynos5422-asv.[ch]. > > Tested on Odroid XU3, XU4, XU3 Lite. > > Signed-off-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> > --- > Changes since v5: > - "syscon" compatible in the chipid node is not required any more, > use device_node_to_regmap() instead of syscon_node_to_regmap(), > - dropped "Unsupported product ID" log, > - EXYNOS_ASV_SYSBSYS* enumeration simplified and moved to exynos5422 > specific header, > - dropped unnecessary headers inclusion, > - dropped unused argument from exynos5422_asv_parse* helpers, > - added const qualifier to some function arguments. > > Changes since v4: > - Fixed include guard in drivers/soc/samsung/exynos5422-asv.h > > Changes since v3: > - instead of removing/adding OPP use dedicated API to adjust OPP's > voltage, only exynos_asv_update_cpu_opps() function has changed, > - added a comment describing ASV tables at beginning of > exynos5422-asv.c file. > > Changes since v2: > - use devm_kzalloc() in probe() to avoid memory leak, > - removed leading spaces in exynos-chipid.h, > - removed unneeded <linux/init.h> header inclusion, > - dropped parentheses from exynos542_asv_parse_sg(), > - updated Kconfig entry, > - added const attribute to struct exynos_asv_susbsys::cpu_dt_compat. > > Changes since v1 (RFC): > - removed code for parsing the ASV OPP tables from DT, the ASV OPP tables > moved to the driver, > - converted to use the regmap API, > - converted to normal platform driver. > > --- > drivers/soc/samsung/Kconfig | 10 + > drivers/soc/samsung/Makefile | 3 + > drivers/soc/samsung/exynos-asv.c | 177 ++++++++++ > drivers/soc/samsung/exynos-asv.h | 71 ++++ > drivers/soc/samsung/exynos5422-asv.c | 505 +++++++++++++++++++++++++++ > drivers/soc/samsung/exynos5422-asv.h | 31 ++ > 6 files changed, 797 insertions(+) > create mode 100644 drivers/soc/samsung/exynos-asv.c > create mode 100644 drivers/soc/samsung/exynos-asv.h > create mode 100644 drivers/soc/samsung/exynos5422-asv.c Thanks, applied. Best regards, Krzysztof