Lines Matching refs:sl

52 static int w1_ds2438_get_page(struct w1_slave *sl, int pageno, u8 *buf)
62 if (w1_reset_select_slave(sl))
66 w1_write_block(sl->master, w1_buf, 2);
68 if (w1_reset_select_slave(sl))
72 w1_write_block(sl->master, w1_buf, 2);
74 count = w1_read_block(sl->master, buf, DS2438_PAGE_SIZE + 1);
86 static int w1_ds2438_get_temperature(struct w1_slave *sl, int16_t *temperature)
94 mutex_lock(&sl->master->bus_mutex);
97 if (w1_reset_select_slave(sl))
99 w1_write_8(sl->master, W1_DS2438_CONVERT_TEMP);
101 mutex_unlock(&sl->master->bus_mutex);
108 if (mutex_lock_interruptible(&sl->master->bus_mutex) != 0) {
116 if (w1_ds2438_get_page(sl, 0, w1_buf) == 0) {
122 mutex_unlock(&sl->master->bus_mutex);
128 static int w1_ds2438_change_config_bit(struct w1_slave *sl, u8 mask, u8 value)
136 if (w1_reset_select_slave(sl))
140 w1_write_block(sl->master, w1_buf, 2);
142 if (w1_reset_select_slave(sl))
146 w1_write_block(sl->master, w1_buf, 2);
149 status = w1_read_8(sl->master);
168 if (w1_reset_select_slave(sl))
173 w1_write_block(sl->master, w1_buf, 3);
175 if (w1_reset_select_slave(sl))
179 w1_write_block(sl->master, w1_buf, 2);
187 static int w1_ds2438_get_voltage(struct w1_slave *sl,
196 mutex_lock(&sl->master->bus_mutex);
198 if (w1_ds2438_change_config_bit(sl, DS2438_STATUS_AD, adc_input)) {
204 if (w1_reset_select_slave(sl))
206 w1_write_8(sl->master, W1_DS2438_CONVERT_VOLTAGE);
208 mutex_unlock(&sl->master->bus_mutex);
215 if (mutex_lock_interruptible(&sl->master->bus_mutex) != 0) {
223 if (w1_ds2438_get_page(sl, 0, w1_buf) == 0) {
230 mutex_unlock(&sl->master->bus_mutex);
236 static int w1_ds2438_get_current(struct w1_slave *sl, int16_t *voltage)
241 mutex_lock(&sl->master->bus_mutex);
243 if (w1_ds2438_get_page(sl, 0, w1_buf) == 0) {
250 mutex_unlock(&sl->master->bus_mutex);
259 struct w1_slave *sl = kobj_to_w1_slave(kobj);
265 mutex_lock(&sl->master->bus_mutex);
267 if (w1_ds2438_change_config_bit(sl, DS2438_STATUS_IAD, *buf & 0x01) == 0)
272 mutex_unlock(&sl->master->bus_mutex);
281 struct w1_slave *sl = kobj_to_w1_slave(kobj);
290 if (w1_ds2438_get_current(sl, &voltage) == 0) {
302 struct w1_slave *sl = kobj_to_w1_slave(kobj);
311 mutex_lock(&sl->master->bus_mutex);
317 if (w1_ds2438_get_page(sl, 0, w1_buf) == 0) {
323 mutex_unlock(&sl->master->bus_mutex);
332 struct w1_slave *sl = kobj_to_w1_slave(kobj);
341 if (w1_ds2438_get_temperature(sl, &temp) == 0) {
353 struct w1_slave *sl = kobj_to_w1_slave(kobj);
362 if (w1_ds2438_get_voltage(sl, DS2438_ADC_INPUT_VAD, &voltage) == 0) {
374 struct w1_slave *sl = kobj_to_w1_slave(kobj);
383 if (w1_ds2438_get_voltage(sl, DS2438_ADC_INPUT_VDD, &voltage) == 0) {