Commit 5f44abd0 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'rtc-4.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux

Pull RTC fixes from Alexandre Belloni:
 "A few fixes for the RTC subsystem.  The documentation fix already
  missed 4.5 so I think it is worth taking it now:

  A documentation fix for s3c and two fixes for the ds1307"

* tag 'rtc-4.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  rtc: ds1307: Use irq when available for wakeup-source device
  rtc: ds1307: ds3231 temperature s16 overflow
  rtc: s3c: Document in binding that only s3c6410 needs a src clk
parents f78fe081 38a7a73e
...@@ -15,9 +15,10 @@ Required properties: ...@@ -15,9 +15,10 @@ Required properties:
is the rtc tick interrupt. The number of cells representing a interrupt is the rtc tick interrupt. The number of cells representing a interrupt
depends on the parent interrupt controller. depends on the parent interrupt controller.
- clocks: Must contain a list of phandle and clock specifier for the rtc - clocks: Must contain a list of phandle and clock specifier for the rtc
and source clocks. clock and in the case of a s3c6410 compatible controller, also
- clock-names: Must contain "rtc" and "rtc_src" entries sorted in the a source clock.
same order as the clocks property. - clock-names: Must contain "rtc" and for a s3c6410 compatible controller,
a "rtc_src" sorted in the same order as the clocks property.
Example: Example:
......
...@@ -863,7 +863,7 @@ static void ds1307_trickle_of_init(struct i2c_client *client, ...@@ -863,7 +863,7 @@ static void ds1307_trickle_of_init(struct i2c_client *client,
* A user-initiated temperature conversion is not started by this function, * A user-initiated temperature conversion is not started by this function,
* so the temperature is updated once every 64 seconds. * so the temperature is updated once every 64 seconds.
*/ */
static int ds3231_hwmon_read_temp(struct device *dev, s16 *mC) static int ds3231_hwmon_read_temp(struct device *dev, s32 *mC)
{ {
struct ds1307 *ds1307 = dev_get_drvdata(dev); struct ds1307 *ds1307 = dev_get_drvdata(dev);
u8 temp_buf[2]; u8 temp_buf[2];
...@@ -892,7 +892,7 @@ static ssize_t ds3231_hwmon_show_temp(struct device *dev, ...@@ -892,7 +892,7 @@ static ssize_t ds3231_hwmon_show_temp(struct device *dev,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
int ret; int ret;
s16 temp; s32 temp;
ret = ds3231_hwmon_read_temp(dev, &temp); ret = ds3231_hwmon_read_temp(dev, &temp);
if (ret) if (ret)
...@@ -1531,7 +1531,7 @@ static int ds1307_probe(struct i2c_client *client, ...@@ -1531,7 +1531,7 @@ static int ds1307_probe(struct i2c_client *client,
return PTR_ERR(ds1307->rtc); return PTR_ERR(ds1307->rtc);
} }
if (ds1307_can_wakeup_device) { if (ds1307_can_wakeup_device && ds1307->client->irq <= 0) {
/* Disable request for an IRQ */ /* Disable request for an IRQ */
want_irq = false; want_irq = false;
dev_info(&client->dev, "'wakeup-source' is set, request for an IRQ is disabled!\n"); dev_info(&client->dev, "'wakeup-source' is set, request for an IRQ is disabled!\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment