diff options
| -rw-r--r-- | drivers/hwmon/qpnp-adc-common.c | 45 | ||||
| -rw-r--r-- | drivers/platform/msm/qpnp-revid.c | 46 | ||||
| -rw-r--r-- | include/linux/qpnp/qpnp-revid.h | 165 |
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; |
