/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#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

#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

#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

#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

struct pmic_revid_data {
	u8	rev1;
	u8	rev2;
	u8	rev3;
	u8	rev4;
	u8	pmic_type;
	u8	pmic_subtype;
};

#ifdef CONFIG_QPNP_REVID
struct pmic_revid_data *get_revid_data(struct device_node *dev_node);
#else
static inline
struct pmic_revid_data *get_revid_data(struct device_node *dev_node)
{
	return NULL;
}
#endif
#endif
