Lines Matching +full:bcm2835 +full:- +full:pm
1 // SPDX-License-Identifier: GPL-2.0+
10 #include <linux/devm-helpers.h>
17 #include <soc/bcm2835/raspberrypi-firmware.h>
36 ret = rpi_firmware_property(data->fw, RPI_FIRMWARE_GET_THROTTLED, in rpi_firmware_get_throttled()
39 dev_err_once(data->hwmon_dev, "Failed to get throttled (%d)\n", in rpi_firmware_get_throttled()
45 old_uv = data->last_throttled & UNDERVOLTAGE_STICKY_BIT; in rpi_firmware_get_throttled()
46 data->last_throttled = value; in rpi_firmware_get_throttled()
52 dev_crit(data->hwmon_dev, "Undervoltage detected!\n"); in rpi_firmware_get_throttled()
54 dev_info(data->hwmon_dev, "Voltage normalised\n"); in rpi_firmware_get_throttled()
56 hwmon_notify_event(data->hwmon_dev, hwmon_in, hwmon_in_lcrit_alarm, 0); in rpi_firmware_get_throttled()
72 schedule_delayed_work(&data->get_values_poll_work, 2 * HZ); in get_values_poll()
80 *val = !!(data->last_throttled & UNDERVOLTAGE_STICKY_BIT); in rpi_read()
102 struct device *dev = &pdev->dev; in rpi_hwmon_probe()
108 return -ENOMEM; in rpi_hwmon_probe()
111 data->fw = dev_get_drvdata(dev->parent); in rpi_hwmon_probe()
113 data->hwmon_dev = devm_hwmon_device_register_with_info(dev, "rpi_volt", in rpi_hwmon_probe()
117 if (IS_ERR(data->hwmon_dev)) in rpi_hwmon_probe()
118 return PTR_ERR(data->hwmon_dev); in rpi_hwmon_probe()
120 ret = devm_delayed_work_autocancel(dev, &data->get_values_poll_work, in rpi_hwmon_probe()
126 schedule_delayed_work(&data->get_values_poll_work, 2 * HZ); in rpi_hwmon_probe()
135 cancel_delayed_work_sync(&data->get_values_poll_work); in rpi_hwmon_suspend()
144 get_values_poll(&data->get_values_poll_work.work); in rpi_hwmon_resume()
155 .name = "raspberrypi-hwmon",
156 .pm = pm_ptr(&rpi_hwmon_pm_ops),
164 MODULE_ALIAS("platform:raspberrypi-hwmon");