Lines Matching refs:dev
61 static void w1_write_bit(struct w1_master *dev, int bit);
62 static u8 w1_read_bit(struct w1_master *dev);
69 static u8 w1_touch_bit(struct w1_master *dev, int bit) in w1_touch_bit() argument
71 if (dev->bus_master->touch_bit) in w1_touch_bit()
72 return dev->bus_master->touch_bit(dev->bus_master->data, bit); in w1_touch_bit()
74 return w1_read_bit(dev); in w1_touch_bit()
76 w1_write_bit(dev, 0); in w1_touch_bit()
88 static void w1_write_bit(struct w1_master *dev, int bit) in w1_write_bit() argument
95 dev->bus_master->write_bit(dev->bus_master->data, 0); in w1_write_bit()
97 dev->bus_master->write_bit(dev->bus_master->data, 1); in w1_write_bit()
100 dev->bus_master->write_bit(dev->bus_master->data, 0); in w1_write_bit()
102 dev->bus_master->write_bit(dev->bus_master->data, 1); in w1_write_bit()
117 static void w1_pre_write(struct w1_master *dev) in w1_pre_write() argument
119 if (dev->pullup_duration && in w1_pre_write()
120 dev->enable_pullup && dev->bus_master->set_pullup) { in w1_pre_write()
121 dev->bus_master->set_pullup(dev->bus_master->data, in w1_pre_write()
122 dev->pullup_duration); in w1_pre_write()
134 static void w1_post_write(struct w1_master *dev) in w1_post_write() argument
136 if (dev->pullup_duration) { in w1_post_write()
137 if (dev->enable_pullup && dev->bus_master->set_pullup) in w1_post_write()
138 dev->bus_master->set_pullup(dev->bus_master->data, 0); in w1_post_write()
140 msleep(dev->pullup_duration); in w1_post_write()
141 dev->pullup_duration = 0; in w1_post_write()
150 void w1_write_8(struct w1_master *dev, u8 byte) in w1_write_8() argument
154 if (dev->bus_master->write_byte) { in w1_write_8()
155 w1_pre_write(dev); in w1_write_8()
156 dev->bus_master->write_byte(dev->bus_master->data, byte); in w1_write_8()
161 w1_pre_write(dev); in w1_write_8()
162 w1_touch_bit(dev, (byte >> i) & 0x1); in w1_write_8()
164 w1_post_write(dev); in w1_write_8()
175 static u8 w1_read_bit(struct w1_master *dev) in w1_read_bit() argument
182 dev->bus_master->write_bit(dev->bus_master->data, 0); in w1_read_bit()
184 dev->bus_master->write_bit(dev->bus_master->data, 1); in w1_read_bit()
187 result = dev->bus_master->read_bit(dev->bus_master->data); in w1_read_bit()
208 u8 w1_triplet(struct w1_master *dev, int bdir) in w1_triplet() argument
210 if (dev->bus_master->triplet) in w1_triplet()
211 return dev->bus_master->triplet(dev->bus_master->data, bdir); in w1_triplet()
213 u8 id_bit = w1_touch_bit(dev, 1); in w1_triplet()
214 u8 comp_bit = w1_touch_bit(dev, 1); in w1_triplet()
229 if (dev->bus_master->touch_bit) in w1_triplet()
230 w1_touch_bit(dev, bdir); in w1_triplet()
232 w1_write_bit(dev, bdir); in w1_triplet()
243 u8 w1_read_8(struct w1_master *dev) in w1_read_8() argument
248 if (dev->bus_master->read_byte) in w1_read_8()
249 res = dev->bus_master->read_byte(dev->bus_master->data); in w1_read_8()
252 res |= (w1_touch_bit(dev,1) << i); in w1_read_8()
264 void w1_write_block(struct w1_master *dev, const u8 *buf, int len) in w1_write_block() argument
268 if (dev->bus_master->write_block) { in w1_write_block()
269 w1_pre_write(dev); in w1_write_block()
270 dev->bus_master->write_block(dev->bus_master->data, buf, len); in w1_write_block()
274 w1_write_8(dev, buf[i]); /* calls w1_pre_write */ in w1_write_block()
275 w1_post_write(dev); in w1_write_block()
285 void w1_touch_block(struct w1_master *dev, u8 *buf, int len) in w1_touch_block() argument
294 w1_pre_write(dev); in w1_touch_block()
295 tmp |= w1_touch_bit(dev, (buf[i] >> j) & 0x1) << j; in w1_touch_block()
310 u8 w1_read_block(struct w1_master *dev, u8 *buf, int len) in w1_read_block() argument
315 if (dev->bus_master->read_block) in w1_read_block()
316 ret = dev->bus_master->read_block(dev->bus_master->data, buf, len); in w1_read_block()
319 buf[i] = w1_read_8(dev); in w1_read_block()
332 int w1_reset_bus(struct w1_master *dev) in w1_reset_bus() argument
339 if (dev->bus_master->reset_bus) in w1_reset_bus()
340 result = dev->bus_master->reset_bus(dev->bus_master->data) & 0x1; in w1_reset_bus()
342 dev->bus_master->write_bit(dev->bus_master->data, 0); in w1_reset_bus()
351 dev->bus_master->write_bit(dev->bus_master->data, 1); in w1_reset_bus()
354 result = dev->bus_master->read_bit(dev->bus_master->data) & 0x1; in w1_reset_bus()
380 void w1_search_devices(struct w1_master *dev, u8 search_type, w1_slave_found_callback cb) in w1_search_devices() argument
382 dev->attempts++; in w1_search_devices()
383 if (dev->bus_master->search) in w1_search_devices()
384 dev->bus_master->search(dev->bus_master->data, dev, in w1_search_devices()
387 w1_search(dev, search_type, cb); in w1_search_devices()
435 int w1_reset_resume_command(struct w1_master *dev) in w1_reset_resume_command() argument
437 if (w1_reset_bus(dev)) in w1_reset_resume_command()
441 w1_write_8(dev, W1_RESUME_CMD); in w1_reset_resume_command()
460 void w1_next_pullup(struct w1_master *dev, int delay) in w1_next_pullup() argument
462 dev->pullup_duration = delay; in w1_next_pullup()