power: supply: axp20x_usb_power: Add support for AXP192
authorAidan MacDonald <aidanmacdonald.0x0@gmail.com>
Wed, 10 May 2023 11:50:45 +0000 (12:50 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 15 May 2023 21:19:52 +0000 (23:19 +0200)
Add support for the AXP192. It is most similar to the AXP202 but
the current limits are different and the USB OTG status register
has a different address (0x04 instead of 0x02).

Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/axp20x_usb_power.c

index 089fe837a4b27523167269d89a49a62dc0eddf43..51c3f9b6458d19d54962e416f1ec14c1230591c5 100644 (file)
@@ -26,6 +26,8 @@
 
 #define DRVNAME "axp20x-usb-power-supply"
 
+#define AXP192_USB_OTG_STATUS          0x04
+
 #define AXP20X_PWR_STATUS_VBUS_PRESENT BIT(5)
 #define AXP20X_PWR_STATUS_VBUS_USED    BIT(4)
 
@@ -365,6 +367,13 @@ static const char * const axp22x_irq_names[] = {
        "VBUS_REMOVAL",
 };
 
+static int axp192_usb_curr_lim_table[] = {
+       -1,
+       -1,
+       500000,
+       100000,
+};
+
 static int axp20x_usb_curr_lim_table[] = {
        900000,
        500000,
@@ -386,6 +395,16 @@ static int axp813_usb_curr_lim_table[] = {
        2500000,
 };
 
+static const struct axp_data axp192_data = {
+       .power_desc     = &axp20x_usb_power_desc,
+       .irq_names      = axp20x_irq_names,
+       .num_irq_names  = ARRAY_SIZE(axp20x_irq_names),
+       .curr_lim_table = axp192_usb_curr_lim_table,
+       .curr_lim_fld   = REG_FIELD(AXP20X_VBUS_IPSOUT_MGMT, 0, 1),
+       .vbus_valid_bit = REG_FIELD(AXP192_USB_OTG_STATUS, 2, 2),
+       .vbus_mon_bit   = REG_FIELD(AXP20X_VBUS_MON, 3, 3),
+};
+
 static const struct axp_data axp202_data = {
        .power_desc     = &axp20x_usb_power_desc,
        .irq_names      = axp20x_irq_names,
@@ -634,6 +653,9 @@ static int axp20x_usb_power_probe(struct platform_device *pdev)
 
 static const struct of_device_id axp20x_usb_power_match[] = {
        {
+               .compatible = "x-powers,axp192-usb-power-supply",
+               .data = &axp192_data,
+       }, {
                .compatible = "x-powers,axp202-usb-power-supply",
                .data = &axp202_data,
        }, {