rk 3368 dvfsに関するいくつかの理解

2366 ワード

dts   
&clk_core_b_dvfs_table {
	operating-points = <
		/* KHz    uV */
		216000 950000
		312000 950000
		408000 950000
		600000 950000
		696000 950000
		816000 975000
		1008000 1050000
		//1200000 1150000
		//1296000 1225000
		>;
	status = "okay";
};

&clk_core_l_dvfs_table {
	operating-points = <
		/* KHz    uV */
		216000 950000
		312000 950000
		408000 950000
		600000 950000
		696000 975000
		816000 1025000
		1008000 1050000
		//1200000 1225000
		>;
	status = "okay";
};

rk 3368は8個のcpuがあり、4個の大きいA 53は4個の小さいA 53がある.
clk_core_b_dvfs_tableが大きいA 53の周波数電圧計clk_core_l_dvfs_tableは小A 53の周波数電圧計である.
周波数を下げてデバッグする過程で、私は
		rk818_dcdc2_reg: regulator@1 {
			regulator-name= "vdd_arm";/*vcc arm*/
			regulator-min-microvolt = <700000>;
			regulator-max-microvolt = <1500000>;
			regulator-initial-mode = <0x2>;
			regulator-initial-state = <3>; 
			regulator-state-mem {
				regulator-state-mode = <0x2>;
				regulator-state-enabled;
				regulator-state-uv = <900000>;
			};
		};

のregulator-max-microvolt=<1500000>;1050000に下げて、電源を入れる時ずっと1075000の誤りを探さないことを報告します.
[    5.353620]  [1:  cfinteractive:   88] DVFS DBG:     dvfs_target:clk_core_b new rate=1008000000(was=816000000),new volt=1075000,(was=1000000) [    5.353704]  [1:  cfinteractive:   88] DVFS DBG:     dvfs_scale_volt_direct: volt=1075000(old=1000000) [    5.353785]  [1:  cfinteractive:   88] vdd_arm: unsupportable voltage range: 1075000-1050000uV [    5.353860]  [1:  cfinteractive:   88] DVFS ERR:     dvfs_regulator_set_voltage_readback: now read back to check voltage
疑念コードはdtsのテーブルを使わずに自分の内部で書かれています.
1075000と1075*1000を含むすべてのコードを変更しましたが、1075000で設定できないエラーがあります.
2日間追跡コードを調べたところ、
arch/arm/mach-rockchip/dvfs.cのadjust_table_by_leakageは手足を作った:すなわち電圧が2500 mV調整され、例えば1050000+2500=107500.
dtsには構成があります(rk 3368.dtsi)
                                        lkg_adjust_volt_en = <1>;
					channel = <0>;
					tsadc-ch = <0>;
					def_table_lkg = <25>;
					min_adjust_freq = <216000>;
					lkg_adjust_volt_table = <
						/*lkg(mA)  volt(uV)*/
						0         25000
						>;

pmuの制限電圧をregulator-max-microvolt=<107500>に変更してもエラーはなく、電圧が下がります.