Commit 4392ec1a authored by Alexandre Belloni's avatar Alexandre Belloni
Browse files

Merge tag 'ib-mfd-rtc-v4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into rtc-next



Immutable branch between MFD and RTC due for the v4.20 merge window

Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parents 749e36d0 9612f8f5
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1094,6 +1094,7 @@ static void menelaus_rtc_alarm_work(struct menelaus_chip *m)
static inline void menelaus_rtc_init(struct menelaus_chip *m)
{
	int	alarm = (m->client->irq > 0);
	int	err;

	/* assume 32KDETEN pin is pulled high */
	if (!(menelaus_read_reg(MENELAUS_OSC_CTRL) & 0x80)) {
@@ -1101,6 +1102,12 @@ static inline void menelaus_rtc_init(struct menelaus_chip *m)
		return;
	}

	m->rtc = devm_rtc_allocate_device(&m->client->dev);
	if (IS_ERR(m->rtc))
		return;

	m->rtc->ops = &menelaus_rtc_ops;

	/* support RTC alarm; it can issue wakeups */
	if (alarm) {
		if (menelaus_add_irq_work(MENELAUS_RTCALM_IRQ,
@@ -1125,10 +1132,8 @@ static inline void menelaus_rtc_init(struct menelaus_chip *m)
		menelaus_write_reg(MENELAUS_RTC_CTRL, m->rtc_control);
	}

	m->rtc = rtc_device_register(DRIVER_NAME,
			&m->client->dev,
			&menelaus_rtc_ops, THIS_MODULE);
	if (IS_ERR(m->rtc)) {
	err = rtc_register_device(m->rtc);
	if (err) {
		if (alarm) {
			menelaus_remove_irq_work(MENELAUS_RTCALM_IRQ);
			device_init_wakeup(&m->client->dev, 0);