21 May, 2019

1 commit


17 May, 2019

1 commit

  • Pull thermal management updates from Zhang Rui:

    - Remove the 'module' Kconfig option for thermal subsystem framework
    because the thermal framework are required to be ready as early as
    possible to avoid overheat at boot time (Daniel Lezcano)

    - Fix a bug that thermal framework pokes disabled thermal zones upon
    resume (Wei Wang)

    - A couple of cleanups and trivial fixes on int340x thermal drivers
    (Srinivas Pandruvada, Zhang Rui, Sumeet Pawnikar)

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    drivers: thermal: processor_thermal: Downgrade error message
    mlxsw: Remove obsolete dependency on THERMAL=m
    hwmon/drivers/core: Simplify complex dependency
    thermal/drivers/core: Fix typo in the option name
    thermal/drivers/core: Remove depends on THERMAL in Kconfig
    thermal/drivers/core: Remove module unload code
    thermal/drivers/core: Remove the module Kconfig's option
    thermal: core: skip update disabled thermal zones after suspend
    thermal: make device_register's type argument const
    thermal: intel: int340x: processor_thermal_device: simplify to get driver data
    thermal/int3403_thermal: favor _TMP instead of PTYP

    Linus Torvalds
     

14 May, 2019

2 commits

  • The devres.o gets linked if HAS_IOMEM is present so on ARCH=um
    allyesconfig (COMPILE_TEST) failed on many files with:

    drivers/thermal/thermal_mmio.o:
    In function 'thermal_mmio_probe':thermal_mmio.c:(.text+0xe1):
    undefined reference to `devm_ioremap_resource'

    The users of devm_ioremap_resource() which are compile-testable
    should depend on HAS_IOMEM.

    Reported-by: kbuild test robot
    Signed-off-by: Talel Shenhar
    Signed-off-by: Eduardo Valentin

    Talel Shenhar
     
  • This is a generic thermal driver for simple MMIO sensors, of which
    amazon,al-thermal is one.

    This device uses a single MMIO transaction to read the temperature and
    report it to the thermal subsystem.

    Signed-off-by: Talel Shenhar
    Reviewed-by: David Woodhouse
    Reviewed-by: Daniel Lezcano
    Signed-off-by: Eduardo Valentin

    Talel Shenhar
     

06 May, 2019

3 commits

  • Unlike the other options, the cpu cooling option is beginning
    with a lowercase letter, changing to a uppercase.

    Signed-off-by: Daniel Lezcano
    Signed-off-by: Zhang Rui

    Daniel Lezcano
     
  • The dependency on the THERMAL option to be set is already there implicitly
    by the "if THERMAL" conditionnal option. The sub Kconfigs do not have to
    check against the THERMAL option as they are called from a Kconfig block
    which is enabled by the conditionnal option.

    Remove the useless "depends on THERMAL" in the Kconfigs.

    Signed-off-by: Daniel Lezcano
    Signed-off-by: Zhang Rui

    Daniel Lezcano
     
  • The module support for the thermal subsystem makes little sense:
    - some subsystems relying on it are not modules, thus forcing the
    framework to be compiled in
    - it is compiled in for almost every configs, the remaining ones
    are a few platforms where I don't see why we can not switch the thermal
    to 'y'. The drivers can stay in tristate.
    - platforms need the thermal to be ready as soon as possible at boot time
    in order to mitigate

    Usually the subsystems framework are compiled-in and the plugs are as
    module.

    Remove the module option. The removal of the module related dead code will
    come after this patch gets in or is acked.

    Signed-off-by: Daniel Lezcano
    Acked-by: Guenter Roeck
    For mini2440:
    Acked-by: Krzysztof Kozlowski
    Acked-by: Paul Burton # MIPS part
    Acked-by: Robert Jarzmik
    Signed-off-by: Zhang Rui

    Daniel Lezcano
     

09 Mar, 2019

1 commit

  • Pull thermal soc updates from Eduardo Valentin:
    "Specifics:

    - mediatek thermal now supports MT8183

    - broadcom thermal now supports Stingray

    - qoirq now supports multiple sensors

    - fixes on different drivers: rcar, tsens, tegra

    Some new drivers are still pending further review and I chose to leave
    them for the next merge window while still sending this material"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
    thermal: rcar_gen3_thermal: Register hwmon sysfs interface
    thermal/qcom/tsens-common : fix possible object reference leak
    thermal: tegra: add get_trend ops
    thermal: tegra: fix memory allocation
    thermal: tegra: remove unnecessary warnings
    thermal: mediatek: add support for MT8183
    dt-bindings: thermal: add binding document for mt8183 thermal controller
    thermal: mediatek: add flag for bank selection
    thermal: mediatek: add thermal controller offset
    thermal: mediatek: add calibration item
    thermal: mediatek: add common index of vts settings.
    thermal: mediatek: fix register index error
    thermal: qoriq: add multiple sensors support
    thermal: broadcom: Add Stingray thermal driver
    dt-bindings: thermal: Add binding document for SR thermal

    Linus Torvalds
     

06 Feb, 2019

1 commit

  • Stingray SoC has six temperature sensor and those are
    configured, controlled and accessed to read temperature
    and update in DDR memory using m0 firmware.
    All six sensors has been given 4 bytes of memory in DDR
    to write temperature in millivolts.

    This thermal driver read temperature values from DDR
    because no direct access to sensors.
    Like this all temparature sensors are monitored and
    trips at critical temperature.

    If driver can't handle thermal runaways because of
    any unknown reason, then firmware in m0 Processor
    will handle.

    Reviewed-by: Ray Jui
    Reviewed-by: Scott Branden
    Reviewed-by: Vikram Prakash
    Reviewed-by: Rob Herring
    Signed-off-by: Pramod Kumar
    Signed-off-by: Srinath Mannam
    Signed-off-by: Eduardo Valentin

    Pramod Kumar
     

29 Jan, 2019

1 commit

  • The CPU cooling driver (cpu_cooling.c) allows the platform's cpufreq
    driver to register as a cooling device and cool down the platform by
    throttling the CPU frequency. In order to be able to auto-register a
    cpufreq driver as a cooling device from the cpufreq core, we need access
    to code inside cpu_cooling.c which, in turn, accesses code inside
    thermal core.

    CPU_FREQ is a bool while THERMAL is tristate. In some configurations
    (e.g. allmodconfig), CONFIG_THERMAL ends up as a module while
    CONFIG_CPU_FREQ is compiled in. This leads to following error:

    drivers/cpufreq/cpufreq.o: In function `cpufreq_offline':
    cpufreq.c:(.text+0x407c): undefined reference to `cpufreq_cooling_unregister'
    drivers/cpufreq/cpufreq.o: In function `cpufreq_online':
    cpufreq.c:(.text+0x70c0): undefined reference to `of_cpufreq_cooling_register'

    Given that platforms using CPU_THERMAL usually want it compiled-in so it
    is available early in boot, make CPU_THERMAL depend on THERMAL being
    compiled-in instead of allowing it to be a module.

    As a result of this change, get rid of the ugly (!CPU_THERMAL ||
    THERMAL) dependency in all cpufreq drivers using CPU_THERMAL.

    Suggested-by: Rafael J. Wysocki
    Signed-off-by: Amit Kucheria
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Amit Kucheria
     

06 Jan, 2019

2 commits

  • Pull thermal management updates from Zhang Rui:

    - Add locking for cooling device sysfs attribute in case the cooling
    device state is changed by userspace and thermal framework
    simultaneously. (Thara Gopinath)

    - Fix a problem that passive cooling is reset improperly after system
    suspend/resume. (Wei Wang)

    - Cleanup the driver/thermal/ directory by moving intel and qcom
    platform specific drivers to platform specific sub-directories. (Amit
    Kucheria)

    - Some trivial cleanups. (Lukasz Luba, Wolfram Sang)

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    thermal/intel: fixup for Kconfig string parsing tightening up
    drivers: thermal: Move QCOM_SPMI_TEMP_ALARM into the qcom subdir
    drivers: thermal: Move various drivers for intel platforms into a subdir
    thermal: Fix locking in cooling device sysfs update cur_state
    Thermal: do not clear passive state during system sleep
    thermal: zx2967_thermal: simplify getting .driver_data
    thermal: st: st_thermal: simplify getting .driver_data
    thermal: spear_thermal: simplify getting .driver_data
    thermal: rockchip_thermal: simplify getting .driver_data
    thermal: int340x_thermal: int3400_thermal: simplify getting .driver_data
    thermal: remove unused function parameter

    Linus Torvalds
     
  • Pull thermal SoC updates from Eduardo Valentin:

    - Tegra DT binding documentation for Tegra194

    - Armada now supports ap806 and cp110

    - RCAR thermal now supports R8A774C0 and R8A77990

    - Fixes on thermal_hwmon, IMX, generic-ADC, ST, RCAR, Broadcom,
    Uniphier, QCOM, Tegra, PowerClamp, and Armada thermal drivers.

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (22 commits)
    thermal: generic-adc: Fix adc to temp interpolation
    thermal: rcar_thermal: add R8A77990 support
    dt-bindings: thermal: rcar-thermal: add R8A77990 support
    thermal: rcar_thermal: add R8A774C0 support
    dt-bindings: thermal: rcar-thermal: add R8A774C0 support
    dt-bindings: cp110: document the thermal interrupt capabilities
    dt-bindings: ap806: document the thermal interrupt capabilities
    MAINTAINERS: thermal: add entry for Marvell MVEBU thermal driver
    thermal: armada: add overheat interrupt support
    thermal: st: fix Makefile typo
    thermal: uniphier: Convert to SPDX identifier
    thermal/intel_powerclamp: Change to use DEFINE_SHOW_ATTRIBUTE macro
    thermal: tegra: soctherm: Change to use DEFINE_SHOW_ATTRIBUTE macro
    dt-bindings: thermal: tegra-bpmp: Add Tegra194 support
    thermal: imx: save one condition block for normal case of nvmem initialization
    thermal: imx: fix for dependency on cpu-freq
    thermal: tsens: qcom: do not create duplicate regmap debugfs entries
    thermal: armada: Use PTR_ERR_OR_ZERO in armada_thermal_probe_legacy()
    dt-bindings: thermal: rcar-gen3-thermal: All variants use 3 interrupts
    thermal: broadcom: use devm_thermal_zone_of_sensor_register
    ...

    Linus Torvalds
     

02 Jan, 2019

1 commit

  • The thermal driver is a standalone driver for monitoring SoC temperature
    by enabling thermal sensor, so it can be enabled even when CONFIG_CPU_FREQ
    is NOT set. So remove the dependency with CPU_THERMAL.

    Introduce dummy function of legacy cooling register/unregister to make
    thermal driver probe successfully when CONFIG_CPU_FREQ is NOT set.

    Signed-off-by: Anson Huang
    Acked-by: Viresh Kumar
    Reviewed-by: Daniel Lezcano
    Signed-off-by: Eduardo Valentin

    Anson Huang
     

21 Dec, 2018

1 commit

  • The Kconfig lexer supports special characters such as '.' and '/' in
    the parameter context. In my understanding, the reason is just to
    support bare file paths in the source statement.

    I do not see a good reason to complicate Kconfig for the room of
    ambiguity.

    The majority of code already surrounds file paths with double quotes,
    and it makes sense since file paths are constant string literals.

    Make it treewide consistent now.

    Signed-off-by: Masahiro Yamada
    Acked-by: Wolfram Sang
    Acked-by: Geert Uytterhoeven
    Acked-by: Ingo Molnar

    Masahiro Yamada
     

07 Dec, 2018

2 commits


27 Oct, 2018

1 commit

  • Pull thermal SoC updates from Eduardo Valentin:
    "Several new things coming up. Specifics:

    - Rework of tsens and hisi thermal drivers

    - OF-thermal now allows sharing multiple cooling devices on maps

    - Added support for r8a7744 and R8A77970 on rcar thermal driver

    - Added support for r8a774a1 on rcar_gen3 thermal driver

    - New thermal driver stm32

    - Fixes on multiple thermal drivers: of-thermal, imx, qoriq, armada,
    qcom-spmi, rcar, da9062/61"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (41 commits)
    thermal: da9062/61: Prevent hardware access during system suspend
    thermal: rcar_thermal: Prevent doing work after unbind
    thermal: rcar_thermal: Prevent hardware access during system suspend
    thermal: rcar_gen3_thermal: add R8A77980 support
    dt-bindings: thermal: rcar-gen3-thermal: document R8A77980 bindings
    thermal: add stm32 thermal driver
    dt-bindings: stm32-thermal: add binding documentation
    thermal: rcar_thermal: add R8A77970 support
    dt-bindings: thermal: rcar-thermal: document R8A77970 bindings
    thermal: rcar_thermal: fix duplicate IRQ request
    dt-bindings: thermal: rcar: Add device tree support for r8a7744
    thermal/drivers/hisi: Add the dual clusters sensors for hi3660
    thermal/drivers/hisi: Add more sensors channel
    thermal/drivers/hisi: Remove pointless irq field
    thermal/drivers/hisi: Use platform_get_irq_byname
    thermal/drivers/hisi: Replace macro name with relevant sensor location
    thermal/drivers/hisi: Add multiple sensors support
    thermal/drivers/hisi: Prepare to support multiple sensors
    thermal/drivers/hisi: Factor out the probe functions
    thermal/drivers/hisi: Set the thermal zone private data to the sensor pointer
    ...

    Linus Torvalds
     

26 Oct, 2018

1 commit

  • Add support for DTS thermal sensor that can be
    found on some STM32 platforms.

    This driver is based on OF and works in interrupt
    mode.

    It offers two temperature trip points:
    passive and critical. The first is intended for
    passive cooling notification while the second is
    used for over-temperature reset.

    Signed-off-by: David Hernandez Sanchez
    Signed-off-by: Eduardo Valentin

    David HERNANDEZ SANCHEZ
     

26 Jul, 2018

1 commit

  • The Intel SoC DTS uses a hardcoded GSI number, before this commit
    it was passing it to request_irq as if it were a linux irq number,
    but there is no 1:1 mapping so in essence it was requesting a
    random interrupt.

    Besides this causing the DTS driver to not actually get an interrupt
    if the thermal thresholds are exceeded this also is causing an
    interrupt conflict on some devices since the linux irq 86 which is
    being requested is already in use, leading to oopses like this:

    genirq: Flags mismatch irq 86. 00002001 (soc_dts) vs. 00000083 (volume_down)
    CPU: 0 PID: 601 Comm: systemd-udevd Tainted: G C OE 4.17.0-rc6+ #45
    Hardware name: Insyde i86/Type2 - Board Product Name, BIOS CHUWI.D86JLBNR03 01/14/2015
    Call Trace:
    dump_stack+0x5c/0x80
    __setup_irq.cold.50+0x4e/0xac
    ? request_threaded_irq+0xad/0x160
    request_threaded_irq+0xf5/0x160
    ? 0xffffffffc0a93000
    intel_soc_thermal_init+0x74/0x1000 [intel_soc_dts_thermal]

    This commit makes the intel_soc_dts_thermal.c code call
    acpi_register_gsi() to translate the hardcoded IO-APIC GSI number (86)
    to a linux irq, so that the dts code uses the right interrupt and we
    no longer get an oops about an irq conflict.

    Signed-off-by: Hans de Goede
    Signed-off-by: Zhang Rui

    Hans de Goede
     

02 Apr, 2018

1 commit

  • This extends the sysfs interface for thermal cooling devices and exposes
    some pretty useful statistics. These statistics have proven to be quite
    useful specially while doing benchmarks related to the task scheduler,
    where we want to make sure that nothing has disrupted the test,
    specially the cooling device which may have put constraints on the CPUs.
    The information exposed here tells us to what extent the CPUs were
    constrained by the thermal framework.

    The write-only "reset" file is used to reset the statistics.

    The read-only "time_in_state_ms" file shows the time (in msec) spent by the
    device in the respective cooling states, and it prints one line per
    cooling state.

    The read-only "total_trans" file shows single positive integer value
    showing the total number of cooling state transitions the device has
    gone through since the time the cooling device is registered or the time
    when statistics were reset last.

    The read-only "trans_table" file shows a two dimensional matrix, where
    an entry (row i, column j) represents the number of transitions
    from State_i to State_j.

    This is how the directory structure looks like for a single cooling
    device:

    $ ls -R /sys/class/thermal/cooling_device0/
    /sys/class/thermal/cooling_device0/:
    cur_state max_state power stats subsystem type uevent

    /sys/class/thermal/cooling_device0/power:
    autosuspend_delay_ms runtime_active_time runtime_suspended_time
    control runtime_status

    /sys/class/thermal/cooling_device0/stats:
    reset time_in_state_ms total_trans trans_table

    This is tested on ARM 64-bit Hisilicon hikey620 board running Ubuntu and
    ARM 64-bit Hisilicon hikey960 board running Android.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    Viresh Kumar
     

02 Jan, 2018

1 commit

  • Update Armada thermal driver Kconfig entry as well as the driver's
    MODULE_DESCRIPTION content, now that 64-bit SoCs are also supported,
    eg. Armada 7K and Armada 8K.

    Use the generic term "Marvell EBU Armada SoCs" instead of listing all
    the supported SoCs everywhere (excepted in the Kconfig description,
    where it is useful to have a list).

    Signed-off-by: Miquel Raynal
    Reviewed-by: Gregory CLEMENT
    Signed-off-by: Eduardo Valentin

    Miquel Raynal
     

02 Nov, 2017

1 commit


01 Nov, 2017

2 commits

  • The AVS TMON core provides temperature readings, a pair of configurable
    high- and low-temperature threshold interrupts, and an emergency
    over-temperature chip reset. The driver utilizes the first two to
    provide temperature readings and high-temperature notifications to
    applications. The over-temperature reset is not exposed to
    applications; this reset threshold is critical to the system and should
    be set with care within the bootloader.

    Applications may choose to utilize the notification mechanism, the
    temperature reading mechanism (e.g., through polling), or both.

    Signed-off-by: Brian Norris
    Signed-off-by: Doug Berger
    Signed-off-by: Markus Mayer
    Signed-off-by: Eduardo Valentin

    Brian Norris
     
  • Moving the bcm2835 thermal driver to the broadcom directory prevented it
    from getting enabled for arm64 builds, since the broadcom directory is only
    available when 32-bit specific ARCH_BCM is set.

    Fix this by enabling the Broadcom menu for ARCH_BCM or ARCH_BCM2835.

    Fixes: 6892cf07e733 ("thermal: bcm2835: move to the broadcom subdirectory")
    Reviewed-by: Eric Anholt
    Signed-off-by: Allen Wild
    Signed-off-by: Stefan Wahren
    Signed-off-by: Eduardo Valentin

    Allen Wild
     

18 Oct, 2017

1 commit

  • The driver now fails to link into vmlinux when CONFIG_NVMEM is a loadable
    module:

    drivers/thermal/imx_thermal.o: In function `imx_thermal_probe':
    imx_thermal.c:(.text+0x360): undefined reference to `nvmem_cell_read_u32'
    imx_thermal.c:(.text+0x360): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `nvmem_cell_read_u32'
    imx_thermal.c:(.text+0x388): undefined reference to `nvmem_cell_read_u32'
    imx_thermal.c:(.text+0x388): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `nvmem_cell_read_u32'

    This adds a Kconfig dependency to force it to be a module as well
    when its dependency is loadable.

    Fixes: 7fe5ba04fcdc ("thermal: imx: Add support for reading OCOTP through nvmem")
    Signed-off-by: Arnd Bergmann
    Reviewed-by: Leonard Crestez
    Signed-off-by: Zhang Rui

    Arnd Bergmann
     

