lkml.org 
[lkml]   [2019]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC v2 2/3] ARM: dts: replace opp-v1 tables by opp-v2 for omap34xx and omap36xx
    Date
    In addition, move omap3 from whitelist to blacklist in cpufreq-dt-platdev
    in the same patch, because doing either first breaks operation and
    may make trouble in bisect.

    We also can remove opp-v1 table for omap3-n950-n9 since it is now
    automatically detected.

    Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
    ---
    arch/arm/boot/dts/omap3-n950-n9.dtsi | 7 ---
    arch/arm/boot/dts/omap34xx.dtsi | 65 ++++++++++++++++++++++++----
    arch/arm/boot/dts/omap36xx.dtsi | 53 +++++++++++++++++++----
    drivers/cpufreq/cpufreq-dt-platdev.c | 2 +-
    4 files changed, 102 insertions(+), 25 deletions(-)

    diff --git a/arch/arm/boot/dts/omap3-n950-n9.dtsi b/arch/arm/boot/dts/omap3-n950-n9.dtsi
    index 5441e9ffdbb4..e98b0c615f19 100644
    --- a/arch/arm/boot/dts/omap3-n950-n9.dtsi
    +++ b/arch/arm/boot/dts/omap3-n950-n9.dtsi
    @@ -11,13 +11,6 @@
    cpus {
    cpu@0 {
    cpu0-supply = <&vcc>;
    - operating-points = <
    - /* kHz uV */
    - 300000 1012500
    - 600000 1200000
    - 800000 1325000
    - 1000000 1375000
    - >;
    };
    };

    diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi
    index f572a477f74c..6408a0448834 100644
    --- a/arch/arm/boot/dts/omap34xx.dtsi
    +++ b/arch/arm/boot/dts/omap34xx.dtsi
    @@ -16,19 +16,66 @@
    / {
    cpus {
    cpu: cpu@0 {
    - /* OMAP343x/OMAP35xx variants OPP1-5 */
    - operating-points = <
    - /* kHz uV */
    - 125000 975000
    - 250000 1075000
    - 500000 1200000
    - 550000 1270000
    - 600000 1350000
    - >;
    + /* OMAP343x/OMAP35xx variants OPP1-6 */
    + operating-points-v2 = <&cpu0_opp_table>;
    +
    clock-latency = <300000>; /* From legacy driver */
    };
    };

    + /* see Documentation/devicetree/bindings/opp/opp.txt */
    + cpu0_opp_table: opp-table {
    + compatible = "operating-points-v2-ti-cpu";
    + syscon = <&scm_conf>;
    +
    + opp1-125000000 {
    + opp-hz = /bits/ 64 <125000000>;
    + /*
    + * we currently only select the max voltage from table
    + * Table 3-3 of the omap3530 Data sheet (SPRS507F).
    + * Format is: <target min max>
    + */
    + opp-microvolt = <975000 975000 975000>;
    + /*
    + * first value is silicon revision bit mask
    + * second one 720MHz Device Identification bit mask
    + */
    + opp-supported-hw = <0xffffffff 3>;
    + };
    +
    + opp2-250000000 {
    + opp-hz = /bits/ 64 <250000000>;
    + opp-microvolt = <1075000 1075000 1075000>;
    + opp-supported-hw = <0xffffffff 3>;
    + opp-suspend;
    + };
    +
    + opp3-500000000 {
    + opp-hz = /bits/ 64 <500000000>;
    + opp-microvolt = <1200000 1200000 1200000>;
    + opp-supported-hw = <0xffffffff 3>;
    + };
    +
    + opp4-550000000 {
    + opp-hz = /bits/ 64 <550000000>;
    + opp-microvolt = <1270000 1270000 1270000>;
    + opp-supported-hw = <0xffffffff 3>;
    + };
    +
    + opp5-600000000 {
    + opp-hz = /bits/ 64 <600000000>;
    + opp-microvolt = <1350000 1350000 1350000>;
    + opp-supported-hw = <0xffffffff 3>;
    + };
    +
    + opp6-720000000 {
    + opp-hz = /bits/ 64 <720000000>;
    + opp-microvolt = <1350000 1350000 1350000>;
    + /* only high-speed grade omap3530 devices */
    + opp-supported-hw = <0xffffffff 2>;
    + };
    + };
    +
    ocp@68000000 {
    omap3_pmx_core2: pinmux@480025d8 {
    compatible = "ti,omap3-padconf", "pinctrl-single";
    diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
    index 6fb23ada1f64..44f25b0eb45b 100644
    --- a/arch/arm/boot/dts/omap36xx.dtsi
    +++ b/arch/arm/boot/dts/omap36xx.dtsi
    @@ -19,15 +19,52 @@
    };

    cpus {
    - /* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */
    + /* OMAP3630/OMAP37xx variants OPP50 to OPP130 and OPP1G */
    cpu: cpu@0 {
    - operating-points = <
    - /* kHz uV */
    - 300000 1012500
    - 600000 1200000
    - 800000 1325000
    - >;
    - clock-latency = <300000>; /* From legacy driver */
    + operating-points-v2 = <&cpu0_opp_table>;
    +
    + clock-latency = <300000>; /* From omap-cpufreq driver */
    + };
    + };
    +
    + /* see Documentation/devicetree/bindings/opp/opp.txt */
    + cpu0_opp_table: opp-table {
    + compatible = "operating-points-v2-ti-cpu";
    + syscon = <&scm_conf>;
    +
    + opp50-300000000 {
    + opp-hz = /bits/ 64 <300000000>;
    + /*
    + * we currently only select the max voltage from table
    + * Table 4-19 of the DM3730 Data sheet (SPRS685B)
    + * Format is: <target min max>
    + */
    + opp-microvolt = <1012500 1012500 1012500>;
    + /*
    + * first value is silicon revision bit mask
    + * second one is "speed binned" bit mask
    + */
    + opp-supported-hw = <0xffffffff 3>;
    + opp-suspend;
    + };
    +
    + opp100-600000000 {
    + opp-hz = /bits/ 64 <600000000>;
    + opp-microvolt = <1200000 1200000 1200000>;
    + opp-supported-hw = <0xffffffff 3>;
    + };
    +
    + opp130-800000000 {
    + opp-hz = /bits/ 64 <800000000>;
    + opp-microvolt = <1325000 1325000 1325000>;
    + opp-supported-hw = <0xffffffff 3>;
    + };
    +
    + opp1g-1000000000 {
    + opp-hz = /bits/ 64 <1000000000>;
    + opp-microvolt = <1375000 1375000 1375000>;
    + /* only on am/dm37x with speed-binned bit set */
    + opp-supported-hw = <0xffffffff 2>;
    };
    };

    diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c
    index 03dc4244ab00..68b7fc4225f8 100644
    --- a/drivers/cpufreq/cpufreq-dt-platdev.c
    +++ b/drivers/cpufreq/cpufreq-dt-platdev.c
    @@ -86,7 +86,6 @@ static const struct of_device_id whitelist[] __initconst = {
    { .compatible = "st-ericsson,u9540", },

    { .compatible = "ti,omap2", },
    - { .compatible = "ti,omap3", },
    { .compatible = "ti,omap4", },
    { .compatible = "ti,omap5", },

    @@ -132,6 +131,7 @@ static const struct of_device_id blacklist[] __initconst = {
    { .compatible = "ti,am33xx", },
    { .compatible = "ti,am43", },
    { .compatible = "ti,dra7", },
    + { .compatible = "ti,omap3", },

    { }
    };
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-09-04 10:55    [W:3.597 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site