Lines Matching refs:reg

3  * drivers/media/i2c/ccs/ccs-reg-access.c
69 static int ____ccs_read_addr(struct ccs_sensor *sensor, u16 reg, u16 len,
85 put_unaligned_be16(reg, offset_buf);
110 dev_err(&client->dev, "read from offset 0x%x error %d\n", reg, r);
116 static int ____ccs_read_addr_8only(struct ccs_sensor *sensor, u16 reg,
127 rval = ____ccs_read_addr(sensor, reg + i, 1, &val8);
136 unsigned int ccs_reg_width(u32 reg)
138 if (reg & CCS_FL_16BIT)
140 if (reg & CCS_FL_32BIT)
157 u32 ccs_reg_conv(struct ccs_sensor *sensor, u32 reg, u32 val)
161 if (reg & CCS_FL_FLOAT_IREAL) {
167 } else if (reg & CCS_FL_IREAL) {
178 static int __ccs_read_addr(struct ccs_sensor *sensor, u32 reg, u32 *val,
181 unsigned int len = ccs_reg_width(reg);
185 rval = ____ccs_read_addr(sensor, CCS_REG_ADDR(reg), len, val);
187 rval = ____ccs_read_addr_8only(sensor, CCS_REG_ADDR(reg), len,
195 *val = ccs_reg_conv(sensor, reg, *val);
201 u32 reg, u32 *val)
203 unsigned int width = ccs_reg_width(reg);
209 if (regs->addr + regs->len < CCS_REG_ADDR(reg) + width)
212 if (regs->addr > CCS_REG_ADDR(reg))
215 data = &regs->value[CCS_REG_ADDR(reg) - regs->addr];
238 static int ccs_read_data(struct ccs_sensor *sensor, u32 reg, u32 *val)
242 reg, val))
247 reg, val);
250 static int ccs_read_addr_raw(struct ccs_sensor *sensor, u32 reg, u32 *val,
256 rval = ccs_read_data(sensor, reg, val);
263 rval = ccs_call_quirk(sensor, reg_access, false, &reg, val);
270 return __ccs_read_addr(sensor, reg, val, true, conv);
273 return __ccs_read_addr(sensor, reg, val,
279 int ccs_read_addr(struct ccs_sensor *sensor, u32 reg, u32 *val)
281 return ccs_read_addr_raw(sensor, reg, val, false, true, true, true);
284 int ccs_read_addr_8only(struct ccs_sensor *sensor, u32 reg, u32 *val)
286 return ccs_read_addr_raw(sensor, reg, val, true, true, true, true);
289 int ccs_read_addr_noconv(struct ccs_sensor *sensor, u32 reg, u32 *val)
291 return ccs_read_addr_raw(sensor, reg, val, false, true, false, true);
321 int ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val)
326 unsigned int len = ccs_reg_width(reg);
337 put_unaligned_be16(CCS_REG_ADDR(reg), data);
340 dev_dbg(&client->dev, "writing reg 0x%4.4x value 0x%*.*x (%u)\n",
341 CCS_REG_ADDR(reg), ccs_reg_width(reg) << 1,
342 ccs_reg_width(reg) << 1, val, val);
348 CCS_REG_ADDR(reg), r);
357 int ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val)
361 rval = ccs_call_quirk(sensor, reg_access, true, &reg, &val);
367 return ccs_write_addr_no_quirk(sensor, reg, val);
397 "writing msr reg 0x%4.4x value 0x%s\n",