| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Driver for the ADT7411 (I2C/SPI 8 channel 10 bit ADC & temperature-sensor) |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 2008, 2010 Pengutronix |
|---|
| 5 | | - * |
|---|
| 6 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 7 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 8 | | - * published by the Free Software Foundation. |
|---|
| 9 | 6 | * |
|---|
| 10 | 7 | * TODO: SPI, use power-down mode for suspend?, interrupt handling? |
|---|
| 11 | 8 | */ |
|---|
| .. | .. |
|---|
| 639 | 636 | return i2c_smbus_write_byte_data(data->client, ADT7411_REG_CFG1, val); |
|---|
| 640 | 637 | } |
|---|
| 641 | 638 | |
|---|
| 642 | | -static const u32 adt7411_in_config[] = { |
|---|
| 643 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 644 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 645 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 646 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 647 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 648 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 649 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 650 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 651 | | - HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 652 | | - 0 |
|---|
| 653 | | -}; |
|---|
| 654 | | - |
|---|
| 655 | | -static const struct hwmon_channel_info adt7411_in = { |
|---|
| 656 | | - .type = hwmon_in, |
|---|
| 657 | | - .config = adt7411_in_config, |
|---|
| 658 | | -}; |
|---|
| 659 | | - |
|---|
| 660 | | -static const u32 adt7411_temp_config[] = { |
|---|
| 661 | | - HWMON_T_INPUT | HWMON_T_MIN | HWMON_T_MIN_ALARM | |
|---|
| 662 | | - HWMON_T_MAX | HWMON_T_MAX_ALARM, |
|---|
| 663 | | - HWMON_T_INPUT | HWMON_T_MIN | HWMON_T_MIN_ALARM | |
|---|
| 664 | | - HWMON_T_MAX | HWMON_T_MAX_ALARM | HWMON_T_FAULT, |
|---|
| 665 | | - 0 |
|---|
| 666 | | -}; |
|---|
| 667 | | - |
|---|
| 668 | | -static const struct hwmon_channel_info adt7411_temp = { |
|---|
| 669 | | - .type = hwmon_temp, |
|---|
| 670 | | - .config = adt7411_temp_config, |
|---|
| 671 | | -}; |
|---|
| 672 | | - |
|---|
| 673 | 639 | static const struct hwmon_channel_info *adt7411_info[] = { |
|---|
| 674 | | - &adt7411_in, |
|---|
| 675 | | - &adt7411_temp, |
|---|
| 640 | + HWMON_CHANNEL_INFO(in, |
|---|
| 641 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 642 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 643 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 644 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 645 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 646 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 647 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 648 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM, |
|---|
| 649 | + HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_ALARM), |
|---|
| 650 | + HWMON_CHANNEL_INFO(temp, |
|---|
| 651 | + HWMON_T_INPUT | HWMON_T_MIN | HWMON_T_MIN_ALARM | |
|---|
| 652 | + HWMON_T_MAX | HWMON_T_MAX_ALARM, |
|---|
| 653 | + HWMON_T_INPUT | HWMON_T_MIN | HWMON_T_MIN_ALARM | |
|---|
| 654 | + HWMON_T_MAX | HWMON_T_MAX_ALARM | HWMON_T_FAULT), |
|---|
| 676 | 655 | NULL |
|---|
| 677 | 656 | }; |
|---|
| 678 | 657 | |
|---|
| .. | .. |
|---|
| 687 | 666 | .info = adt7411_info, |
|---|
| 688 | 667 | }; |
|---|
| 689 | 668 | |
|---|
| 690 | | -static int adt7411_probe(struct i2c_client *client, |
|---|
| 691 | | - const struct i2c_device_id *id) |
|---|
| 669 | +static int adt7411_probe(struct i2c_client *client) |
|---|
| 692 | 670 | { |
|---|
| 693 | 671 | struct device *dev = &client->dev; |
|---|
| 694 | 672 | struct adt7411_data *data; |
|---|
| .. | .. |
|---|
| 728 | 706 | .driver = { |
|---|
| 729 | 707 | .name = "adt7411", |
|---|
| 730 | 708 | }, |
|---|
| 731 | | - .probe = adt7411_probe, |
|---|
| 709 | + .probe_new = adt7411_probe, |
|---|
| 732 | 710 | .id_table = adt7411_id, |
|---|
| 733 | 711 | .detect = adt7411_detect, |
|---|
| 734 | 712 | .address_list = normal_i2c, |
|---|
| .. | .. |
|---|
| 737 | 715 | |
|---|
| 738 | 716 | module_i2c_driver(adt7411_driver); |
|---|
| 739 | 717 | |
|---|
| 740 | | -MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de> and " |
|---|
| 741 | | - "Wolfram Sang <w.sang@pengutronix.de>"); |
|---|
| 718 | +MODULE_AUTHOR("Sascha Hauer, Wolfram Sang <kernel@pengutronix.de>"); |
|---|
| 742 | 719 | MODULE_DESCRIPTION("ADT7411 driver"); |
|---|
| 743 | 720 | MODULE_LICENSE("GPL v2"); |
|---|