summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/hwmon/qpnp-adc-common.c45
-rw-r--r--drivers/platform/msm/qpnp-revid.c46
-rw-r--r--include/linux/qpnp/qpnp-revid.h165
3 files changed, 136 insertions, 120 deletions
diff --git a/drivers/hwmon/qpnp-adc-common.c b/drivers/hwmon/qpnp-adc-common.c
index 57c462ccf229..db1753e0ce21 100644
--- a/drivers/hwmon/qpnp-adc-common.c
+++ b/drivers/hwmon/qpnp-adc-common.c
@@ -1668,103 +1668,88 @@ int qpnp_adc_get_revid_version(struct device *dev)
(revid_data->rev2 == PM8941_V3P1_REV2) &&
(revid_data->rev3 == PM8941_V3P1_REV3) &&
(revid_data->rev4 == PM8941_V3P1_REV4) &&
- (revid_data->pmic_type == PM8941_V3P1_TYPE) &&
- (revid_data->pmic_subtype == PM8941_V3P1_SUBTYPE))
+ (revid_data->pmic_subtype == PM8941_SUBTYPE))
return QPNP_REV_ID_8941_3_1;
else if ((revid_data->rev1 == PM8941_V3P0_REV1) &&
(revid_data->rev2 == PM8941_V3P0_REV2) &&
(revid_data->rev3 == PM8941_V3P0_REV3) &&
(revid_data->rev4 == PM8941_V3P0_REV4) &&
- (revid_data->pmic_type == PM8941_V3P0_TYPE) &&
- (revid_data->pmic_subtype == PM8941_V3P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8941_SUBTYPE))
return QPNP_REV_ID_8941_3_0;
else if ((revid_data->rev1 == PM8941_V2P0_REV1) &&
(revid_data->rev2 == PM8941_V2P0_REV2) &&
(revid_data->rev3 == PM8941_V2P0_REV3) &&
(revid_data->rev4 == PM8941_V2P0_REV4) &&
- (revid_data->pmic_type == PM8941_V2P0_TYPE) &&
- (revid_data->pmic_subtype == PM8941_V2P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8941_SUBTYPE))
return QPNP_REV_ID_8941_2_0;
else if ((revid_data->rev1 == PM8226_V2P2_REV1) &&
(revid_data->rev2 == PM8226_V2P2_REV2) &&
(revid_data->rev3 == PM8226_V2P2_REV3) &&
(revid_data->rev4 == PM8226_V2P2_REV4) &&
- (revid_data->pmic_type == PM8226_V2P2_TYPE) &&
- (revid_data->pmic_subtype == PM8226_V2P2_SUBTYPE))
+ (revid_data->pmic_subtype == PM8226_SUBTYPE))
return QPNP_REV_ID_8026_2_2;
else if ((revid_data->rev1 == PM8226_V2P1_REV1) &&
(revid_data->rev2 == PM8226_V2P1_REV2) &&
(revid_data->rev3 == PM8226_V2P1_REV3) &&
(revid_data->rev4 == PM8226_V2P1_REV4) &&
- (revid_data->pmic_type == PM8226_V2P1_TYPE) &&
- (revid_data->pmic_subtype == PM8226_V2P1_SUBTYPE))
+ (revid_data->pmic_subtype == PM8226_SUBTYPE))
return QPNP_REV_ID_8026_2_1;
else if ((revid_data->rev1 == PM8226_V2P0_REV1) &&
(revid_data->rev2 == PM8226_V2P0_REV2) &&
(revid_data->rev3 == PM8226_V2P0_REV3) &&
(revid_data->rev4 == PM8226_V2P0_REV4) &&
- (revid_data->pmic_type == PM8226_V2P0_TYPE) &&
- (revid_data->pmic_subtype == PM8226_V2P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8226_SUBTYPE))
return QPNP_REV_ID_8026_2_0;
else if ((revid_data->rev1 == PM8226_V1P0_REV1) &&
(revid_data->rev2 == PM8226_V1P0_REV2) &&
(revid_data->rev3 == PM8226_V1P0_REV3) &&
(revid_data->rev4 == PM8226_V1P0_REV4) &&
- (revid_data->pmic_type == PM8226_V1P0_TYPE) &&
- (revid_data->pmic_subtype == PM8226_V1P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8226_SUBTYPE))
return QPNP_REV_ID_8026_1_0;
else if ((revid_data->rev1 == PM8110_V1P0_REV1) &&
(revid_data->rev2 == PM8110_V1P0_REV2) &&
(revid_data->rev3 == PM8110_V1P0_REV3) &&
(revid_data->rev4 == PM8110_V1P0_REV4) &&
- (revid_data->pmic_type == PM8110_V1P0_TYPE) &&
- (revid_data->pmic_subtype == PM8110_V1P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8110_SUBTYPE))
return QPNP_REV_ID_8110_1_0;
else if ((revid_data->rev1 == PM8110_V2P0_REV1) &&
(revid_data->rev2 == PM8110_V2P0_REV2) &&
(revid_data->rev3 == PM8110_V2P0_REV3) &&
(revid_data->rev4 == PM8110_V2P0_REV4) &&
- (revid_data->pmic_type == PM8110_V2P0_TYPE) &&
- (revid_data->pmic_subtype == PM8110_V2P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8110_SUBTYPE))
return QPNP_REV_ID_8110_2_0;
else if ((revid_data->rev1 == PM8916_V1P0_REV1) &&
(revid_data->rev2 == PM8916_V1P0_REV2) &&
(revid_data->rev3 == PM8916_V1P0_REV3) &&
(revid_data->rev4 == PM8916_V1P0_REV4) &&
- (revid_data->pmic_type == PM8916_V1P0_TYPE) &&
- (revid_data->pmic_subtype == PM8916_V1P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8916_SUBTYPE))
return QPNP_REV_ID_8916_1_0;
else if ((revid_data->rev1 == PM8916_V1P1_REV1) &&
(revid_data->rev2 == PM8916_V1P1_REV2) &&
(revid_data->rev3 == PM8916_V1P1_REV3) &&
(revid_data->rev4 == PM8916_V1P1_REV4) &&
- (revid_data->pmic_type == PM8916_V1P1_TYPE) &&
- (revid_data->pmic_subtype == PM8916_V1P1_SUBTYPE))
+ (revid_data->pmic_subtype == PM8916_SUBTYPE))
return QPNP_REV_ID_8916_1_1;
else if ((revid_data->rev1 == PM8916_V2P0_REV1) &&
(revid_data->rev2 == PM8916_V2P0_REV2) &&
(revid_data->rev3 == PM8916_V2P0_REV3) &&
(revid_data->rev4 == PM8916_V2P0_REV4) &&
- (revid_data->pmic_type == PM8916_V2P0_TYPE) &&
- (revid_data->pmic_subtype == PM8916_V2P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8916_SUBTYPE))
return QPNP_REV_ID_8916_2_0;
else if ((revid_data->rev1 == PM8909_V1P0_REV1) &&
(revid_data->rev2 == PM8909_V1P0_REV2) &&
(revid_data->rev3 == PM8909_V1P0_REV3) &&
(revid_data->rev4 == PM8909_V1P0_REV4) &&
- (revid_data->pmic_type == PM8909_V1P0_TYPE) &&
- (revid_data->pmic_subtype == PM8909_V1P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8909_SUBTYPE))
return QPNP_REV_ID_8909_1_0;
else if ((revid_data->rev1 == PM8909_V1P1_REV1) &&
(revid_data->rev2 == PM8909_V1P1_REV2) &&
(revid_data->rev3 == PM8909_V1P1_REV3) &&
(revid_data->rev4 == PM8909_V1P1_REV4) &&
- (revid_data->pmic_type == PM8909_V1P1_TYPE) &&
- (revid_data->pmic_subtype == PM8909_V1P1_SUBTYPE))
+ (revid_data->pmic_subtype == PM8909_SUBTYPE))
return QPNP_REV_ID_8909_1_1;
else if ((revid_data->rev4 == PM8950_V1P0_REV4) &&
- (revid_data->pmic_type == PM8950_V1P0_TYPE) &&
- (revid_data->pmic_subtype == PM8950_V1P0_SUBTYPE))
+ (revid_data->pmic_subtype == PM8950_SUBTYPE))
return QPNP_REV_ID_PM8950_1_0;
else
return -EINVAL;
diff --git a/drivers/platform/msm/qpnp-revid.c b/drivers/platform/msm/qpnp-revid.c
index 0706572d2777..4333df7a0d77 100644
--- a/drivers/platform/msm/qpnp-revid.c
+++ b/drivers/platform/msm/qpnp-revid.c
@@ -31,28 +31,30 @@
#define QPNP_REVID_DEV_NAME "qcom,qpnp-revid"
static const char *const pmic_names[] = {
- "Unknown PMIC",
- "PM8941",
- "PM8841",
- "PM8019",
- "PM8226",
- "PM8110",
- "PMA8084",
- "PMI8962",
- "PMD9635",
- "PM8994",
- "PMI8994",
- "PM8916",
- "PM8004",
- "PM8909",
- "PM2433",
- "PMD9655",
- "PM8950",
- "PMI8950",
- "PMK8001",
- "PMI8996",
- [25] = "PM8937",
- [55] = "PMI8937",
+ [0] = "Unknown PMIC",
+ [PM8941_SUBTYPE] = "PM8941",
+ [PM8841_SUBTYPE] = "PM8841",
+ [PM8019_SUBTYPE] = "PM8019",
+ [PM8226_SUBTYPE] = "PM8226",
+ [PM8110_SUBTYPE] = "PM8110",
+ [PMA8084_SUBTYPE] = "PMA8084",
+ [PMI8962_SUBTYPE] = "PMI8962",
+ [PMD9635_SUBTYPE] = "PMD9635",
+ [PM8994_SUBTYPE] = "PM8994",
+ [PMI8994_SUBTYPE] = "PMI8994",
+ [PM8916_SUBTYPE] = "PM8916",
+ [PM8004_SUBTYPE] = "PM8004",
+ [PM8909_SUBTYPE] = "PM8909",
+ [PM2433_SUBTYPE] = "PM2433",
+ [PMD9655_SUBTYPE] = "PMD9655",
+ [PM8950_SUBTYPE] = "PM8950",
+ [PMI8950_SUBTYPE] = "PMI8950",
+ [PMK8001_SUBTYPE] = "PMK8001",
+ [PMI8996_SUBTYPE] = "PMI8996",
+ [PM8998_SUBTYPE] = "PM8998",
+ [PMI8998_SUBTYPE] = "PMI8998",
+ [PM8937_SUBTYPE] = "PM8937",
+ [PMI8937_SUBTYPE] = "PMI8937",
};
struct revid_chip {
diff --git a/include/linux/qpnp/qpnp-revid.h b/include/linux/qpnp/qpnp-revid.h
index d67efaf678e4..4998d93eb094 100644
--- a/include/linux/qpnp/qpnp-revid.h
+++ b/include/linux/qpnp/qpnp-revid.h
@@ -13,146 +13,175 @@
#ifndef __QPNP_REVID
#define __QPNP_REVID
-#define PM8226_V2P2_REV1 0x00
-#define PM8226_V2P2_REV2 0x00
-#define PM8226_V2P2_REV3 0x02
-#define PM8226_V2P2_REV4 0x02
-#define PM8226_V2P2_TYPE 0x51
-#define PM8226_V2P2_SUBTYPE 0x04
+/* Common TYPE for all PMICs */
+#define PMIC_TYPE 0x51
-#define PM8226_V2P1_REV1 0x00
-#define PM8226_V2P1_REV2 0x00
-#define PM8226_V2P1_REV3 0x01
-#define PM8226_V2P1_REV4 0x02
-#define PM8226_V2P1_TYPE 0x51
-#define PM8226_V2P1_SUBTYPE 0x04
-
-#define PM8226_V2P0_REV1 0x00
-#define PM8226_V2P0_REV2 0x00
-#define PM8226_V2P0_REV3 0x00
-#define PM8226_V2P0_REV4 0x02
-#define PM8226_V2P0_TYPE 0x51
-#define PM8226_V2P0_SUBTYPE 0x04
-
-#define PM8226_V1P0_REV1 0x00
-#define PM8226_V1P0_REV2 0x00
-#define PM8226_V1P0_REV3 0x00
-#define PM8226_V1P0_REV4 0x00
-#define PM8226_V1P0_TYPE 0x51
-#define PM8226_V1P0_SUBTYPE 0x04
+/* PM8994 */
+#define PM8941_SUBTYPE 0x01
#define PM8941_V1P0_REV1 0x00
#define PM8941_V1P0_REV2 0x00
#define PM8941_V1P0_REV3 0x00
#define PM8941_V1P0_REV4 0x01
-#define PM8941_V1P0_TYPE 0x51
-#define PM8941_V1P0_SUBTYPE 0x01
#define PM8941_V2P0_REV1 0x00
#define PM8941_V2P0_REV2 0x00
#define PM8941_V2P0_REV3 0x00
#define PM8941_V2P0_REV4 0x01
-#define PM8941_V2P0_TYPE 0x51
-#define PM8941_V2P0_SUBTYPE 0x01
#define PM8941_V3P0_REV1 0x00
#define PM8941_V3P0_REV2 0x00
#define PM8941_V3P0_REV3 0x00
#define PM8941_V3P0_REV4 0x03
-#define PM8941_V3P0_TYPE 0x51
-#define PM8941_V3P0_SUBTYPE 0x01
#define PM8941_V3P1_REV1 0x00
#define PM8941_V3P1_REV2 0x00
#define PM8941_V3P1_REV3 0x01
#define PM8941_V3P1_REV4 0x03
-#define PM8941_V3P1_TYPE 0x51
-#define PM8941_V3P1_SUBTYPE 0x01
+
+/* PM8841 */
+#define PM8841_SUBTYPE 0x02
+
+/* PM8019 */
+#define PM8019_SUBTYPE 0x03
+
+/* PM8226 */
+#define PM8226_SUBTYPE 0x04
+
+#define PM8226_V2P2_REV1 0x00
+#define PM8226_V2P2_REV2 0x00
+#define PM8226_V2P2_REV3 0x02
+#define PM8226_V2P2_REV4 0x02
+
+#define PM8226_V2P1_REV1 0x00
+#define PM8226_V2P1_REV2 0x00
+#define PM8226_V2P1_REV3 0x01
+#define PM8226_V2P1_REV4 0x02
+
+#define PM8226_V2P0_REV1 0x00
+#define PM8226_V2P0_REV2 0x00
+#define PM8226_V2P0_REV3 0x00
+#define PM8226_V2P0_REV4 0x02
+
+#define PM8226_V1P0_REV1 0x00
+#define PM8226_V1P0_REV2 0x00
+#define PM8226_V1P0_REV3 0x00
+#define PM8226_V1P0_REV4 0x00
+
+/* PM8110 */
+#define PM8110_SUBTYPE 0x05
#define PM8110_V1P0_REV1 0x00
#define PM8110_V1P0_REV2 0x00
#define PM8110_V1P0_REV3 0x00
#define PM8110_V1P0_REV4 0x01
-#define PM8110_V1P0_TYPE 0x51
-#define PM8110_V1P0_SUBTYPE 0x05
#define PM8110_V1P1_REV1 0x00
#define PM8110_V1P1_REV2 0x01
#define PM8110_V1P1_REV3 0x00
#define PM8110_V1P1_REV4 0x01
-#define PM8110_V1P1_TYPE 0x51
-#define PM8110_V1P1_SUBTYPE 0x05
#define PM8110_V1P3_REV1 0x00
#define PM8110_V1P3_REV2 0x03
#define PM8110_V1P3_REV3 0x00
#define PM8110_V1P3_REV4 0x01
-#define PM8110_V1P3_TYPE 0x51
-#define PM8110_V1P3_SUBTYPE 0x05
#define PM8110_V2P0_REV1 0x00
#define PM8110_V2P0_REV2 0x00
#define PM8110_V2P0_REV3 0x00
#define PM8110_V2P0_REV4 0x02
-#define PM8110_V2P0_TYPE 0x51
-#define PM8110_V2P0_SUBTYPE 0x05
+
+/* PMA8084 */
+#define PMA8084_SUBTYPE 0x06
+
+/* PMI8962 */
+#define PMI8962_SUBTYPE 0x07
+
+/* PMD9635 */
+#define PMD9635_SUBTYPE 0x08
+/* PM8994 */
+#define PM8994_SUBTYPE 0x09
+
+/* PMI8994 */
+#define PMI8994_TYPE 0x51
+#define PMI8994_SUBTYPE 0x0A
+
+#define PMI8994_V1P0_REV1 0x00
+#define PMI8994_V1P0_REV2 0x00
+#define PMI8994_V1P0_REV3 0x00
+#define PMI8994_V1P0_REV4 0x01
+
+#define PMI8994_V2P0_REV1 0x00
+#define PMI8994_V2P0_REV2 0x00
+#define PMI8994_V2P0_REV3 0x00
+#define PMI8994_V2P0_REV4 0x02
+
+/* PM8916 */
+#define PM8916_SUBTYPE 0x0B
#define PM8916_V1P0_REV1 0x00
#define PM8916_V1P0_REV2 0x00
#define PM8916_V1P0_REV3 0x00
#define PM8916_V1P0_REV4 0x01
-#define PM8916_V1P0_TYPE 0x51
-#define PM8916_V1P0_SUBTYPE 0x0B
#define PM8916_V1P1_REV1 0x00
#define PM8916_V1P1_REV2 0x00
#define PM8916_V1P1_REV3 0x01
#define PM8916_V1P1_REV4 0x01
-#define PM8916_V1P1_TYPE 0x51
-#define PM8916_V1P1_SUBTYPE 0x0B
#define PM8916_V2P0_REV1 0x00
#define PM8916_V2P0_REV2 0x00
#define PM8916_V2P0_REV3 0x00
#define PM8916_V2P0_REV4 0x02
-#define PM8916_V2P0_TYPE 0x51
-#define PM8916_V2P0_SUBTYPE 0x0B
+
+/* PM8004 */
+#define PM8004_SUBTYPE 0x0C
+
+/* PM8909 */
+#define PM8909_SUBTYPE 0x0D
#define PM8909_V1P0_REV1 0x00
#define PM8909_V1P0_REV2 0x00
#define PM8909_V1P0_REV3 0x00
#define PM8909_V1P0_REV4 0x01
-#define PM8909_V1P0_TYPE 0x51
-#define PM8909_V1P0_SUBTYPE 0x0D
#define PM8909_V1P1_REV1 0x00
#define PM8909_V1P1_REV2 0x00
#define PM8909_V1P1_REV3 0x01
#define PM8909_V1P1_REV4 0x01
-#define PM8909_V1P1_TYPE 0x51
-#define PM8909_V1P1_SUBTYPE 0x0D
-#define PMI8994_V1P0_REV1 0x00
-#define PMI8994_V1P0_REV2 0x00
-#define PMI8994_V1P0_REV3 0x00
-#define PMI8994_V1P0_REV4 0x01
-#define PMI8994_V1P0_TYPE 0x51
-#define PMI8994_V1P0_SUBTYPE 0x0A
+/* PM2433 */
+#define PM2433_SUBTYPE 0x0E
-#define PMI8994_V2P0_REV1 0x00
-#define PMI8994_V2P0_REV2 0x00
-#define PMI8994_V2P0_REV3 0x00
-#define PMI8994_V2P0_REV4 0x02
-#define PMI8994_V2P0_TYPE 0x51
-#define PMI8994_V2P0_SUBTYPE 0x0A
+/* PMD9655 */
+#define PMD9655_SUBTYPE 0x0F
+/* PM8950 */
+#define PM8950_SUBTYPE 0x10
#define PM8950_V1P0_REV4 0x01
-#define PM8950_V1P0_TYPE 0x51
-#define PM8950_V1P0_SUBTYPE 0x10
#define PM8950_V2P0_REV4 0x02
-#define PM8950_V2P0_TYPE 0x51
-#define PM8950_V2P0_SUBTYPE 0x10
+
+/* PMI8950 */
+#define PMI8950_SUBTYPE 0x11
+
+/* PMK8001 */
+#define PMK8001_SUBTYPE 0x12
+
+/* PMI8996 */
+#define PMI8996_SUBTYPE 0x13
+
+/* PM8998 */
+#define PM8998_SUBTYPE 0x14
+
+/* PMI8998 */
+#define PMI8998_SUBTYPE 0x15
+
+/* PM8937 */
+#define PM8937_SUBTYPE 0x19
+
+/* PMI8937 */
+#define PMI8937_SUBTYPE 0x37
struct pmic_revid_data {
u8 rev1;