Lines Matching refs:ec
693 static int find_ec_sensor_index(const struct ec_sensors_data *ec,
698 for (i = 0; i < ec->nr_sensors; i++) {
699 if (get_sensor_info(ec, i)->type == type) {
713 static void setup_sensor_data(struct ec_sensors_data *ec)
715 struct ec_sensor *s = ec->sensors;
720 ec->nr_banks = 0;
721 ec->nr_registers = 0;
723 for_each_set_bit(i, &ec->board_info->sensors,
724 BITS_PER_TYPE(ec->board_info->sensors)) {
727 ec->nr_registers +=
728 ec->sensors_info[s->info_index].addr.components.size;
730 bank = ec->sensors_info[s->info_index].addr.components.bank;
731 for (j = 0; j < ec->nr_banks; j++) {
732 if (ec->banks[j] == bank) {
738 ec->banks[ec->nr_banks++] = bank;
742 sort(ec->banks, ec->nr_banks, 1, bank_compare, NULL);
745 static void fill_ec_registers(struct ec_sensors_data *ec)
750 for (i = 0; i < ec->nr_sensors; ++i) {
751 si = get_sensor_info(ec, i);
753 ec->registers[register_idx] =
805 struct ec_sensors_data *ec)
824 for (ibank = 0; ibank < ec->nr_banks; ibank++) {
825 if (bank != ec->banks[ibank]) {
826 bank = ec->banks[ibank];
833 for (ireg = 0; ireg < ec->nr_registers; ireg++) {
834 reg_bank = register_bank(ec->registers[ireg]);
838 ec_read(register_index(ec->registers[ireg]),
839 ec->read_buffer + ireg);
874 static void update_sensor_values(struct ec_sensors_data *ec, u8 *data)
879 sensor_end = ec->sensors + ec->nr_sensors;
880 for (s = ec->sensors; s != sensor_end; s++) {
881 si = ec->sensors_info + s->info_index;
888 struct ec_sensors_data *ec)
892 if (!ec->lock_data.lock(&ec->lock_data)) {
897 status = asus_ec_block_read(dev, ec);
900 update_sensor_values(ec, ec->read_buffer);
903 if (!ec->lock_data.unlock(&ec->lock_data))
1142 .name = "asus-ec-sensors",