Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) # Copyright 2020 Linaro Ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) $id: http://devicetree.org/schemas/thermal/thermal-idle.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) title: Thermal idle cooling device binding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)   - Daniel Lezcano <daniel.lezcano@linaro.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)   The thermal idle cooling device allows the system to passively
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)   mitigate the temperature on the device by injecting idle cycles,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)   forcing it to cool down.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)   This binding describes the thermal idle node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)   $nodename:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)     const: thermal-idle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)     description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)       A thermal-idle node describes the idle cooling device properties to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)       cool down efficiently the attached thermal zone.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)   '#cooling-cells':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)     const: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)     description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)       Must be 2, in order to specify minimum and maximum cooling state used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)       the cooling-maps reference. The first cell is the minimum cooling state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)       and the second cell is the maximum cooling state requested.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)   duration-us:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)     description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)       The idle duration in microsecond the device should cool down.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)   exit-latency-us:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)     description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)       The exit latency constraint in microsecond for the injected idle state 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)       for the device. It is the latency constraint to apply when selecting an 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)       idle state from among all the present ones.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)   - '#cooling-cells'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)   - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51)     #include <dt-bindings/thermal/thermal.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)     // Example: Combining idle cooling device on big CPUs with cpufreq cooling device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)     cpus {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)             #address-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)             #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)             /* ... */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)                  cpu_b0: cpu@100 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)                          device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)                          compatible = "arm,cortex-a72";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)                          reg = <0x0 0x100>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)                          enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)                          capacity-dmips-mhz = <1024>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)                          dynamic-power-coefficient = <436>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)                          #cooling-cells = <2>; /* min followed by max */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)                          cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)                          thermal-idle {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)                                  #cooling-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)                                  duration-us = <10000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)                                  exit-latency-us = <500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)                          };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)                 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)                 cpu_b1: cpu@101 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)                         device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)                         compatible = "arm,cortex-a72";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)                         reg = <0x0 0x101>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)                         enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)                         capacity-dmips-mhz = <1024>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)                         dynamic-power-coefficient = <436>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)                         #cooling-cells = <2>; /* min followed by max */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)                         thermal-idle {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86)                                 #cooling-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)                                 duration-us = <10000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)                                 exit-latency-us = <500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)                         };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)                  };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)           /* ... */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)     };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)     /* ... */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)     thermal_zones {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)          cpu_thermal: cpu {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)                 polling-delay-passive = <100>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)                 polling-delay = <1000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)                 /* ... */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)                 trips {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)                         cpu_alert0: cpu_alert0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)                                     temperature = <65000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)                                     hysteresis = <2000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)                                     type = "passive";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)                         };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)                         cpu_alert1: cpu_alert1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)                                     temperature = <70000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)                                     hysteresis = <2000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)                                     type = "passive";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)                         };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)                         cpu_alert2: cpu_alert2 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)                                     temperature = <75000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)                                     hysteresis = <2000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)                                     type = "passive";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)                         };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)                         cpu_crit: cpu_crit {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)                                     temperature = <95000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)                                     hysteresis = <2000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)                                     type = "critical";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)                         };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)                 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)                 cooling-maps {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)                         map0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)                              trip = <&cpu_alert1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)                              cooling-device = <&{/cpus/cpu@100/thermal-idle} 0 15 >,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)                                               <&{/cpus/cpu@101/thermal-idle} 0 15>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)                         };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)                         map1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)                              trip = <&cpu_alert2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)                              cooling-device =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)                                         <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)                                         <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)                        };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)                 };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)           };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)     };