Lines Matching refs:pdev
114 struct ds2482_data *pdev; member
151 static inline int ds2482_select_register(struct ds2482_data *pdev, u8 read_ptr) in ds2482_select_register() argument
153 if (pdev->read_prt != read_ptr) { in ds2482_select_register()
154 if (i2c_smbus_write_byte_data(pdev->client, in ds2482_select_register()
159 pdev->read_prt = read_ptr; in ds2482_select_register()
172 static inline int ds2482_send_cmd(struct ds2482_data *pdev, u8 cmd) in ds2482_send_cmd() argument
174 if (i2c_smbus_write_byte(pdev->client, cmd) < 0) in ds2482_send_cmd()
177 pdev->read_prt = DS2482_PTR_CODE_STATUS; in ds2482_send_cmd()
191 static inline int ds2482_send_cmd_data(struct ds2482_data *pdev, in ds2482_send_cmd_data() argument
194 if (i2c_smbus_write_byte_data(pdev->client, cmd, byte) < 0) in ds2482_send_cmd_data()
198 pdev->read_prt = (cmd != DS2482_CMD_WRITE_CONFIG) ? in ds2482_send_cmd_data()
216 static int ds2482_wait_1wire_idle(struct ds2482_data *pdev) in ds2482_wait_1wire_idle() argument
221 if (!ds2482_select_register(pdev, DS2482_PTR_CODE_STATUS)) { in ds2482_wait_1wire_idle()
223 temp = i2c_smbus_read_byte(pdev->client); in ds2482_wait_1wire_idle()
230 __func__, pdev->channel); in ds2482_wait_1wire_idle()
243 static int ds2482_set_channel(struct ds2482_data *pdev, u8 channel) in ds2482_set_channel() argument
245 if (i2c_smbus_write_byte_data(pdev->client, DS2482_CMD_CHANNEL_SELECT, in ds2482_set_channel()
249 pdev->read_prt = DS2482_PTR_CODE_CHANNEL; in ds2482_set_channel()
250 pdev->channel = -1; in ds2482_set_channel()
251 if (i2c_smbus_read_byte(pdev->client) == ds2482_chan_rd[channel]) { in ds2482_set_channel()
252 pdev->channel = channel; in ds2482_set_channel()
269 struct ds2482_data *pdev = pchan->pdev; in ds2482_w1_touch_bit() local
272 mutex_lock(&pdev->access_lock); in ds2482_w1_touch_bit()
275 ds2482_wait_1wire_idle(pdev); in ds2482_w1_touch_bit()
276 if (pdev->w1_count > 1) in ds2482_w1_touch_bit()
277 ds2482_set_channel(pdev, pchan->channel); in ds2482_w1_touch_bit()
280 if (!ds2482_send_cmd_data(pdev, DS2482_CMD_1WIRE_SINGLE_BIT, in ds2482_w1_touch_bit()
282 status = ds2482_wait_1wire_idle(pdev); in ds2482_w1_touch_bit()
284 mutex_unlock(&pdev->access_lock); in ds2482_w1_touch_bit()
301 struct ds2482_data *pdev = pchan->pdev; in ds2482_w1_triplet() local
304 mutex_lock(&pdev->access_lock); in ds2482_w1_triplet()
307 ds2482_wait_1wire_idle(pdev); in ds2482_w1_triplet()
308 if (pdev->w1_count > 1) in ds2482_w1_triplet()
309 ds2482_set_channel(pdev, pchan->channel); in ds2482_w1_triplet()
312 if (!ds2482_send_cmd_data(pdev, DS2482_CMD_1WIRE_TRIPLET, in ds2482_w1_triplet()
314 status = ds2482_wait_1wire_idle(pdev); in ds2482_w1_triplet()
316 mutex_unlock(&pdev->access_lock); in ds2482_w1_triplet()
331 struct ds2482_data *pdev = pchan->pdev; in ds2482_w1_write_byte() local
333 mutex_lock(&pdev->access_lock); in ds2482_w1_write_byte()
336 ds2482_wait_1wire_idle(pdev); in ds2482_w1_write_byte()
337 if (pdev->w1_count > 1) in ds2482_w1_write_byte()
338 ds2482_set_channel(pdev, pchan->channel); in ds2482_w1_write_byte()
341 ds2482_send_cmd_data(pdev, DS2482_CMD_1WIRE_WRITE_BYTE, byte); in ds2482_w1_write_byte()
343 mutex_unlock(&pdev->access_lock); in ds2482_w1_write_byte()
355 struct ds2482_data *pdev = pchan->pdev; in ds2482_w1_read_byte() local
358 mutex_lock(&pdev->access_lock); in ds2482_w1_read_byte()
361 ds2482_wait_1wire_idle(pdev); in ds2482_w1_read_byte()
362 if (pdev->w1_count > 1) in ds2482_w1_read_byte()
363 ds2482_set_channel(pdev, pchan->channel); in ds2482_w1_read_byte()
366 ds2482_send_cmd(pdev, DS2482_CMD_1WIRE_READ_BYTE); in ds2482_w1_read_byte()
369 ds2482_wait_1wire_idle(pdev); in ds2482_w1_read_byte()
372 ds2482_select_register(pdev, DS2482_PTR_CODE_DATA); in ds2482_w1_read_byte()
375 result = i2c_smbus_read_byte(pdev->client); in ds2482_w1_read_byte()
377 mutex_unlock(&pdev->access_lock); in ds2482_w1_read_byte()
392 struct ds2482_data *pdev = pchan->pdev; in ds2482_w1_reset_bus() local
396 mutex_lock(&pdev->access_lock); in ds2482_w1_reset_bus()
399 ds2482_wait_1wire_idle(pdev); in ds2482_w1_reset_bus()
400 if (pdev->w1_count > 1) in ds2482_w1_reset_bus()
401 ds2482_set_channel(pdev, pchan->channel); in ds2482_w1_reset_bus()
404 err = ds2482_send_cmd(pdev, DS2482_CMD_1WIRE_RESET); in ds2482_w1_reset_bus()
407 err = ds2482_wait_1wire_idle(pdev); in ds2482_w1_reset_bus()
412 ds2482_send_cmd_data(pdev, DS2482_CMD_WRITE_CONFIG, in ds2482_w1_reset_bus()
416 mutex_unlock(&pdev->access_lock); in ds2482_w1_reset_bus()
424 struct ds2482_data *pdev = pchan->pdev; in ds2482_w1_set_pullup() local
436 ds2482_wait_1wire_idle(pdev); in ds2482_w1_set_pullup()
438 retval = ds2482_send_cmd_data(pdev, DS2482_CMD_WRITE_CONFIG, in ds2482_w1_set_pullup()
441 ds2482_wait_1wire_idle(pdev); in ds2482_w1_set_pullup()
499 data->w1_ch[idx].pdev = data; in ds2482_probe()
513 data->w1_ch[idx].pdev = NULL; in ds2482_probe()
522 if (data->w1_ch[idx].pdev != NULL) in ds2482_probe()
538 if (data->w1_ch[idx].pdev != NULL) in ds2482_remove()