diff options
Diffstat (limited to 'drivers/mfd/da9063-core.c')
| -rw-r--r-- | drivers/mfd/da9063-core.c | 27 | 
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/mfd/da9063-core.c b/drivers/mfd/da9063-core.c index c9cf8d98840..e70ae315abc 100644 --- a/drivers/mfd/da9063-core.c +++ b/drivers/mfd/da9063-core.c @@ -75,7 +75,7 @@ static struct resource da9063_hwmon_resources[] = {  }; -static struct mfd_cell da9063_devs[] = { +static const struct mfd_cell da9063_devs[] = {  	{  		.name		= DA9063_DRVNAME_REGULATORS,  		.num_resources	= ARRAY_SIZE(da9063_regulators_resources), @@ -110,7 +110,7 @@ static 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) {  | 