08 Sep, 2017

1 commit


11 Aug, 2017

1 commit


08 Aug, 2017

1 commit

  • We get a Kconfig warning when selecting this without also enabling
    CONFIG_PCI:

    warning: (X86_INTEL_LPSS && INTEL_SOC_DTS_IOSF_CORE
    && SND_SST_IPC_ACPI && MMC_SDHCI_ACPI && PUNIT_ATOM_DEBUG)
    selects IOSF_MBI which has unmet direct dependencies (PCI)

    This adds a new depedency.

    Fixes: 3a2419f865a6 ("Thermal: Intel SoC: DTS thermal use common APIs")
    Signed-off-by: Arnd Bergmann
    Reviewed-by: Srinivas Pandruvada
    Signed-off-by: Zhang Rui

    Arnd Bergmann
     

13 May, 2017

1 commit

  • Pull thermal management updates from Zhang Rui:

    - Fix a problem where orderly_shutdown() is called for multiple times
    due to multiple critical overheating events raised in a short period
    by platform thermal driver. (Keerthy)

    - Introduce a backup thermal shutdown mechanism, which invokes
    kernel_power_off()/emergency_restart() directly, after
    orderly_shutdown() being issued for certain amount of time(specified
    via Kconfig). This is useful in certain conditions that userspace may
    be unable to power off the system in a clean manner and leaves the
    system in a critical state, like in the middle of driver probing
    phase. (Keerthy)

    - Introduce a new interface in thermal devfreq_cooling code so that the
    driver can provide more precise data regarding actual power to the
    thermal governor every time the power budget is calculated. (Lukasz
    Luba)

    - Introduce BCM 2835 soc thermal driver and northstar thermal driver,
    within a new sub-folder. (Rafał Miłecki)

    - Introduce DA9062/61 thermal driver. (Steve Twiss)

    - Remove non-DT booting on TI-SoC driver. Also add support to fetching
    coefficients from DT. (Keerthy)

    - Refactorf RCAR Gen3 thermal driver. (Niklas Söderlund)

    - Small fix on MTK and intel-soc-dts thermal driver. (Dawei Chien,
    Brian Bian)

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (25 commits)
    thermal: core: Add a back up thermal shutdown mechanism
    thermal: core: Allow orderly_poweroff to be called only once
    Thermal: Intel SoC DTS: Change interrupt request behavior
    trace: thermal: add another parameter 'power' to the tracing function
    thermal: devfreq_cooling: add new interface for direct power read
    thermal: devfreq_cooling: refactor code and add get_voltage function
    thermal: mt8173: minor mtk_thermal.c cleanups
    thermal: bcm2835: move to the broadcom subdirectory
    thermal: broadcom: ns: specify myself as MODULE_AUTHOR
    thermal: da9062/61: Thermal junction temperature monitoring driver
    Documentation: devicetree: thermal: da9062/61 TJUNC temperature binding
    thermal: broadcom: add Northstar thermal driver
    dt-bindings: thermal: add support for Broadcom's Northstar thermal
    thermal: bcm2835: add thermal driver for bcm2835 SoC
    dt-bindings: Add thermal zone to bcm2835-thermal example
    thermal: rcar_gen3_thermal: add suspend and resume support
    thermal: rcar_gen3_thermal: store device match data in private structure
    thermal: rcar_gen3_thermal: enable hardware interrupts for trip points
    thermal: rcar_gen3_thermal: record and check number of TSCs found
    thermal: rcar_gen3_thermal: check that TSC exists before memory allocation
    ...

    Linus Torvalds
     

