mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
eaffc4de16
Add missing 2.0GHz, 1.9GHz & 1.8GHz OPPs (for A15 cores) and 1.4GHz OPP (for A7 cores). Also update common Odroid-XU3 Lite/XU3/XU4 thermal cooling maps to account for new OPPs. Since some new OPPs are not available on all Exynos5422/5800 boards modify dts files for Odroid XU3 Lite (limited to 1.8 GHz / 1.3 GHz) & Peach Pi (limited to 2.0 GHz / 1.3 GHz) accordingly. This patch uses maximum voltages for new OPPs. This is a temporary solution till proper Exynos ASV support is added. Also while at it fix the number of cooling down steps for big cores (should be 11 instead of 12 on Odroid XU3 Lite and 14 on XU3/XU4). Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> [mszyprow: rebased onto v5.5-rc1 and adapted to recent dts changes, fixed removal of the 1.4GHz OPP for A7s on Peach-Pi] Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
447 lines
9.9 KiB
Plaintext
447 lines
9.9 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Hardkernel Odroid XU3/XU3-Lite/XU4 boards common device tree source
|
|
*
|
|
* Copyright (c) 2013 Samsung Electronics Co., Ltd.
|
|
* http://www.samsung.com
|
|
* Copyright (c) 2014 Collabora Ltd.
|
|
* Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
|
|
* Anand Moon <linux.amoon@gmail.com>
|
|
*/
|
|
|
|
#include <dt-bindings/input/input.h>
|
|
#include "exynos5422-odroid-core.dtsi"
|
|
|
|
/ {
|
|
gpio_keys {
|
|
compatible = "gpio-keys";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&power_key>;
|
|
|
|
power_key {
|
|
/*
|
|
* The power button (SW2) is connected to the PWRON
|
|
* pin (active high) of the S2MPS11 PMIC, which acts
|
|
* as a 16ms debouce filter and signal inverter with
|
|
* output on ONOB pin (active low). ONOB PMIC pin is
|
|
* then connected to XEINT3 SoC pin.
|
|
*/
|
|
gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_POWER>;
|
|
label = "power key";
|
|
debounce-interval = <0>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
emmc_pwrseq: pwrseq {
|
|
pinctrl-0 = <&emmc_nrst_pin>;
|
|
pinctrl-names = "default";
|
|
compatible = "mmc-pwrseq-emmc";
|
|
reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
fan0: pwm-fan {
|
|
compatible = "pwm-fan";
|
|
pwms = <&pwm 0 20972 0>;
|
|
#cooling-cells = <2>;
|
|
cooling-levels = <0 130 170 230>;
|
|
};
|
|
|
|
thermal-zones {
|
|
cpu0_thermal: cpu0-thermal {
|
|
thermal-sensors = <&tmu_cpu0 0>;
|
|
polling-delay-passive = <250>;
|
|
polling-delay = <0>;
|
|
trips {
|
|
cpu0_alert0: cpu-alert-0 {
|
|
temperature = <50000>; /* millicelsius */
|
|
hysteresis = <5000>; /* millicelsius */
|
|
type = "active";
|
|
};
|
|
cpu0_alert1: cpu-alert-1 {
|
|
temperature = <60000>; /* millicelsius */
|
|
hysteresis = <5000>; /* millicelsius */
|
|
type = "active";
|
|
};
|
|
cpu0_alert2: cpu-alert-2 {
|
|
temperature = <70000>; /* millicelsius */
|
|
hysteresis = <5000>; /* millicelsius */
|
|
type = "active";
|
|
};
|
|
cpu0_crit0: cpu-crit-0 {
|
|
temperature = <120000>; /* millicelsius */
|
|
hysteresis = <0>; /* millicelsius */
|
|
type = "critical";
|
|
};
|
|
/*
|
|
* Exynos542x supports only 4 trip-points
|
|
* so for these polling mode is required.
|
|
* Start polling at temperature level of last
|
|
* interrupt-driven trip: cpu0_alert2
|
|
*/
|
|
cpu0_alert3: cpu-alert-3 {
|
|
temperature = <70000>; /* millicelsius */
|
|
hysteresis = <10000>; /* millicelsius */
|
|
type = "passive";
|
|
};
|
|
cpu0_alert4: cpu-alert-4 {
|
|
temperature = <85000>; /* millicelsius */
|
|
hysteresis = <10000>; /* millicelsius */
|
|
type = "passive";
|
|
};
|
|
};
|
|
cooling-maps {
|
|
map0 {
|
|
trip = <&cpu0_alert0>;
|
|
cooling-device = <&fan0 0 1>;
|
|
};
|
|
map1 {
|
|
trip = <&cpu0_alert1>;
|
|
cooling-device = <&fan0 1 2>;
|
|
};
|
|
map2 {
|
|
trip = <&cpu0_alert2>;
|
|
cooling-device = <&fan0 2 3>;
|
|
};
|
|
/*
|
|
* When reaching cpu0_alert3, reduce CPU
|
|
* by 2 steps. On Exynos5422/5800 that would
|
|
* (usually) be: 1800 MHz and 1200 MHz.
|
|
*/
|
|
map3 {
|
|
trip = <&cpu0_alert3>;
|
|
cooling-device = <&cpu0 0 2>,
|
|
<&cpu1 0 2>,
|
|
<&cpu2 0 2>,
|
|
<&cpu3 0 2>,
|
|
<&cpu4 0 2>,
|
|
<&cpu5 0 2>,
|
|
<&cpu6 0 2>,
|
|
<&cpu7 0 2>;
|
|
};
|
|
/*
|
|
* When reaching cpu0_alert4, reduce CPU
|
|
* further, down to 600 MHz (14 steps for big,
|
|
* 8 steps for LITTLE).
|
|
*/
|
|
cpu0_cooling_map4: map4 {
|
|
trip = <&cpu0_alert4>;
|
|
cooling-device = <&cpu0 3 8>,
|
|
<&cpu1 3 8>,
|
|
<&cpu2 3 8>,
|
|
<&cpu3 3 8>,
|
|
<&cpu4 3 14>,
|
|
<&cpu5 3 14>,
|
|
<&cpu6 3 14>,
|
|
<&cpu7 3 14>;
|
|
};
|
|
};
|
|
};
|
|
cpu1_thermal: cpu1-thermal {
|
|
thermal-sensors = <&tmu_cpu1 0>;
|
|
polling-delay-passive = <250>;
|
|
polling-delay = <0>;
|
|
trips {
|
|
cpu1_alert0: cpu-alert-0 {
|
|
temperature = <50000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu1_alert1: cpu-alert-1 {
|
|
temperature = <60000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu1_alert2: cpu-alert-2 {
|
|
temperature = <70000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu1_crit0: cpu-crit-0 {
|
|
temperature = <120000>;
|
|
hysteresis = <0>;
|
|
type = "critical";
|
|
};
|
|
cpu1_alert3: cpu-alert-3 {
|
|
temperature = <70000>;
|
|
hysteresis = <10000>;
|
|
type = "passive";
|
|
};
|
|
cpu1_alert4: cpu-alert-4 {
|
|
temperature = <85000>;
|
|
hysteresis = <10000>;
|
|
type = "passive";
|
|
};
|
|
};
|
|
cooling-maps {
|
|
map0 {
|
|
trip = <&cpu1_alert0>;
|
|
cooling-device = <&fan0 0 1>;
|
|
};
|
|
map1 {
|
|
trip = <&cpu1_alert1>;
|
|
cooling-device = <&fan0 1 2>;
|
|
};
|
|
map2 {
|
|
trip = <&cpu1_alert2>;
|
|
cooling-device = <&fan0 2 3>;
|
|
};
|
|
map3 {
|
|
trip = <&cpu1_alert3>;
|
|
cooling-device = <&cpu0 0 2>,
|
|
<&cpu1 0 2>,
|
|
<&cpu2 0 2>,
|
|
<&cpu3 0 2>,
|
|
<&cpu4 0 2>,
|
|
<&cpu5 0 2>,
|
|
<&cpu6 0 2>,
|
|
<&cpu7 0 2>;
|
|
};
|
|
cpu1_cooling_map4: map4 {
|
|
trip = <&cpu1_alert4>;
|
|
cooling-device = <&cpu0 3 8>,
|
|
<&cpu1 3 8>,
|
|
<&cpu2 3 8>,
|
|
<&cpu3 3 8>,
|
|
<&cpu4 3 14>,
|
|
<&cpu5 3 14>,
|
|
<&cpu6 3 14>,
|
|
<&cpu7 3 14>;
|
|
};
|
|
};
|
|
};
|
|
cpu2_thermal: cpu2-thermal {
|
|
thermal-sensors = <&tmu_cpu2 0>;
|
|
polling-delay-passive = <250>;
|
|
polling-delay = <0>;
|
|
trips {
|
|
cpu2_alert0: cpu-alert-0 {
|
|
temperature = <50000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu2_alert1: cpu-alert-1 {
|
|
temperature = <60000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu2_alert2: cpu-alert-2 {
|
|
temperature = <70000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu2_crit0: cpu-crit-0 {
|
|
temperature = <120000>;
|
|
hysteresis = <0>;
|
|
type = "critical";
|
|
};
|
|
cpu2_alert3: cpu-alert-3 {
|
|
temperature = <70000>;
|
|
hysteresis = <10000>;
|
|
type = "passive";
|
|
};
|
|
cpu2_alert4: cpu-alert-4 {
|
|
temperature = <85000>;
|
|
hysteresis = <10000>;
|
|
type = "passive";
|
|
};
|
|
};
|
|
cooling-maps {
|
|
map0 {
|
|
trip = <&cpu2_alert0>;
|
|
cooling-device = <&fan0 0 1>;
|
|
};
|
|
map1 {
|
|
trip = <&cpu2_alert1>;
|
|
cooling-device = <&fan0 1 2>;
|
|
};
|
|
map2 {
|
|
trip = <&cpu2_alert2>;
|
|
cooling-device = <&fan0 2 3>;
|
|
};
|
|
map3 {
|
|
trip = <&cpu2_alert3>;
|
|
cooling-device = <&cpu0 0 2>,
|
|
<&cpu1 0 2>,
|
|
<&cpu2 0 2>,
|
|
<&cpu3 0 2>,
|
|
<&cpu4 0 2>,
|
|
<&cpu5 0 2>,
|
|
<&cpu6 0 2>,
|
|
<&cpu7 0 2>;
|
|
};
|
|
cpu2_cooling_map4: map4 {
|
|
trip = <&cpu2_alert4>;
|
|
cooling-device = <&cpu0 3 8>,
|
|
<&cpu1 3 8>,
|
|
<&cpu2 3 8>,
|
|
<&cpu3 3 8>,
|
|
<&cpu4 3 14>,
|
|
<&cpu5 3 14>,
|
|
<&cpu6 3 14>,
|
|
<&cpu7 3 14>;
|
|
};
|
|
};
|
|
};
|
|
cpu3_thermal: cpu3-thermal {
|
|
thermal-sensors = <&tmu_cpu3 0>;
|
|
polling-delay-passive = <250>;
|
|
polling-delay = <0>;
|
|
trips {
|
|
cpu3_alert0: cpu-alert-0 {
|
|
temperature = <50000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu3_alert1: cpu-alert-1 {
|
|
temperature = <60000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu3_alert2: cpu-alert-2 {
|
|
temperature = <70000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
cpu3_crit0: cpu-crit-0 {
|
|
temperature = <120000>;
|
|
hysteresis = <0>;
|
|
type = "critical";
|
|
};
|
|
cpu3_alert3: cpu-alert-3 {
|
|
temperature = <70000>;
|
|
hysteresis = <10000>;
|
|
type = "passive";
|
|
};
|
|
cpu3_alert4: cpu-alert-4 {
|
|
temperature = <85000>;
|
|
hysteresis = <10000>;
|
|
type = "passive";
|
|
};
|
|
};
|
|
cooling-maps {
|
|
map0 {
|
|
trip = <&cpu3_alert0>;
|
|
cooling-device = <&fan0 0 1>;
|
|
};
|
|
map1 {
|
|
trip = <&cpu3_alert1>;
|
|
cooling-device = <&fan0 1 2>;
|
|
};
|
|
map2 {
|
|
trip = <&cpu3_alert2>;
|
|
cooling-device = <&fan0 2 3>;
|
|
};
|
|
map3 {
|
|
trip = <&cpu3_alert3>;
|
|
cooling-device = <&cpu0 0 2>,
|
|
<&cpu1 0 2>,
|
|
<&cpu2 0 2>,
|
|
<&cpu3 0 2>,
|
|
<&cpu4 0 2>,
|
|
<&cpu5 0 2>,
|
|
<&cpu6 0 2>,
|
|
<&cpu7 0 2>;
|
|
};
|
|
cpu3_cooling_map4: map4 {
|
|
trip = <&cpu3_alert4>;
|
|
cooling-device = <&cpu0 3 8>,
|
|
<&cpu1 3 8>,
|
|
<&cpu2 3 8>,
|
|
<&cpu3 3 8>,
|
|
<&cpu4 3 14>,
|
|
<&cpu5 3 14>,
|
|
<&cpu6 3 14>,
|
|
<&cpu7 3 14>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&buck10_reg {
|
|
/* Supplies vmmc-supply of mmc_0 */
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
&hdmi {
|
|
status = "okay";
|
|
ddc = <&i2c_2>;
|
|
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&hdmi_hpd_irq>;
|
|
|
|
vdd_osc-supply = <&ldo7_reg>;
|
|
vdd_pll-supply = <&ldo6_reg>;
|
|
vdd-supply = <&ldo6_reg>;
|
|
};
|
|
|
|
&hdmicec {
|
|
status = "okay";
|
|
needs-hpd;
|
|
};
|
|
|
|
&i2c_2 {
|
|
samsung,i2c-sda-delay = <100>;
|
|
samsung,i2c-max-bus-freq = <66000>;
|
|
/* used by HDMI DDC */
|
|
status = "okay";
|
|
};
|
|
|
|
&ldo26_reg {
|
|
regulator-min-microvolt = <3000000>;
|
|
regulator-max-microvolt = <3000000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
&mixer {
|
|
status = "okay";
|
|
};
|
|
|
|
&mmc_0 {
|
|
status = "okay";
|
|
mmc-pwrseq = <&emmc_pwrseq>;
|
|
card-detect-delay = <200>;
|
|
samsung,dw-mshc-ciu-div = <3>;
|
|
samsung,dw-mshc-sdr-timing = <0 4>;
|
|
samsung,dw-mshc-ddr-timing = <0 2>;
|
|
samsung,dw-mshc-hs400-timing = <0 2>;
|
|
samsung,read-strobe-delay = <90>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>;
|
|
bus-width = <8>;
|
|
cap-mmc-highspeed;
|
|
mmc-hs200-1_8v;
|
|
mmc-hs400-1_8v;
|
|
max-frequency = <200000000>;
|
|
vmmc-supply = <&ldo18_reg>;
|
|
vqmmc-supply = <&ldo3_reg>;
|
|
};
|
|
|
|
&pinctrl_0 {
|
|
power_key: power-key {
|
|
samsung,pins = "gpx0-3";
|
|
samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
|
|
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
|
|
samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
|
|
};
|
|
|
|
hdmi_hpd_irq: hdmi-hpd-irq {
|
|
samsung,pins = "gpx3-7";
|
|
samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
|
|
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
|
|
samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
|
|
};
|
|
};
|
|
|
|
&pinctrl_1 {
|
|
emmc_nrst_pin: emmc-nrst {
|
|
samsung,pins = "gpd1-0";
|
|
samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
|
|
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
|
|
samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
|
|
};
|
|
};
|