Lines Matching refs:dev
44 static void w1_write_bit(struct w1_master *dev, int bit);
45 static u8 w1_read_bit(struct w1_master *dev);
49 * @dev: the master device
52 u8 w1_touch_bit(struct w1_master *dev, int bit)
54 if (dev->bus_master->touch_bit)
55 return dev->bus_master->touch_bit(dev->bus_master->data, bit);
57 return w1_read_bit(dev);
59 w1_write_bit(dev, 0);
67 * @dev: the master device
70 * Only call if dev->bus_master->touch_bit is NULL
72 static void w1_write_bit(struct w1_master *dev, int bit)
79 dev->bus_master->write_bit(dev->bus_master->data, 0);
81 dev->bus_master->write_bit(dev->bus_master->data, 1);
84 dev->bus_master->write_bit(dev->bus_master->data, 0);
86 dev->bus_master->write_bit(dev->bus_master->data, 1);
95 * @dev: the master device
101 static void w1_pre_write(struct w1_master *dev)
103 if (dev->pullup_duration &&
104 dev->enable_pullup && dev->bus_master->set_pullup) {
105 dev->bus_master->set_pullup(dev->bus_master->data,
106 dev->pullup_duration);
112 * @dev: the master device
118 static void w1_post_write(struct w1_master *dev)
120 if (dev->pullup_duration) {
121 if (dev->enable_pullup && dev->bus_master->set_pullup)
122 dev->bus_master->set_pullup(dev->bus_master->data, 0);
124 msleep(dev->pullup_duration);
125 dev->pullup_duration = 0;
131 * @dev: the master device
134 void w1_write_8(struct w1_master *dev, u8 byte)
138 if (dev->bus_master->write_byte) {
139 w1_pre_write(dev);
140 dev->bus_master->write_byte(dev->bus_master->data, byte);
145 w1_pre_write(dev);
146 w1_touch_bit(dev, (byte >> i) & 0x1);
148 w1_post_write(dev);
155 * @dev: the master device
157 * Only call if dev->bus_master->touch_bit is NULL
159 static u8 w1_read_bit(struct w1_master *dev)
166 dev->bus_master->write_bit(dev->bus_master->data, 0);
168 dev->bus_master->write_bit(dev->bus_master->data, 1);
171 result = dev->bus_master->read_bit(dev->bus_master->data);
181 * @dev: the master device
193 u8 w1_triplet(struct w1_master *dev, int bdir)
195 if (dev->bus_master->triplet)
196 return dev->bus_master->triplet(dev->bus_master->data, bdir);
198 u8 id_bit = w1_touch_bit(dev, 1);
199 u8 comp_bit = w1_touch_bit(dev, 1);
214 if (dev->bus_master->touch_bit)
215 w1_touch_bit(dev, bdir);
217 w1_write_bit(dev, bdir);
225 * @dev: the master device
229 u8 w1_read_8(struct w1_master *dev)
234 if (dev->bus_master->read_byte)
235 res = dev->bus_master->read_byte(dev->bus_master->data);
238 res |= (w1_touch_bit(dev,1) << i);
246 * @dev: the master device
250 void w1_write_block(struct w1_master *dev, const u8 *buf, int len)
254 if (dev->bus_master->write_block) {
255 w1_pre_write(dev);
256 dev->bus_master->write_block(dev->bus_master->data, buf, len);
260 w1_write_8(dev, buf[i]); /* calls w1_pre_write */
261 w1_post_write(dev);
267 * @dev: the master device
271 void w1_touch_block(struct w1_master *dev, u8 *buf, int len)
280 w1_pre_write(dev);
281 tmp |= w1_touch_bit(dev, (buf[i] >> j) & 0x1) << j;
291 * @dev: the master device
296 u8 w1_read_block(struct w1_master *dev, u8 *buf, int len)
301 if (dev->bus_master->read_block)
302 ret = dev->bus_master->read_block(dev->bus_master->data, buf, len);
305 buf[i] = w1_read_8(dev);
315 * @dev: the master device
318 int w1_reset_bus(struct w1_master *dev)
325 if (dev->bus_master->reset_bus)
326 result = dev->bus_master->reset_bus(dev->bus_master->data) & 0x1;
328 dev->bus_master->write_bit(dev->bus_master->data, 0);
337 dev->bus_master->write_bit(dev->bus_master->data, 1);
340 result = dev->bus_master->read_bit(dev->bus_master->data) & 0x1;
366 void w1_search_devices(struct w1_master *dev, u8 search_type, w1_slave_found_callback cb)
368 dev->attempts++;
369 if (dev->bus_master->search)
370 dev->bus_master->search(dev->bus_master->data, dev,
373 w1_search(dev, search_type, cb);
407 * @dev: the master device
421 int w1_reset_resume_command(struct w1_master *dev)
423 if (w1_reset_bus(dev))
426 w1_write_8(dev, dev->slave_count > 1 ? W1_RESUME_CMD : W1_SKIP_ROM);
433 * @dev: the master device
445 void w1_next_pullup(struct w1_master *dev, int delay)
447 dev->pullup_duration = delay;