mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
mfd: da9063: Add support for production silicon variant code
Add the correct silicon variant code ID (0x5) to the driver. This new code is the 'production' variant code ID for DA9063. This patch will remove the older variant code ID which matches the pre-production silicon ID (0x3) for the DA9063 chip. There is also some small amount of correction done in this patch: it splits the revision code and correctly names it according to the hardware specification and moves the dev_info() call before the variant ID test. Signed-off-by: Opensource [Steve Twiss] <[email protected]> Signed-off-by: Lee Jones <[email protected]>
This commit is contained in:
parent
82ae61c4b0
commit
c1d12c784c
2 changed files with 19 additions and 12 deletions
|
|
@ -110,7 +110,7 @@ static const struct mfd_cell da9063_devs[] = {
|
|||
int da9063_device_init(struct da9063 *da9063, unsigned int irq)
|
||||
{
|
||||
struct da9063_pdata *pdata = da9063->dev->platform_data;
|
||||
int model, revision;
|
||||
int model, variant_id, variant_code;
|
||||
int ret;
|
||||
|
||||
if (pdata) {
|
||||
|
|
@ -141,23 +141,26 @@ int da9063_device_init(struct da9063 *da9063, unsigned int irq)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
ret = regmap_read(da9063->regmap, DA9063_REG_CHIP_VARIANT, &revision);
|
||||
ret = regmap_read(da9063->regmap, DA9063_REG_CHIP_VARIANT, &variant_id);
|
||||
if (ret < 0) {
|
||||
dev_err(da9063->dev, "Cannot read chip revision id.\n");
|
||||
dev_err(da9063->dev, "Cannot read chip variant id.\n");
|
||||
return -EIO;
|
||||
}
|
||||
revision >>= DA9063_CHIP_VARIANT_SHIFT;
|
||||
if (revision != 3) {
|
||||
dev_err(da9063->dev, "Unknown chip revision: %d\n", revision);
|
||||
|
||||
variant_code = variant_id >> DA9063_CHIP_VARIANT_SHIFT;
|
||||
|
||||
dev_info(da9063->dev,
|
||||
"Device detected (chip-ID: 0x%02X, var-ID: 0x%02X)\n",
|
||||
model, variant_id);
|
||||
|
||||
if (variant_code != PMIC_DA9063_BB) {
|
||||
dev_err(da9063->dev, "Unknown chip variant code: 0x%02X\n",
|
||||
variant_code);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
da9063->model = model;
|
||||
da9063->revision = revision;
|
||||
|
||||
dev_info(da9063->dev,
|
||||
"Device detected (model-ID: 0x%02X rev-ID: 0x%02X)\n",
|
||||
model, revision);
|
||||
da9063->variant_code = variant_code;
|
||||
|
||||
ret = da9063_irq_init(da9063);
|
||||
if (ret) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue