max8660
struct max8660 *max8660 = rdev_get_drvdata(rdev);
u8 val = max8660->shadow_regs[MAX8660_OVER1];
struct max8660 *max8660 = rdev_get_drvdata(rdev);
return max8660_write(max8660, MAX8660_OVER1, 0xff, bit);
struct max8660 *max8660 = rdev_get_drvdata(rdev);
return max8660_write(max8660, MAX8660_OVER1, mask, 0);
struct max8660 *max8660 = rdev_get_drvdata(rdev);
u8 selector = max8660->shadow_regs[reg];
struct max8660 *max8660 = rdev_get_drvdata(rdev);
ret = max8660_write(max8660, reg, 0, selector);
return max8660_write(max8660, MAX8660_VCC1, 0xff, bits);
struct max8660 *max8660 = rdev_get_drvdata(rdev);
u8 selector = max8660->shadow_regs[MAX8660_MDTV2];
struct max8660 *max8660 = rdev_get_drvdata(rdev);
ret = max8660_write(max8660, MAX8660_MDTV2, 0, selector);
return max8660_write(max8660, MAX8660_VCC1, 0xff, 0xc0);
struct max8660 *max8660 = rdev_get_drvdata(rdev);
u8 val = max8660->shadow_regs[MAX8660_OVER2];
struct max8660 *max8660 = rdev_get_drvdata(rdev);
return max8660_write(max8660, MAX8660_OVER2, 0xff, bit);
struct max8660 *max8660 = rdev_get_drvdata(rdev);
return max8660_write(max8660, MAX8660_OVER2, mask, 0);
struct max8660 *max8660 = rdev_get_drvdata(rdev);
u8 selector = (max8660->shadow_regs[MAX8660_L12VCR] >> shift) & 0xf;
struct max8660 *max8660 = rdev_get_drvdata(rdev);
return max8660_write(max8660, MAX8660_L12VCR, 0xf0, selector);
return max8660_write(max8660, MAX8660_L12VCR, 0x0f,
struct max8660 *max8660;
max8660 = devm_kzalloc(dev, sizeof(struct max8660), GFP_KERNEL);
if (!max8660)
max8660->client = client;
max8660->shadow_regs[MAX8660_OVER1] = 5;
max8660->shadow_regs[MAX8660_ADTV1] =
max8660->shadow_regs[MAX8660_ADTV2] =
max8660->shadow_regs[MAX8660_SDTV1] =
max8660->shadow_regs[MAX8660_SDTV2] = 0x1b;
max8660->shadow_regs[MAX8660_MDTV1] =
max8660->shadow_regs[MAX8660_MDTV2] = 0x04;
max8660->shadow_regs[MAX8660_OVER1] |= 1;
max8660->shadow_regs[MAX8660_OVER1] |= 4;
max8660->shadow_regs[MAX8660_OVER2] |= 2;
max8660->shadow_regs[MAX8660_OVER2] |= 4;
config.driver_data = max8660;
i2c_set_clientdata(client, max8660);
static int max8660_write(struct max8660 *max8660, u8 reg, u8 mask, u8 val)
u8 reg_val = (max8660->shadow_regs[reg] & mask) | val;
dev_vdbg(&max8660->client->dev, "Writing reg %02x with %02x\n",
ret = i2c_smbus_write_byte_data(max8660->client,
max8660->shadow_regs[reg] = reg_val;