The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/cpufreq/cpufreq-mediatek.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 Binding for MediaTek's CPUFreq driver
    2 =====================================
    3 
    4 Required properties:
    5 - clocks: A list of phandle + clock-specifier pairs for the clocks listed in clock names.
    6 - clock-names: Should contain the following:
    7         "cpu"           - The multiplexer for clock input of CPU cluster.
    8         "intermediate"  - A parent of "cpu" clock which is used as "intermediate" clock
    9                           source (usually MAINPLL) when the original CPU PLL is under
   10                           transition and not stable yet.
   11         Please refer to Documentation/devicetree/bindings/clock/clock-bindings.txt for
   12         generic clock consumer properties.
   13 - operating-points-v2: Please refer to Documentation/devicetree/bindings/opp/opp-v2.yaml
   14         for detail.
   15 - proc-supply: Regulator for Vproc of CPU cluster.
   16 
   17 Optional properties:
   18 - sram-supply: Regulator for Vsram of CPU cluster. When present, the cpufreq driver
   19                needs to do "voltage tracking" to step by step scale up/down Vproc and
   20                Vsram to fit SoC specific needs. When absent, the voltage scaling
   21                flow is handled by hardware, hence no software "voltage tracking" is
   22                needed.
   23 - mediatek,cci:
   24         Used to confirm the link status between cpufreq and mediatek cci. Because
   25         cpufreq and mediatek cci could share the same regulator in some MediaTek SoCs.
   26         To prevent the issue of high frequency and low voltage, we need to use this
   27         property to make sure mediatek cci is ready.
   28         For details of mediatek cci, please refer to
   29         Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
   30 - #cooling-cells:
   31         For details, please refer to
   32         Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
   33 
   34 Example 1 (MT7623 SoC):
   35 
   36         cpu_opp_table: opp_table {
   37                 compatible = "operating-points-v2";
   38                 opp-shared;
   39 
   40                 opp-598000000 {
   41                         opp-hz = /bits/ 64 <598000000>;
   42                         opp-microvolt = <1050000>;
   43                 };
   44 
   45                 opp-747500000 {
   46                         opp-hz = /bits/ 64 <747500000>;
   47                         opp-microvolt = <1050000>;
   48                 };
   49 
   50                 opp-1040000000 {
   51                         opp-hz = /bits/ 64 <1040000000>;
   52                         opp-microvolt = <1150000>;
   53                 };
   54 
   55                 opp-1196000000 {
   56                         opp-hz = /bits/ 64 <1196000000>;
   57                         opp-microvolt = <1200000>;
   58                 };
   59 
   60                 opp-1300000000 {
   61                         opp-hz = /bits/ 64 <1300000000>;
   62                         opp-microvolt = <1300000>;
   63                 };
   64         };
   65 
   66         cpu0: cpu@0 {
   67                 device_type = "cpu";
   68                 compatible = "arm,cortex-a7";
   69                 reg = <0x0>;
   70                 clocks = <&infracfg CLK_INFRA_CPUSEL>,
   71                          <&apmixedsys CLK_APMIXED_MAINPLL>;
   72                 clock-names = "cpu", "intermediate";
   73                 operating-points-v2 = <&cpu_opp_table>;
   74                 #cooling-cells = <2>;
   75         };
   76         cpu@1 {
   77                 device_type = "cpu";
   78                 compatible = "arm,cortex-a7";
   79                 reg = <0x1>;
   80                 operating-points-v2 = <&cpu_opp_table>;
   81         };
   82         cpu@2 {
   83                 device_type = "cpu";
   84                 compatible = "arm,cortex-a7";
   85                 reg = <0x2>;
   86                 operating-points-v2 = <&cpu_opp_table>;
   87         };
   88         cpu@3 {
   89                 device_type = "cpu";
   90                 compatible = "arm,cortex-a7";
   91                 reg = <0x3>;
   92                 operating-points-v2 = <&cpu_opp_table>;
   93         };
   94 
   95 Example 2 (MT8173 SoC):
   96         cpu_opp_table_a: opp_table_a {
   97                 compatible = "operating-points-v2";
   98                 opp-shared;
   99 
  100                 opp-507000000 {
  101                         opp-hz = /bits/ 64 <507000000>;
  102                         opp-microvolt = <859000>;
  103                 };
  104 
  105                 opp-702000000 {
  106                         opp-hz = /bits/ 64 <702000000>;
  107                         opp-microvolt = <908000>;
  108                 };
  109 
  110                 opp-1001000000 {
  111                         opp-hz = /bits/ 64 <1001000000>;
  112                         opp-microvolt = <983000>;
  113                 };
  114 
  115                 opp-1105000000 {
  116                         opp-hz = /bits/ 64 <1105000000>;
  117                         opp-microvolt = <1009000>;
  118                 };
  119 
  120                 opp-1183000000 {
  121                         opp-hz = /bits/ 64 <1183000000>;
  122                         opp-microvolt = <1028000>;
  123                 };
  124 
  125                 opp-1404000000 {
  126                         opp-hz = /bits/ 64 <1404000000>;
  127                         opp-microvolt = <1083000>;
  128                 };
  129 
  130                 opp-1508000000 {
  131                         opp-hz = /bits/ 64 <1508000000>;
  132                         opp-microvolt = <1109000>;
  133                 };
  134 
  135                 opp-1573000000 {
  136                         opp-hz = /bits/ 64 <1573000000>;
  137                         opp-microvolt = <1125000>;
  138                 };
  139         };
  140 
  141         cpu_opp_table_b: opp_table_b {
  142                 compatible = "operating-points-v2";
  143                 opp-shared;
  144 
  145                 opp-507000000 {
  146                         opp-hz = /bits/ 64 <507000000>;
  147                         opp-microvolt = <828000>;
  148                 };
  149 
  150                 opp-702000000 {
  151                         opp-hz = /bits/ 64 <702000000>;
  152                         opp-microvolt = <867000>;
  153                 };
  154 
  155                 opp-1001000000 {
  156                         opp-hz = /bits/ 64 <1001000000>;
  157                         opp-microvolt = <927000>;
  158                 };
  159 
  160                 opp-1209000000 {
  161                         opp-hz = /bits/ 64 <1209000000>;
  162                         opp-microvolt = <968000>;
  163                 };
  164 
  165                 opp-1404000000 {
  166                         opp-hz = /bits/ 64 <1007000000>;
  167                         opp-microvolt = <1028000>;
  168                 };
  169 
  170                 opp-1612000000 {
  171                         opp-hz = /bits/ 64 <1612000000>;
  172                         opp-microvolt = <1049000>;
  173                 };
  174 
  175                 opp-1807000000 {
  176                         opp-hz = /bits/ 64 <1807000000>;
  177                         opp-microvolt = <1089000>;
  178                 };
  179 
  180                 opp-1989000000 {
  181                         opp-hz = /bits/ 64 <1989000000>;
  182                         opp-microvolt = <1125000>;
  183                 };
  184         };
  185 
  186         cpu0: cpu@0 {
  187                 device_type = "cpu";
  188                 compatible = "arm,cortex-a53";
  189                 reg = <0x000>;
  190                 enable-method = "psci";
  191                 cpu-idle-states = <&CPU_SLEEP_0>;
  192                 clocks = <&infracfg CLK_INFRA_CA53SEL>,
  193                          <&apmixedsys CLK_APMIXED_MAINPLL>;
  194                 clock-names = "cpu", "intermediate";
  195                 operating-points-v2 = <&cpu_opp_table_a>;
  196         };
  197 
  198         cpu1: cpu@1 {
  199                 device_type = "cpu";
  200                 compatible = "arm,cortex-a53";
  201                 reg = <0x001>;
  202                 enable-method = "psci";
  203                 cpu-idle-states = <&CPU_SLEEP_0>;
  204                 clocks = <&infracfg CLK_INFRA_CA53SEL>,
  205                          <&apmixedsys CLK_APMIXED_MAINPLL>;
  206                 clock-names = "cpu", "intermediate";
  207                 operating-points-v2 = <&cpu_opp_table_a>;
  208         };
  209 
  210         cpu2: cpu@100 {
  211                 device_type = "cpu";
  212                 compatible = "arm,cortex-a72";
  213                 reg = <0x100>;
  214                 enable-method = "psci";
  215                 cpu-idle-states = <&CPU_SLEEP_0>;
  216                 clocks = <&infracfg CLK_INFRA_CA72SEL>,
  217                          <&apmixedsys CLK_APMIXED_MAINPLL>;
  218                 clock-names = "cpu", "intermediate";
  219                 operating-points-v2 = <&cpu_opp_table_b>;
  220         };
  221 
  222         cpu3: cpu@101 {
  223                 device_type = "cpu";
  224                 compatible = "arm,cortex-a72";
  225                 reg = <0x101>;
  226                 enable-method = "psci";
  227                 cpu-idle-states = <&CPU_SLEEP_0>;
  228                 clocks = <&infracfg CLK_INFRA_CA72SEL>,
  229                          <&apmixedsys CLK_APMIXED_MAINPLL>;
  230                 clock-names = "cpu", "intermediate";
  231                 operating-points-v2 = <&cpu_opp_table_b>;
  232         };
  233 
  234         &cpu0 {
  235                 proc-supply = <&mt6397_vpca15_reg>;
  236         };
  237 
  238         &cpu1 {
  239                 proc-supply = <&mt6397_vpca15_reg>;
  240         };
  241 
  242         &cpu2 {
  243                 proc-supply = <&da9211_vcpu_reg>;
  244                 sram-supply = <&mt6397_vsramca7_reg>;
  245         };
  246 
  247         &cpu3 {
  248                 proc-supply = <&da9211_vcpu_reg>;
  249                 sram-supply = <&mt6397_vsramca7_reg>;
  250         };

Cache object: f7d68bdd3abb4cc59b63f81db3aab804


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.