Lines Matching refs:st

340 static int max1363_write_basic_config(struct max1363_state *st)  in max1363_write_basic_config()  argument
342 u8 tx_buf[2] = { st->setupbyte, st->configbyte }; in max1363_write_basic_config()
344 return st->send(st->client, tx_buf, 2); in max1363_write_basic_config()
347 static int max1363_set_scan_mode(struct max1363_state *st) in max1363_set_scan_mode() argument
349 st->configbyte &= ~(MAX1363_CHANNEL_SEL_MASK in max1363_set_scan_mode()
352 st->configbyte |= st->current_mode->conf; in max1363_set_scan_mode()
354 return max1363_write_basic_config(st); in max1363_set_scan_mode()
365 struct max1363_state *st = iio_priv(indio_dev); in max1363_read_single_chan() local
366 struct i2c_client *client = st->client; in max1363_read_single_chan()
376 if (st->monitor_on || iio_buffer_enabled(indio_dev)) { in max1363_read_single_chan()
382 if (st->current_mode != &max1363_mode_table[chan->address]) { in max1363_read_single_chan()
384 st->current_mode = &max1363_mode_table[chan->address]; in max1363_read_single_chan()
385 ret = max1363_set_scan_mode(st); in max1363_read_single_chan()
389 if (st->chip_info->bits != 8) { in max1363_read_single_chan()
391 data = st->recv(client, rxbuf, 2); in max1363_read_single_chan()
397 ((1 << st->chip_info->bits) - 1); in max1363_read_single_chan()
400 data = st->recv(client, rxbuf, 1); in max1363_read_single_chan()
420 struct max1363_state *st = iio_priv(indio_dev); in max1363_read_raw() local
430 *val = st->vref_uv / 1000; in max1363_read_raw()
431 *val2 = st->chip_info->bits; in max1363_read_raw()
683 struct max1363_state *st = iio_priv(dev_to_iio_dev(dev)); in max1363_monitor_show_freq() local
684 return sprintf(buf, "%d\n", max1363_monitor_speeds[st->monitor_speed]); in max1363_monitor_show_freq()
693 struct max1363_state *st = iio_priv(indio_dev); in max1363_monitor_store_freq() local
710 st->monitor_speed = i; in max1363_monitor_store_freq()
728 struct max1363_state *st = iio_priv(indio_dev); in max1363_read_thresh() local
730 *val = st->thresh_low[chan->channel]; in max1363_read_thresh()
732 *val = st->thresh_high[chan->channel]; in max1363_read_thresh()
741 struct max1363_state *st = iio_priv(indio_dev); in max1363_write_thresh() local
743 switch (st->chip_info->bits) { in max1363_write_thresh()
756 st->thresh_low[chan->channel] = val; in max1363_write_thresh()
759 st->thresh_high[chan->channel] = val; in max1363_write_thresh()
790 struct max1363_state *st = iio_priv(indio_dev); in max1363_event_handler() local
794 u8 tx[2] = { st->setupbyte, in max1363_event_handler()
795 MAX1363_MON_INT_ENABLE | (st->monitor_speed << 1) | 0xF0 }; in max1363_event_handler()
797 st->recv(st->client, &rx, 1); in max1363_event_handler()
801 st->send(st->client, tx, 2); in max1363_event_handler()
810 struct max1363_state *st = iio_priv(indio_dev); in max1363_read_event_config() local
816 val = (1 << number) & st->mask_low; in max1363_read_event_config()
818 val = (1 << number) & st->mask_high; in max1363_read_event_config()
824 static int max1363_monitor_mode_update(struct max1363_state *st, int enabled) in max1363_monitor_mode_update() argument
834 st->setupbyte &= ~MAX1363_SETUP_MONITOR_SETUP; in max1363_monitor_mode_update()
835 st->configbyte &= ~MAX1363_SCAN_MASK; in max1363_monitor_mode_update()
836 st->monitor_on = false; in max1363_monitor_mode_update()
837 return max1363_write_basic_config(st); in max1363_monitor_mode_update()
841 st->setupbyte |= MAX1363_SETUP_MONITOR_SETUP; in max1363_monitor_mode_update()
842 st->configbyte &= ~(MAX1363_CHANNEL_SEL_MASK in max1363_monitor_mode_update()
845 st->configbyte |= MAX1363_CONFIG_SCAN_MONITOR_MODE; in max1363_monitor_mode_update()
846 if ((st->mask_low | st->mask_high) & 0x0F) { in max1363_monitor_mode_update()
847 st->configbyte |= max1363_mode_table[s0to3].conf; in max1363_monitor_mode_update()
849 } else if ((st->mask_low | st->mask_high) & 0x30) { in max1363_monitor_mode_update()
850 st->configbyte |= max1363_mode_table[d0m1to2m3].conf; in max1363_monitor_mode_update()
853 st->configbyte |= max1363_mode_table[d1m0to3m2].conf; in max1363_monitor_mode_update()
863 tx_buf[0] = st->configbyte; in max1363_monitor_mode_update()
864 tx_buf[1] = st->setupbyte; in max1363_monitor_mode_update()
865 tx_buf[2] = (st->monitor_speed << 1); in max1363_monitor_mode_update()
874 if (st->mask_low & (1 << j)) { in max1363_monitor_mode_update()
875 tx_buf[i] = (st->thresh_low[j] >> 4) & 0xFF; in max1363_monitor_mode_update()
876 tx_buf[i + 1] = (st->thresh_low[j] << 4) & 0xF0; in max1363_monitor_mode_update()
884 if (st->mask_high & (1 << j)) { in max1363_monitor_mode_update()
886 (st->thresh_high[j] >> 8) & 0x0F; in max1363_monitor_mode_update()
887 tx_buf[i + 2] = st->thresh_high[j] & 0xFF; in max1363_monitor_mode_update()
899 ret = st->send(st->client, tx_buf, len); in max1363_monitor_mode_update()
914 tx_buf[0] = st->setupbyte; in max1363_monitor_mode_update()
915 tx_buf[1] = MAX1363_MON_INT_ENABLE | (st->monitor_speed << 1) | 0xF0; in max1363_monitor_mode_update()
916 ret = st->send(st->client, tx_buf, 2); in max1363_monitor_mode_update()
924 st->monitor_on = true; in max1363_monitor_mode_update()
962 struct max1363_state *st = iio_priv(indio_dev); in max1363_write_event_config() local
967 unifiedmask = st->mask_low | st->mask_high; in max1363_write_event_config()
971 st->mask_low &= ~(1 << number); in max1363_write_event_config()
977 st->mask_low |= (1 << number); in max1363_write_event_config()
981 st->mask_high &= ~(1 << number); in max1363_write_event_config()
987 st->mask_high |= (1 << number); in max1363_write_event_config()
991 max1363_monitor_mode_update(st, !!(st->mask_high | st->mask_low)); in max1363_write_event_config()
1015 struct max1363_state *st = iio_priv(indio_dev); in max1363_update_scan_mode() local
1021 st->current_mode = max1363_match_mode(scan_mask, st->chip_info); in max1363_update_scan_mode()
1022 if (!st->current_mode) in max1363_update_scan_mode()
1024 max1363_set_scan_mode(st); in max1363_update_scan_mode()
1429 static int max1363_initial_setup(struct max1363_state *st) in max1363_initial_setup() argument
1431 st->setupbyte = MAX1363_SETUP_INT_CLOCK in max1363_initial_setup()
1435 if (st->vref) in max1363_initial_setup()
1436 st->setupbyte |= MAX1363_SETUP_AIN3_IS_REF_EXT_TO_REF; in max1363_initial_setup()
1438 st->setupbyte |= MAX1363_SETUP_POWER_UP_INT_REF in max1363_initial_setup()
1442 st->setupbyte = MAX1363_SETUP_BYTE(st->setupbyte); in max1363_initial_setup()
1443 st->current_mode = &max1363_mode_table[st->chip_info->default_mode]; in max1363_initial_setup()
1444 st->configbyte = MAX1363_CONFIG_BYTE(st->configbyte); in max1363_initial_setup()
1446 return max1363_set_scan_mode(st); in max1363_initial_setup()
1451 struct max1363_state *st = iio_priv(indio_dev); in max1363_alloc_scan_masks() local
1457 (st->chip_info->num_modes + 1), GFP_KERNEL); in max1363_alloc_scan_masks()
1461 for (i = 0; i < st->chip_info->num_modes; i++) in max1363_alloc_scan_masks()
1463 max1363_mode_table[st->chip_info->mode_list[i]] in max1363_alloc_scan_masks()
1475 struct max1363_state *st = iio_priv(indio_dev); in max1363_trigger_handler() local
1479 unsigned long numvals = bitmap_weight(st->current_mode->modemask, in max1363_trigger_handler()
1483 if (st->chip_info->bits != 8) in max1363_trigger_handler()
1502 if (st->chip_info->bits != 8) in max1363_trigger_handler()
1503 b_sent = st->recv(st->client, rxbuf, numvals * 2); in max1363_trigger_handler()
1505 b_sent = st->recv(st->client, rxbuf, numvals); in max1363_trigger_handler()
1523 struct max1363_state *st; in max1363_probe() local
1537 st = iio_priv(indio_dev); in max1363_probe()
1539 st->reg = devm_regulator_get(&client->dev, "vcc"); in max1363_probe()
1540 if (IS_ERR(st->reg)) { in max1363_probe()
1541 ret = PTR_ERR(st->reg); in max1363_probe()
1545 ret = regulator_enable(st->reg); in max1363_probe()
1552 st->chip_info = &max1363_chip_info_tbl[id->driver_data]; in max1363_probe()
1553 st->client = client; in max1363_probe()
1555 st->vref_uv = st->chip_info->int_vref_mv * 1000; in max1363_probe()
1563 st->vref = vref; in max1363_probe()
1569 st->vref_uv = vref_uv; in max1363_probe()
1573 st->send = i2c_master_send; in max1363_probe()
1574 st->recv = i2c_master_recv; in max1363_probe()
1576 && st->chip_info->bits == 8) { in max1363_probe()
1577 st->send = max1363_smbus_send; in max1363_probe()
1578 st->recv = max1363_smbus_recv; in max1363_probe()
1591 indio_dev->channels = st->chip_info->channels; in max1363_probe()
1592 indio_dev->num_channels = st->chip_info->num_channels; in max1363_probe()
1593 indio_dev->info = st->chip_info->info; in max1363_probe()
1595 ret = max1363_initial_setup(st); in max1363_probe()
1605 ret = devm_request_threaded_irq(&client->dev, st->client->irq, in max1363_probe()
1625 if (st->vref) in max1363_probe()
1626 regulator_disable(st->vref); in max1363_probe()
1627 regulator_disable(st->reg); in max1363_probe()
1636 struct max1363_state *st = iio_priv(indio_dev); in max1363_remove() local
1640 if (st->vref) in max1363_remove()
1641 regulator_disable(st->vref); in max1363_remove()
1642 regulator_disable(st->reg); in max1363_remove()