> Date: Thu, 8 Aug 2019 18:32:04 +0200 > From: Krystian Lewandowski <[email protected]> > > Hi, > > I'm trying to improve Pinebook experience on OpenBSD. I added a few more > sensors to axppmic 803. > > I have two boards I tested this patch on: > - Pinebook: axppmic0 at sxirsb0 addr 0x3a3: AXP803 > $ sysctl hw.sensors.axppmic0 > hw.sensors.axppmic0.temp0=42.55 degC > hw.sensors.axppmic0.volt0=3.85 VDC (battery voltage) > hw.sensors.axppmic0.current0=0.00 A (battery charging current) > hw.sensors.axppmic0.current1=0.98 A (battery discharging current) > hw.sensors.axppmic0.amphour0=0.00 Ah (battery maximum capacity), WARNING > hw.sensors.axppmic0.amphour1=0.00 Ah (battery current capacity), WARNING > hw.sensors.axppmic0.indicator0=Off (ACIN) > hw.sensors.axppmic0.indicator1=Off (VBUS) > hw.sensors.axppmic0.indicator2=On (battery present), OK > hw.sensors.axppmic0.indicator3=Off (battery charging) > hw.sensors.axppmic0.percent0=74.00% (battery percent), OK > > > - A64+: axppmic0 at sxirsb0 addr 0x3a3: AXP803 > $ sysctl hw.sensors.axppmic0 > hw.sensors.axppmic0.temp0=49.14 degC > hw.sensors.axppmic0.volt0=0.00 VDC (battery voltage) > hw.sensors.axppmic0.current0=0.00 A (battery charging current) > hw.sensors.axppmic0.current1=0.00 A (battery discharging current) > hw.sensors.axppmic0.amphour0=0.00 Ah (battery maximum capacity), WARNING > hw.sensors.axppmic0.amphour1=0.00 Ah (battery current capacity), WARNING > hw.sensors.axppmic0.indicator0=On (ACIN), OK > hw.sensors.axppmic0.indicator1=Off (VBUS) > hw.sensors.axppmic0.indicator2=Off (battery present) > hw.sensors.axppmic0.indicator3=Off (battery charging) > hw.sensors.axppmic0.percent0=100.00% (battery percent), WARNING > > Unfortunately, I wasn't able to test hw.sensors.axppmic0.amphours. > > WARNING is presented when specific bit for given field marks the value as > invalid - this follow existing implementation. > > And hw.sensors.axppmic0.percent0 also sets WARN and CRIT when "warn" and > "shut" thresholds are met.
Hi Krystian, Thanks for submitting this diff. I don't have a pinebook myself so I couldn't test the battery monitoring part of the PMIC when I wrote the driver. The downside of the approach you've taken is that the battery sensors show up on all boards, even those that don't support a battery to be connected. Looking at the latest Linux device trees I noticed that there is a "battery-power-supply" sub-node. It would be nice if we could enable the battery sensors only if that sub-node is present and not diabled. Downside is that this means you'll need a fairly bleeding-edge device tree for these sensors to show up. With that in mind, it probably makes sense to structure the driver in a slightly different way, keeping the battery sensors in a separate array. I'm currently playing a little bit with that to see what would work best.
