Hi Marek, On 12/19/19 5:29 PM, Marek Szyprowski wrote: > Currently the only Exynos5422-based boards that support bus frequency > scaling are Hardkernel's Odroid XU3/XU4/HC1. Move the bus related OPPs to > the boards DTS, because those OPPs heavily depend on the clock topology > and top PLL rates, which are being configured by the board's bootloader. > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > --- > arch/arm/boot/dts/exynos5420.dtsi | 259 ----------------- > arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 261 +++++++++++++++++- > 2 files changed, 260 insertions(+), 260 deletions(-) > > diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi > index f95567bc10e3..f66a2d1b3428 100644 > --- a/arch/arm/boot/dts/exynos5420.dtsi > +++ b/arch/arm/boot/dts/exynos5420.dtsi > @@ -1092,7 +1092,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK400_WCORE>; > clock-names = "bus"; > - operating-points-v2 = <&bus_wcore_opp_table>; > status = "disabled"; > }; > > @@ -1100,7 +1099,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK100_NOC>; > clock-names = "bus"; > - operating-points-v2 = <&bus_noc_opp_table>; > status = "disabled"; > }; > > @@ -1108,7 +1106,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_PCLK200_FSYS>; > clock-names = "bus"; > - operating-points-v2 = <&bus_fsys_apb_opp_table>; > status = "disabled"; > }; > > @@ -1116,7 +1113,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK200_FSYS>; > clock-names = "bus"; > - operating-points-v2 = <&bus_fsys_apb_opp_table>; > status = "disabled"; > }; > > @@ -1124,7 +1120,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK200_FSYS2>; > clock-names = "bus"; > - operating-points-v2 = <&bus_fsys2_opp_table>; > status = "disabled"; > }; > > @@ -1132,7 +1127,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK333>; > clock-names = "bus"; > - operating-points-v2 = <&bus_mfc_opp_table>; > status = "disabled"; > }; > > @@ -1140,7 +1134,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK266>; > clock-names = "bus"; > - operating-points-v2 = <&bus_gen_opp_table>; > status = "disabled"; > }; > > @@ -1148,7 +1141,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK66>; > clock-names = "bus"; > - operating-points-v2 = <&bus_peri_opp_table>; > status = "disabled"; > }; > > @@ -1156,7 +1148,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK333_G2D>; > clock-names = "bus"; > - operating-points-v2 = <&bus_g2d_opp_table>; > status = "disabled"; > }; > > @@ -1164,7 +1155,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK266_G2D>; > clock-names = "bus"; > - operating-points-v2 = <&bus_g2d_acp_opp_table>; > status = "disabled"; > }; > > @@ -1172,7 +1162,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK300_JPEG>; > clock-names = "bus"; > - operating-points-v2 = <&bus_jpeg_opp_table>; > status = "disabled"; > }; > > @@ -1180,7 +1169,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK166>; > clock-names = "bus"; > - operating-points-v2 = <&bus_jpeg_apb_opp_table>; > status = "disabled"; > }; > > @@ -1188,7 +1176,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK300_DISP1>; > clock-names = "bus"; > - operating-points-v2 = <&bus_disp1_fimd_opp_table>; > status = "disabled"; > }; > > @@ -1196,7 +1183,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK400_DISP1>; > clock-names = "bus"; > - operating-points-v2 = <&bus_disp1_opp_table>; > status = "disabled"; > }; > > @@ -1204,7 +1190,6 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK300_GSCL>; > clock-names = "bus"; > - operating-points-v2 = <&bus_gscl_opp_table>; > status = "disabled"; > }; > > @@ -1212,252 +1197,8 @@ > compatible = "samsung,exynos-bus"; > clocks = <&clock CLK_DOUT_ACLK400_MSCL>; > clock-names = "bus"; > - operating-points-v2 = <&bus_mscl_opp_table>; > status = "disabled"; > }; > - > - bus_wcore_opp_table: opp_table2 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <84000000>; > - opp-microvolt = <925000 925000 1400000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <111000000>; > - opp-microvolt = <950000 950000 1400000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <222000000>; > - opp-microvolt = <950000 950000 1400000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <333000000>; > - opp-microvolt = <950000 950000 1400000>; > - }; > - opp04 { > - opp-hz = /bits/ 64 <400000000>; > - opp-microvolt = <987500 987500 1400000>; > - }; > - }; > - > - bus_noc_opp_table: opp_table3 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <67000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <75000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <86000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <100000000>; > - }; > - }; > - > - bus_fsys_apb_opp_table: opp_table4 { > - compatible = "operating-points-v2"; > - opp-shared; > - > - opp00 { > - opp-hz = /bits/ 64 <100000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <200000000>; > - }; > - }; > - > - bus_fsys2_opp_table: opp_table5 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <75000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <100000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <150000000>; > - }; > - }; > - > - bus_mfc_opp_table: opp_table6 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <96000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <111000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <167000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <222000000>; > - }; > - opp04 { > - opp-hz = /bits/ 64 <333000000>; > - }; > - }; > - > - bus_gen_opp_table: opp_table7 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <89000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <133000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <178000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <267000000>; > - }; > - }; > - > - bus_peri_opp_table: opp_table8 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <67000000>; > - }; > - }; > - > - bus_g2d_opp_table: opp_table9 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <84000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <167000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <222000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <300000000>; > - }; > - opp04 { > - opp-hz = /bits/ 64 <333000000>; > - }; > - }; > - > - bus_g2d_acp_opp_table: opp_table10 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <67000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <133000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <178000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <267000000>; > - }; > - }; > - > - bus_jpeg_opp_table: opp_table11 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <75000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <150000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <200000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <300000000>; > - }; > - }; > - > - bus_jpeg_apb_opp_table: opp_table12 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <84000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <111000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <134000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <167000000>; > - }; > - }; > - > - bus_disp1_fimd_opp_table: opp_table13 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <120000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <200000000>; > - }; > - }; > - > - bus_disp1_opp_table: opp_table14 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <120000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <200000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <300000000>; > - }; > - }; > - > - bus_gscl_opp_table: opp_table15 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <150000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <200000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <300000000>; > - }; > - }; > - > - bus_mscl_opp_table: opp_table16 { > - compatible = "operating-points-v2"; > - > - opp00 { > - opp-hz = /bits/ 64 <84000000>; > - }; > - opp01 { > - opp-hz = /bits/ 64 <167000000>; > - }; > - opp02 { > - opp-hz = /bits/ 64 <222000000>; > - }; > - opp03 { > - opp-hz = /bits/ 64 <333000000>; > - }; > - opp04 { > - opp-hz = /bits/ 64 <400000000>; > - }; > - }; > }; > > thermal-zones { > diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi > index 80b0acfec547..663a38d53c9e 100644 > --- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi > +++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi > @@ -35,7 +35,250 @@ > }; > }; > > - dmc_opp_table: opp_table2 { > + bus_wcore_opp_table: opp_table2 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <84000000>; > + opp-microvolt = <925000 925000 1400000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <111000000>; > + opp-microvolt = <950000 950000 1400000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <222000000>; > + opp-microvolt = <950000 950000 1400000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <333000000>; > + opp-microvolt = <950000 950000 1400000>; > + }; > + opp04 { > + opp-hz = /bits/ 64 <400000000>; > + opp-microvolt = <987500 987500 1400000>; > + }; > + }; > + > + bus_noc_opp_table: opp_table3 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <67000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <75000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <86000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <100000000>; > + }; > + }; > + > + bus_fsys_apb_opp_table: opp_table4 { > + compatible = "operating-points-v2"; > + opp-shared; > + > + opp00 { > + opp-hz = /bits/ 64 <100000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <200000000>; > + }; > + }; > + > + bus_fsys2_opp_table: opp_table5 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <75000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <100000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <150000000>; > + }; > + }; > + > + bus_mfc_opp_table: opp_table6 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <96000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <111000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <167000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <222000000>; > + }; > + opp04 { > + opp-hz = /bits/ 64 <333000000>; > + }; > + }; > + > + bus_gen_opp_table: opp_table7 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <89000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <133000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <178000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <267000000>; > + }; > + }; > + > + bus_peri_opp_table: opp_table8 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <67000000>; > + }; > + }; > + > + bus_g2d_opp_table: opp_table9 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <84000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <167000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <222000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <300000000>; > + }; > + opp04 { > + opp-hz = /bits/ 64 <333000000>; > + }; > + }; > + > + bus_g2d_acp_opp_table: opp_table10 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <67000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <133000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <178000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <267000000>; > + }; > + }; > + > + bus_jpeg_opp_table: opp_table11 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <75000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <150000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <200000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <300000000>; > + }; > + }; > + > + bus_jpeg_apb_opp_table: opp_table12 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <84000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <111000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <134000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <167000000>; > + }; > + }; > + > + bus_disp1_fimd_opp_table: opp_table13 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <120000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <200000000>; > + }; > + }; > + > + bus_disp1_opp_table: opp_table14 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <120000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <200000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <300000000>; > + }; > + }; > + > + bus_gscl_opp_table: opp_table15 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <150000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <200000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <300000000>; > + }; > + }; > + > + bus_mscl_opp_table: opp_table16 { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <84000000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <167000000>; > + }; > + opp02 { > + opp-hz = /bits/ 64 <222000000>; > + }; > + opp03 { > + opp-hz = /bits/ 64 <333000000>; > + }; > + opp04 { > + opp-hz = /bits/ 64 <400000000>; > + }; > + }; > + > + dmc_opp_table: opp_table18 { opp_table18 -> opp_table17? (snip) Tested-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx> Reviewed-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx> -- Best Regards, Chanwoo Choi Samsung Electronics