1*4882a593Smuzhiyun* Generic Exynos Bus frequency device 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe Samsung Exynos SoC has many buses for data transfer between DRAM 4*4882a593Smuzhiyunand sub-blocks in SoC. Most Exynos SoCs share the common architecture 5*4882a593Smuzhiyunfor buses. Generally, each bus of Exynos SoC includes a source clock 6*4882a593Smuzhiyunand a power line, which are able to change the clock frequency 7*4882a593Smuzhiyunof the bus in runtime. To monitor the usage of each bus in runtime, 8*4882a593Smuzhiyunthe driver uses the PPMU (Platform Performance Monitoring Unit), which 9*4882a593Smuzhiyunis able to measure the current load of sub-blocks. 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunThe Exynos SoC includes the various sub-blocks which have the each AXI bus. 12*4882a593SmuzhiyunThe each AXI bus has the owned source clock but, has not the only owned 13*4882a593Smuzhiyunpower line. The power line might be shared among one more sub-blocks. 14*4882a593SmuzhiyunSo, we can divide into two type of device as the role of each sub-block. 15*4882a593SmuzhiyunThere are two type of bus devices as following: 16*4882a593Smuzhiyun- parent bus device 17*4882a593Smuzhiyun- passive bus device 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunBasically, parent and passive bus device share the same power line. 20*4882a593SmuzhiyunThe parent bus device can only change the voltage of shared power line 21*4882a593Smuzhiyunand the rest bus devices (passive bus device) depend on the decision of 22*4882a593Smuzhiyunthe parent bus device. If there are three blocks which share the VDD_xxx 23*4882a593Smuzhiyunpower line, Only one block should be parent device and then the rest blocks 24*4882a593Smuzhiyunshould depend on the parent device as passive device. 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun VDD_xxx |--- A block (parent) 27*4882a593Smuzhiyun |--- B block (passive) 28*4882a593Smuzhiyun |--- C block (passive) 29*4882a593Smuzhiyun 30*4882a593SmuzhiyunThere are a little different composition among Exynos SoC because each Exynos 31*4882a593SmuzhiyunSoC has different sub-blocks. Therefore, such difference should be specified 32*4882a593Smuzhiyunin devicetree file instead of each device driver. In result, this driver 33*4882a593Smuzhiyunis able to support the bus frequency for all Exynos SoCs. 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunRequired properties for all bus devices: 36*4882a593Smuzhiyun- compatible: Should be "samsung,exynos-bus". 37*4882a593Smuzhiyun- clock-names : the name of clock used by the bus, "bus". 38*4882a593Smuzhiyun- clocks : phandles for clock specified in "clock-names" property. 39*4882a593Smuzhiyun- operating-points-v2: the OPP table including frequency/voltage information 40*4882a593Smuzhiyun to support DVFS (Dynamic Voltage/Frequency Scaling) feature. 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunRequired properties only for parent bus device: 43*4882a593Smuzhiyun- vdd-supply: the regulator to provide the buses with the voltage. 44*4882a593Smuzhiyun- devfreq-events: the devfreq-event device to monitor the current utilization 45*4882a593Smuzhiyun of buses. 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunRequired properties only for passive bus device: 48*4882a593Smuzhiyun- devfreq: the parent bus device. 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunOptional properties only for parent bus device: 51*4882a593Smuzhiyun- exynos,saturation-ratio: the percentage value which is used to calibrate 52*4882a593Smuzhiyun the performance count against total cycle count. 53*4882a593Smuzhiyun 54*4882a593SmuzhiyunDetailed correlation between sub-blocks and power line according to Exynos SoC: 55*4882a593Smuzhiyun- In case of Exynos3250, there are two power line as following: 56*4882a593Smuzhiyun VDD_MIF |--- DMC 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun VDD_INT |--- LEFTBUS (parent device) 59*4882a593Smuzhiyun |--- PERIL 60*4882a593Smuzhiyun |--- MFC 61*4882a593Smuzhiyun |--- G3D 62*4882a593Smuzhiyun |--- RIGHTBUS 63*4882a593Smuzhiyun |--- PERIR 64*4882a593Smuzhiyun |--- FSYS 65*4882a593Smuzhiyun |--- LCD0 66*4882a593Smuzhiyun |--- PERIR 67*4882a593Smuzhiyun |--- ISP 68*4882a593Smuzhiyun |--- CAM 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun- In case of Exynos4210, there is one power line as following: 71*4882a593Smuzhiyun VDD_INT |--- DMC (parent device) 72*4882a593Smuzhiyun |--- LEFTBUS 73*4882a593Smuzhiyun |--- PERIL 74*4882a593Smuzhiyun |--- MFC(L) 75*4882a593Smuzhiyun |--- G3D 76*4882a593Smuzhiyun |--- TV 77*4882a593Smuzhiyun |--- LCD0 78*4882a593Smuzhiyun |--- RIGHTBUS 79*4882a593Smuzhiyun |--- PERIR 80*4882a593Smuzhiyun |--- MFC(R) 81*4882a593Smuzhiyun |--- CAM 82*4882a593Smuzhiyun |--- FSYS 83*4882a593Smuzhiyun |--- GPS 84*4882a593Smuzhiyun |--- LCD0 85*4882a593Smuzhiyun |--- LCD1 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun- In case of Exynos4x12, there are two power line as following: 88*4882a593Smuzhiyun VDD_MIF |--- DMC 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun VDD_INT |--- LEFTBUS (parent device) 91*4882a593Smuzhiyun |--- PERIL 92*4882a593Smuzhiyun |--- MFC(L) 93*4882a593Smuzhiyun |--- G3D 94*4882a593Smuzhiyun |--- TV 95*4882a593Smuzhiyun |--- IMAGE 96*4882a593Smuzhiyun |--- RIGHTBUS 97*4882a593Smuzhiyun |--- PERIR 98*4882a593Smuzhiyun |--- MFC(R) 99*4882a593Smuzhiyun |--- CAM 100*4882a593Smuzhiyun |--- FSYS 101*4882a593Smuzhiyun |--- GPS 102*4882a593Smuzhiyun |--- LCD0 103*4882a593Smuzhiyun |--- ISP 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun- In case of Exynos5422, there are two power line as following: 106*4882a593Smuzhiyun VDD_MIF |--- DREX 0 (parent device, DRAM EXpress controller) 107*4882a593Smuzhiyun |--- DREX 1 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun VDD_INT |--- NoC_Core (parent device) 110*4882a593Smuzhiyun |--- G2D 111*4882a593Smuzhiyun |--- G3D 112*4882a593Smuzhiyun |--- DISP1 113*4882a593Smuzhiyun |--- NoC_WCORE 114*4882a593Smuzhiyun |--- GSCL 115*4882a593Smuzhiyun |--- MSCL 116*4882a593Smuzhiyun |--- ISP 117*4882a593Smuzhiyun |--- MFC 118*4882a593Smuzhiyun |--- GEN 119*4882a593Smuzhiyun |--- PERIS 120*4882a593Smuzhiyun |--- PERIC 121*4882a593Smuzhiyun |--- FSYS 122*4882a593Smuzhiyun |--- FSYS2 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun- In case of Exynos5433, there is VDD_INT power line as following: 125*4882a593Smuzhiyun VDD_INT |--- G2D (parent device) 126*4882a593Smuzhiyun |--- MSCL 127*4882a593Smuzhiyun |--- GSCL 128*4882a593Smuzhiyun |--- JPEG 129*4882a593Smuzhiyun |--- MFC 130*4882a593Smuzhiyun |--- HEVC 131*4882a593Smuzhiyun |--- BUS0 132*4882a593Smuzhiyun |--- BUS1 133*4882a593Smuzhiyun |--- BUS2 134*4882a593Smuzhiyun |--- PERIS (Fixed clock rate) 135*4882a593Smuzhiyun |--- PERIC (Fixed clock rate) 136*4882a593Smuzhiyun |--- FSYS (Fixed clock rate) 137*4882a593Smuzhiyun 138*4882a593SmuzhiyunExample1: 139*4882a593Smuzhiyun Show the AXI buses of Exynos3250 SoC. Exynos3250 divides the buses to 140*4882a593Smuzhiyun power line (regulator). The MIF (Memory Interface) AXI bus is used to 141*4882a593Smuzhiyun transfer data between DRAM and CPU and uses the VDD_MIF regulator. 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun - MIF (Memory Interface) block 144*4882a593Smuzhiyun : VDD_MIF |--- DMC (Dynamic Memory Controller) 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun - INT (Internal) block 147*4882a593Smuzhiyun : VDD_INT |--- LEFTBUS (parent device) 148*4882a593Smuzhiyun |--- PERIL 149*4882a593Smuzhiyun |--- MFC 150*4882a593Smuzhiyun |--- G3D 151*4882a593Smuzhiyun |--- RIGHTBUS 152*4882a593Smuzhiyun |--- FSYS 153*4882a593Smuzhiyun |--- LCD0 154*4882a593Smuzhiyun |--- PERIR 155*4882a593Smuzhiyun |--- ISP 156*4882a593Smuzhiyun |--- CAM 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun - MIF bus's frequency/voltage table 159*4882a593Smuzhiyun ----------------------- 160*4882a593Smuzhiyun |Lv| Freq | Voltage | 161*4882a593Smuzhiyun ----------------------- 162*4882a593Smuzhiyun |L1| 50000 |800000 | 163*4882a593Smuzhiyun |L2| 100000 |800000 | 164*4882a593Smuzhiyun |L3| 134000 |800000 | 165*4882a593Smuzhiyun |L4| 200000 |825000 | 166*4882a593Smuzhiyun |L5| 400000 |875000 | 167*4882a593Smuzhiyun ----------------------- 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun - INT bus's frequency/voltage table 170*4882a593Smuzhiyun ---------------------------------------------------------- 171*4882a593Smuzhiyun |Block|LEFTBUS|RIGHTBUS|MCUISP |ISP |PERIL ||VDD_INT | 172*4882a593Smuzhiyun | name| |LCD0 | | | || | 173*4882a593Smuzhiyun | | |FSYS | | | || | 174*4882a593Smuzhiyun | | |MFC | | | || | 175*4882a593Smuzhiyun ---------------------------------------------------------- 176*4882a593Smuzhiyun |Mode |*parent|passive |passive|passive|passive|| | 177*4882a593Smuzhiyun ---------------------------------------------------------- 178*4882a593Smuzhiyun |Lv |Frequency ||Voltage | 179*4882a593Smuzhiyun ---------------------------------------------------------- 180*4882a593Smuzhiyun |L1 |50000 |50000 |50000 |50000 |50000 ||900000 | 181*4882a593Smuzhiyun |L2 |80000 |80000 |80000 |80000 |80000 ||900000 | 182*4882a593Smuzhiyun |L3 |100000 |100000 |100000 |100000 |100000 ||1000000 | 183*4882a593Smuzhiyun |L4 |134000 |134000 |200000 |200000 | ||1000000 | 184*4882a593Smuzhiyun |L5 |200000 |200000 |400000 |300000 | ||1000000 | 185*4882a593Smuzhiyun ---------------------------------------------------------- 186*4882a593Smuzhiyun 187*4882a593SmuzhiyunExample2 : 188*4882a593Smuzhiyun The bus of DMC (Dynamic Memory Controller) block in exynos3250.dtsi 189*4882a593Smuzhiyun is listed below: 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun bus_dmc: bus_dmc { 192*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 193*4882a593Smuzhiyun clocks = <&cmu_dmc CLK_DIV_DMC>; 194*4882a593Smuzhiyun clock-names = "bus"; 195*4882a593Smuzhiyun operating-points-v2 = <&bus_dmc_opp_table>; 196*4882a593Smuzhiyun status = "disabled"; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun bus_dmc_opp_table: opp_table1 { 200*4882a593Smuzhiyun compatible = "operating-points-v2"; 201*4882a593Smuzhiyun opp-shared; 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun opp-50000000 { 204*4882a593Smuzhiyun opp-hz = /bits/ 64 <50000000>; 205*4882a593Smuzhiyun opp-microvolt = <800000>; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun opp-100000000 { 208*4882a593Smuzhiyun opp-hz = /bits/ 64 <100000000>; 209*4882a593Smuzhiyun opp-microvolt = <800000>; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun opp-134000000 { 212*4882a593Smuzhiyun opp-hz = /bits/ 64 <134000000>; 213*4882a593Smuzhiyun opp-microvolt = <800000>; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun opp-200000000 { 216*4882a593Smuzhiyun opp-hz = /bits/ 64 <200000000>; 217*4882a593Smuzhiyun opp-microvolt = <825000>; 218*4882a593Smuzhiyun }; 219*4882a593Smuzhiyun opp-400000000 { 220*4882a593Smuzhiyun opp-hz = /bits/ 64 <400000000>; 221*4882a593Smuzhiyun opp-microvolt = <875000>; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun bus_leftbus: bus_leftbus { 226*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 227*4882a593Smuzhiyun clocks = <&cmu CLK_DIV_GDL>; 228*4882a593Smuzhiyun clock-names = "bus"; 229*4882a593Smuzhiyun operating-points-v2 = <&bus_leftbus_opp_table>; 230*4882a593Smuzhiyun status = "disabled"; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun bus_rightbus: bus_rightbus { 234*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 235*4882a593Smuzhiyun clocks = <&cmu CLK_DIV_GDR>; 236*4882a593Smuzhiyun clock-names = "bus"; 237*4882a593Smuzhiyun operating-points-v2 = <&bus_leftbus_opp_table>; 238*4882a593Smuzhiyun status = "disabled"; 239*4882a593Smuzhiyun }; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun bus_lcd0: bus_lcd0 { 242*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 243*4882a593Smuzhiyun clocks = <&cmu CLK_DIV_ACLK_160>; 244*4882a593Smuzhiyun clock-names = "bus"; 245*4882a593Smuzhiyun operating-points-v2 = <&bus_leftbus_opp_table>; 246*4882a593Smuzhiyun status = "disabled"; 247*4882a593Smuzhiyun }; 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun bus_fsys: bus_fsys { 250*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 251*4882a593Smuzhiyun clocks = <&cmu CLK_DIV_ACLK_200>; 252*4882a593Smuzhiyun clock-names = "bus"; 253*4882a593Smuzhiyun operating-points-v2 = <&bus_leftbus_opp_table>; 254*4882a593Smuzhiyun status = "disabled"; 255*4882a593Smuzhiyun }; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun bus_mcuisp: bus_mcuisp { 258*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 259*4882a593Smuzhiyun clocks = <&cmu CLK_DIV_ACLK_400_MCUISP>; 260*4882a593Smuzhiyun clock-names = "bus"; 261*4882a593Smuzhiyun operating-points-v2 = <&bus_mcuisp_opp_table>; 262*4882a593Smuzhiyun status = "disabled"; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun bus_isp: bus_isp { 266*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 267*4882a593Smuzhiyun clocks = <&cmu CLK_DIV_ACLK_266>; 268*4882a593Smuzhiyun clock-names = "bus"; 269*4882a593Smuzhiyun operating-points-v2 = <&bus_isp_opp_table>; 270*4882a593Smuzhiyun status = "disabled"; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun bus_peril: bus_peril { 274*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 275*4882a593Smuzhiyun clocks = <&cmu CLK_DIV_ACLK_100>; 276*4882a593Smuzhiyun clock-names = "bus"; 277*4882a593Smuzhiyun operating-points-v2 = <&bus_peril_opp_table>; 278*4882a593Smuzhiyun status = "disabled"; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun bus_mfc: bus_mfc { 282*4882a593Smuzhiyun compatible = "samsung,exynos-bus"; 283*4882a593Smuzhiyun clocks = <&cmu CLK_SCLK_MFC>; 284*4882a593Smuzhiyun clock-names = "bus"; 285*4882a593Smuzhiyun operating-points-v2 = <&bus_leftbus_opp_table>; 286*4882a593Smuzhiyun status = "disabled"; 287*4882a593Smuzhiyun }; 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun bus_leftbus_opp_table: opp_table1 { 290*4882a593Smuzhiyun compatible = "operating-points-v2"; 291*4882a593Smuzhiyun opp-shared; 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun opp-50000000 { 294*4882a593Smuzhiyun opp-hz = /bits/ 64 <50000000>; 295*4882a593Smuzhiyun opp-microvolt = <900000>; 296*4882a593Smuzhiyun }; 297*4882a593Smuzhiyun opp-80000000 { 298*4882a593Smuzhiyun opp-hz = /bits/ 64 <80000000>; 299*4882a593Smuzhiyun opp-microvolt = <900000>; 300*4882a593Smuzhiyun }; 301*4882a593Smuzhiyun opp-100000000 { 302*4882a593Smuzhiyun opp-hz = /bits/ 64 <100000000>; 303*4882a593Smuzhiyun opp-microvolt = <1000000>; 304*4882a593Smuzhiyun }; 305*4882a593Smuzhiyun opp-134000000 { 306*4882a593Smuzhiyun opp-hz = /bits/ 64 <134000000>; 307*4882a593Smuzhiyun opp-microvolt = <1000000>; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun opp-200000000 { 310*4882a593Smuzhiyun opp-hz = /bits/ 64 <200000000>; 311*4882a593Smuzhiyun opp-microvolt = <1000000>; 312*4882a593Smuzhiyun }; 313*4882a593Smuzhiyun }; 314*4882a593Smuzhiyun 315*4882a593Smuzhiyun bus_mcuisp_opp_table: opp_table2 { 316*4882a593Smuzhiyun compatible = "operating-points-v2"; 317*4882a593Smuzhiyun opp-shared; 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun opp-50000000 { 320*4882a593Smuzhiyun opp-hz = /bits/ 64 <50000000>; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun opp-80000000 { 323*4882a593Smuzhiyun opp-hz = /bits/ 64 <80000000>; 324*4882a593Smuzhiyun }; 325*4882a593Smuzhiyun opp-100000000 { 326*4882a593Smuzhiyun opp-hz = /bits/ 64 <100000000>; 327*4882a593Smuzhiyun }; 328*4882a593Smuzhiyun opp-200000000 { 329*4882a593Smuzhiyun opp-hz = /bits/ 64 <200000000>; 330*4882a593Smuzhiyun }; 331*4882a593Smuzhiyun opp-400000000 { 332*4882a593Smuzhiyun opp-hz = /bits/ 64 <400000000>; 333*4882a593Smuzhiyun }; 334*4882a593Smuzhiyun }; 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun bus_isp_opp_table: opp_table3 { 337*4882a593Smuzhiyun compatible = "operating-points-v2"; 338*4882a593Smuzhiyun opp-shared; 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun opp-50000000 { 341*4882a593Smuzhiyun opp-hz = /bits/ 64 <50000000>; 342*4882a593Smuzhiyun }; 343*4882a593Smuzhiyun opp-80000000 { 344*4882a593Smuzhiyun opp-hz = /bits/ 64 <80000000>; 345*4882a593Smuzhiyun }; 346*4882a593Smuzhiyun opp-100000000 { 347*4882a593Smuzhiyun opp-hz = /bits/ 64 <100000000>; 348*4882a593Smuzhiyun }; 349*4882a593Smuzhiyun opp-200000000 { 350*4882a593Smuzhiyun opp-hz = /bits/ 64 <200000000>; 351*4882a593Smuzhiyun }; 352*4882a593Smuzhiyun opp-300000000 { 353*4882a593Smuzhiyun opp-hz = /bits/ 64 <300000000>; 354*4882a593Smuzhiyun }; 355*4882a593Smuzhiyun }; 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun bus_peril_opp_table: opp_table4 { 358*4882a593Smuzhiyun compatible = "operating-points-v2"; 359*4882a593Smuzhiyun opp-shared; 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun opp-50000000 { 362*4882a593Smuzhiyun opp-hz = /bits/ 64 <50000000>; 363*4882a593Smuzhiyun }; 364*4882a593Smuzhiyun opp-80000000 { 365*4882a593Smuzhiyun opp-hz = /bits/ 64 <80000000>; 366*4882a593Smuzhiyun }; 367*4882a593Smuzhiyun opp-100000000 { 368*4882a593Smuzhiyun opp-hz = /bits/ 64 <100000000>; 369*4882a593Smuzhiyun }; 370*4882a593Smuzhiyun }; 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun 373*4882a593Smuzhiyun Usage case to handle the frequency and voltage of bus on runtime 374*4882a593Smuzhiyun in exynos3250-rinato.dts is listed below: 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun &bus_dmc { 377*4882a593Smuzhiyun devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; 378*4882a593Smuzhiyun vdd-supply = <&buck1_reg>; /* VDD_MIF */ 379*4882a593Smuzhiyun status = "okay"; 380*4882a593Smuzhiyun }; 381*4882a593Smuzhiyun 382*4882a593Smuzhiyun &bus_leftbus { 383*4882a593Smuzhiyun devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; 384*4882a593Smuzhiyun vdd-supply = <&buck3_reg>; 385*4882a593Smuzhiyun status = "okay"; 386*4882a593Smuzhiyun }; 387*4882a593Smuzhiyun 388*4882a593Smuzhiyun &bus_rightbus { 389*4882a593Smuzhiyun devfreq = <&bus_leftbus>; 390*4882a593Smuzhiyun status = "okay"; 391*4882a593Smuzhiyun }; 392*4882a593Smuzhiyun 393*4882a593Smuzhiyun &bus_lcd0 { 394*4882a593Smuzhiyun devfreq = <&bus_leftbus>; 395*4882a593Smuzhiyun status = "okay"; 396*4882a593Smuzhiyun }; 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun &bus_fsys { 399*4882a593Smuzhiyun devfreq = <&bus_leftbus>; 400*4882a593Smuzhiyun status = "okay"; 401*4882a593Smuzhiyun }; 402*4882a593Smuzhiyun 403*4882a593Smuzhiyun &bus_mcuisp { 404*4882a593Smuzhiyun devfreq = <&bus_leftbus>; 405*4882a593Smuzhiyun status = "okay"; 406*4882a593Smuzhiyun }; 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun &bus_isp { 409*4882a593Smuzhiyun devfreq = <&bus_leftbus>; 410*4882a593Smuzhiyun status = "okay"; 411*4882a593Smuzhiyun }; 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun &bus_peril { 414*4882a593Smuzhiyun devfreq = <&bus_leftbus>; 415*4882a593Smuzhiyun status = "okay"; 416*4882a593Smuzhiyun }; 417*4882a593Smuzhiyun 418*4882a593Smuzhiyun &bus_mfc { 419*4882a593Smuzhiyun devfreq = <&bus_leftbus>; 420*4882a593Smuzhiyun status = "okay"; 421*4882a593Smuzhiyun }; 422