なんかさあ、OpenBSDのaxppmic(4)、axp809のdcdc4の電圧をちゃんと扱えていないような気がするんだけどどうなんだろう?0.6~1.54Vの後に1.8~2.6Vの設定が続くんだけど、なんかうまく扱えないようなコードに自分の目に映ってる。
それ以前に、axp809-dcdc4の1.8~2.6Vの領域に限らず、base2, delta2で記された領域はどれも扱えないように見えるんだ。
…気のせいだと良いんだけどね?
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
なんかさあ、OpenBSDのaxppmic(4)、axp809のdcdc4の電圧をちゃんと扱えていないような気がするんだけどどうなんだろう?0.6~1.54Vの後に1.8~2.6Vの設定が続くんだけど、なんかうまく扱えないようなコードに自分の目に映ってる。
それ以前に、axp809-dcdc4の1.8~2.6Vの領域に限らず、base2, delta2で記された領域はどれも扱えないように見えるんだ。
…気のせいだと良いんだけどね?
/* 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)〜で分けてる。
Linuxのコードに頼る、それが確実そうな気がする。 https://github.com/torvalds/linux/blob/master/drivers/regulator/axp20x-regulator.c
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が印加されるように見えるんだけどどうなんだろう。
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は重なってるものとして扱ってるようだけど。