Modify to support Phytium FT2000/4 CPU for acpi Signed-off-by: Wang Honghui <honghui.wang@xxxxxxxxxxx> --- drivers/hwmon/scpi-hwmon.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/drivers/hwmon/scpi-hwmon.c b/drivers/hwmon/scpi-hwmon.c index 4d75385f7d5e..6021ae00b334 100644 --- a/drivers/hwmon/scpi-hwmon.c +++ b/drivers/hwmon/scpi-hwmon.c @@ -14,6 +14,7 @@ #include <linux/slab.h> #include <linux/sysfs.h> #include <linux/thermal.h> +#include <linux/acpi.h> struct sensor_data { unsigned int scale; @@ -132,6 +133,13 @@ static const struct of_device_id scpi_of_match[] = { }; MODULE_DEVICE_TABLE(of, scpi_of_match); +/* Wang Honghui add to support Phytium FT2000/4 CPU for acpi */ +static const struct acpi_device_id scpi_sensors_acpi_match[] = { + { .id = "PHYT000D" }, + { } +}; +MODULE_DEVICE_TABLE(acpi, scpi_sensors_acpi_match); + static int scpi_hwmon_probe(struct platform_device *pdev) { u16 nr_sensors, i; @@ -141,6 +149,7 @@ static int scpi_hwmon_probe(struct platform_device *pdev) struct scpi_ops *scpi_ops; struct device *hwdev, *dev = &pdev->dev; struct scpi_sensors *scpi_sensors; + const struct acpi_device_id *match; int idx, ret; scpi_ops = get_scpi_ops(); @@ -170,11 +179,22 @@ static int scpi_hwmon_probe(struct platform_device *pdev) scpi_sensors->scpi_ops = scpi_ops; - scale = of_device_get_match_data(&pdev->dev); - if (!scale) { - dev_err(&pdev->dev, "Unable to initialize scpi-hwmon data\n"); - return -ENODEV; - } + /* Wang Honghui modified to support Phytium FT2000/4 CPU for acpi */ + if (dev->of_node) { + scale = of_device_get_match_data(&pdev->dev); + if (!scale) { + dev_err(&pdev->dev, "Unable to initialize scpi-hwmon data\n"); + return -ENODEV; + } + } else { + match = acpi_match_device(dev->driver->acpi_match_table, dev); + if (!match) { + dev_err(dev, "scpi-hwmon: Error ACPI match data is missing\n"); + return -ENODEV; + } + + scale = scpi_scale; + } for (i = 0, idx = 0; i < nr_sensors; i++) { struct sensor_data *sensor = &scpi_sensors->data[idx]; -- 2.34.1