Hi,

Mango Pi MQ-Quad and OrangePi Zero3 has X-Power AXP313A PMIC.

Here is a diff, but AXP313A's dcdc1 is not fully supported.

dcdc1 has three voltage ranges:
        0.5-1.2V, 10mV/step (71 steps)
        1.22-1.54V 20mV/step (17 steps)
        1.6-3.4V 100mV/step (19 steps) *not supported this diff*

This restriction comes from current axppmic.c supports two voltage ranges.
At least MQ-Quad/OPiZero3 uses dcdc1 for Allwinner H616's SYS/GPU
(near 0.9V) so no need to support highest voltage range.

Index: axppmic.c
===================================================================
RCS file: /cvs/src/sys/dev/fdt/axppmic.c,v
retrieving revision 1.19
diff -u -p -r1.19 axppmic.c
--- axppmic.c   31 Jul 2023 12:23:35 -0000      1.19
+++ axppmic.c   31 Jul 2023 13:00:12 -0000
@@ -126,6 +126,21 @@ const struct axppmic_regdata axp221_regd
        { NULL }
 };
 
+const struct axppmic_regdata axp313a_regdata[] = {
+       /* dcdc1: 1.6-3.4V (100mV step) not supported */
+       { "dcdc1", 0x10, (1 << 0), (1 << 0), (0 << 0),
+         0x13, 0x7f, 500000, 10000, 71, 122000, 20000, 17 },
+       { "dcdc2", 0x10, (1 << 1), (1 << 1), (0 << 1),
+         0x14, 0x7f, 500000, 10000, 71, 122000, 20000, 17 },
+       { "dcdc3", 0x10, (1 << 2), (1 << 2), (0 << 2),
+         0x15, 0x7f, 500000, 10000, 71, 122000, 20000, 32 },
+       { "aldo1", 0x10, (1 << 3), (1 << 3), (0 << 3),
+         0x16, 0x1f, 500000, 100000, 31 },
+       { "dldo1", 0x10, (1 << 4), (1 << 4), (0 << 4),
+         0x17, 0x1f, 500000, 100000, 31 },
+       { NULL }
+};
+
 const struct axppmic_regdata axp803_regdata[] = {
        { "dcdc1", 0x10, (1 << 0), (1 << 0), (0 << 0),
          0x20, 0x1f, 1600000, 100000, 19 },
@@ -354,6 +369,7 @@ const struct axppmic_device axppmic_devi
        { "x-powers,axp221", "AXP221", axp221_regdata, axp221_sensdata },
        { "x-powers,axp223", "AXP223", axp221_regdata, axp221_sensdata },
        { "x-powers,axp305", "AXP305", axp806_regdata },
+       { "x-powers,axp313a", "AXP313A", axp313a_regdata },
        { "x-powers,axp803", "AXP803", axp803_regdata, axp803_sensdata },
        { "x-powers,axp805", "AXP805", axp806_regdata },
        { "x-powers,axp806", "AXP806", axp806_regdata },

-- 
SASANO Takayoshi (JG1UAA) <u...@mx5.nisiq.net>

Reply via email to