21:58:03 @uaa@social.mikutter.hachune.net
icon

なんかさあ、OpenBSDのaxppmic(4)、axp809のdcdc4の電圧をちゃんと扱えていないような気がするんだけどどうなんだろう?0.6~1.54Vの後に1.8~2.6Vの設定が続くんだけど、なんかうまく扱えないようなコードに自分の目に映ってる。

それ以前に、axp809-dcdc4の1.8~2.6Vの領域に限らず、base2, delta2で記された領域はどれも扱えないように見えるんだ。

…気のせいだと良いんだけどね?

07:41:05 @uaa@social.mikutter.hachune.net
icon

/* AXP806's CLDO2 and AXP809's DLDO1 share the same range */
static const struct linear_range axp803_dldo2_ranges[] = {
REGULATOR_LINEAR_RANGE(700000,
AXP803_DLDO2_700mV_START,
AXP803_DLDO2_700mV_END,
100000),
REGULATOR_LINEAR_RANGE(3400000,
AXP803_DLDO2_3400mV_START,
AXP803_DLDO2_3400mV_END,
200000),
};

0〜26, 0x1b(27)〜で分けてる。

07:33:12 @uaa@social.mikutter.hachune.net
icon

Linuxのコードに頼る、それが確実そうな気がする。 github.com/torvalds/linux/blob

Web site image
linux/drivers/regulator/axp20x-regulator.c at master · torvalds/linux
07:29:09 @uaa@social.mikutter.hachune.net
icon

sunxi版(brandy-2.0)のU-boot、axp806に関しては0.7〜4.2V/100mVステップだがそのうち3.6V〜については200mVステップという記載になってるな。

if (p_item->split1_val &&
(set_vol > p_item->split1_val))

こういうコードになっているとなると、split1_valぴったりな電圧についてはこの節の中のコードが実行されない。3.6Vの設定だと3.6V未満のコード…Excelで試算するに、3.6V設定で3.8Vが印加されるように見えるんだけどどうなんだろう。

07:04:42 @uaa@social.mikutter.hachune.net
icon

axp803
dcdc2-6 0.5-1.2V/10mV(71step), 1.22-1.30V/20mV(5step)
dldo2 0.7-3.4V/100mV (0.7-3.3V/100mVとして27step) 3.4V-4.2V/200mV(9step)

axp803の資料はちょっとよくわからない。dldo2が4stepって書いてあるけど、そうなると200mV刻みではなくなるはず。

ついでにaxp803,809ともに、3.4Vの設定は重なってるのか、電圧レンジの違いにより二つあるのかが謎。U-bootは重なってるものとして扱ってるようだけど。

06:54:12 06:57:22 @uaa@social.mikutter.hachune.net
icon

axp809
dldo1 0.7-3.4V/100mV (0.7-3.3V/100mVとして27step) 3.4V-4.2V/200mV(9step)
dcdc4 0.6-1.54V/20mV (48step)
1.8-2.6V/100mV(9step)