06 May, 2017

1 commit


05 May, 2017

1 commit

  • orderly_poweroff is triggered when a graceful shutdown
    of system is desired. This may be used in many critical states of the
    kernel such as when subsystems detects conditions such as critical
    temperature conditions. However, in certain conditions in system
    boot up sequences like those in the middle of driver probes being
    initiated, userspace will be unable to power off the system in a clean
    manner and leaves the system in a critical state. In cases like these,
    the /sbin/poweroff will return success (having forked off to attempt
    powering off the system. However, the system overall will fail to
    completely poweroff (since other modules will be probed) and the system
    is still functional with no userspace (since that would have shut itself
    off).

    However, there is no clean way of detecting such failure of userspace
    powering off the system. In such scenarios, it is necessary for a backup
    workqueue to be able to force a shutdown of the system when orderly
    shutdown is not successful after a configurable time period.

    Reported-by: Nishanth Menon
    Signed-off-by: Keerthy
    Acked-by: Eduardo Valentin
    Signed-off-by: Zhang Rui

    Keerthy
     

04 May, 2017

1 commit

  • Pull MFD updates from Lee Jones:
    "New Drivers:
    - Freescale MXS Low Resolution ADC
    - Freescale i.MX23/i.MX28 LRADC touchscreen
    - Motorola CPCAP Power Button
    - TI LMU (Lighting Management Unit)
    - Atmel SMC (Static Memory Controller)

    New Device Support:
    - Add support for X-Powers AXP803 to axp20x
    - Add support for Dialog Semi DA9061 to da9062-core
    - Add support for Intel Cougar Mountain to lpc_ich
    - Add support for Intel Gemini Lake to lpc_ich

    New Functionality:
    - Add Device Tree support; wm831x-*, axp20x, ti-lmu, da9062, sun4i-gpadc
    - Add IRQ sense support; motorola-cpcap
    - Add ACPI support; cros_ec
    - Add Reset support; altera-a10sr
    - Add ADC support; axp20x
    - Add AC Power support; axp20x
    - Add Runtime PM support; atmel-ebi, exynos-lpass
    - Add Battery Power Supply support; axp20x
    - Add Clock support; exynos-lpass, hi655x-pmic

    Fix-ups:
    - Implicitly specify required headers; motorola-cpcap, intel_soc_pmic_bxtwc
    - Add .remove() method; stm32-timers, exynos-lpass
    - Remove unused code; intel_soc_pmic_core, intel-lpss-acpi, ipaq-micro, atmel-smc, menelaus
    - Rename variables for clarity; axp20x
    - Convert pr_warning() to pr_warn(); db8500-prcmu, sta2x11-mfd, twl4030-power
    - Improve formatting; arizona-core, axp20x
    - Use raw_spinlock_*() variants; asic3, t7l66xb, tc6393xb
    - Simplify/refactor code; arizona-core, atmel-ebi
    - Improve error checking; intel_soc_pmic_core

    Bug Fixes:
    - Ensure OMAP3630/3730 boards can successfully reboot; twl4030-power
    - Correct max-register value; stm32-timers
    - Extend timeout to account for clock stretching; cros_ec_spi
    - Use correct IRQ trigger type; motorola-cpcap
    - Fix bad use of IRQ sense register; motorola-cpcap
    - Logic error "||" should be "&&"; mxs-lradc-ts"

    * tag 'mfd-next-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (79 commits)
    input: touchscreen: mxs-lradc: || vs && typos
    dt-bindings: Add AXP803's regulator info
    mfd: axp20x: Support AXP803 variant
    dt-bindings: Add device tree binding for X-Powers AXP803 PMIC
    dt-bindings: Make AXP20X compatible strings one per line
    mfd: intel_soc_pmic_core: Fix unchecked return value
    mfd: menelaus: Remove obsolete local_irq_disable() and local_irq_enable()
    mfd: omap-usb-tll: Configure ULPIAUTOIDLE
    mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
    mfd: palmas: Fixed spelling mistake in error message
    mfd: lpc_ich: Add support for Intel Gemini Lake SoC
    mfd: hi655x: Add the clock cell to provide WiFi and Bluetooth
    mfd: intel_soc_pmic: Fix a mess with compilation units
    mfd: exynos-lpass: Add runtime PM support
    mfd: exynos-lpass: Add missing remove() function
    mfd: exynos-lpass: Add support for clocks
    mfd: exynos-lpass: Remove pad retention control
    iio: adc: add support for X-Powers AXP20X and AXP22X PMICs ADCs
    mfd: cpcap: Fix bad use of IRQ sense register
    mfd: cpcap: Use ack_invert interrupts
    ...

    Linus Torvalds
     

27 Apr, 2017

1 commit

  • Crystal Cove and Whiskey Cove are two different PMICs which are
    installed on Intel Atom SoC based platforms.

    Moreover there are two independent drivers that by some reason were
    supposed (*) to get into one kernel module.

    Fix the mess by clarifying Kconfig option for Crystal Cove and split
    Whiskey Cove out of it.

    (*) It looks like the configuration was never tested with
    INTEL_SOC_PMIC=n. The line in Makefile is actually wrong.

    Cc: "Rafael J. Wysocki" (supporter:ACPI)
    Acked-by: Linus Walleij
    Acked-by: Zhang Rui
    Signed-off-by: Andy Shevchenko
    Signed-off-by: Lee Jones

    Andy Shevchenko
     

23 Apr, 2017

1 commit


07 Apr, 2017

2 commits

  • Add junction temperature monitoring supervisor device driver, compatible
    with the DA9062 and DA9061 PMICs. A MODULE_DEVICE_TABLE() macro is added.

    If the PMIC's internal junction temperature rises above T_WARN (125 degC)
    an interrupt is issued. This T_WARN level is defined as the
    THERMAL_TRIP_HOT trip-wire inside the device driver.

    The thermal triggering mechanism is interrupt based and happens when the
    temperature rises above a given threshold level. The component cannot
    return an exact temperature, it only has knowledge if the temperature is
    above or below a given threshold value. A status bit must be polled to
    detect when the temperature falls below that threshold level again. A
    kernel work queue is configured to repeatedly poll and detect when the
    temperature falls below this trip-wire, between 1 and 10 second intervals
    (defaulting at 3 seconds).

    This scheme is provided as an example. It would be expected that any
    final implementation will also include a notify() function and any of these
    settings could be altered to match the application where appropriate.

    When over-temperature is reached, the interrupt from the DA9061/2 will be
    repeatedly triggered. The IRQ is therefore disabled when the first
    over-temperature event happens and the status bit is polled using a
    work-queue until it becomes false.

    This strategy is designed to allow the periodic transmission of uevents
    (HOT trip point) as the first level of temperature supervision method. It
    is intended for non-invasive temperature control, where the necessary
    measures for cooling the system down are left to the host software. Once
    the temperature falls again, the IRQ is re-enabled so a new critical
    over-temperature event can be detected.

    Reviewed-by: Lukasz Luba
    Signed-off-by: Steve Twiss
    Signed-off-by: Eduardo Valentin

    Steve Twiss
     
  • Northstar is a SoC family commonly used in home routers. This commit
    adds a driver for checking CPU temperature. As Northstar Plus seems to
    also have this IP block this new symbol gets ARCH_BCM_IPROC dependency.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Jon Mason
    Signed-off-by: Eduardo Valentin

    Rafał Miłecki
     

02 Apr, 2017

1 commit


16 Mar, 2017

1 commit

  • The best place to register the CPU cooling device is from the cpufreq
    driver as we would know if all the resources are already available or
    not. That's what is done for the cpufreq-dt.c driver as well.

    The cpu-cooling driver for dbx500 platform was just (un)registering
    with the thermal framework and that can be handled easily by the cpufreq
    driver as well and in proper sequence as well.

    Get rid of the cooling driver and its its users and manage everything
    from the cpufreq driver instead.

    Signed-off-by: Viresh Kumar
    Tested-by: Linus Walleij
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     

19 Feb, 2017

1 commit


20 Jan, 2017

1 commit

  • Add support for R-Car Gen3 thermal sensors. Polling only for now,
    interrupts will be added incrementally. Same goes for reading fuses.
    This is documented already, but no hardware available for now.

    Signed-off-by: Hien Dang
    Signed-off-by: Thao Nguyen
    Signed-off-by: Khiem Nguyen
    Signed-off-by: Wolfram Sang
    [Niklas: document and rework temperature calculation]
    Signed-off-by: Niklas Söderlund
    Signed-off-by: Eduardo Valentin

    Wolfram Sang