Lines Matching refs:dev

60 static int mcp795_rtcc_read(struct device *dev, u8 addr, u8 *buf, u8 count)
62 struct spi_device *spi = to_spi_device(dev);
71 dev_err(dev, "Failed reading %d bytes from address %x.\n",
77 static int mcp795_rtcc_write(struct device *dev, u8 addr, u8 *data, u8 count)
79 struct spi_device *spi = to_spi_device(dev);
90 dev_err(dev, "Failed to write %d bytes to address %x.\n",
96 static int mcp795_rtcc_set_bits(struct device *dev, u8 addr, u8 mask, u8 state)
101 ret = mcp795_rtcc_read(dev, addr, &tmp, 1);
107 ret = mcp795_rtcc_write(dev, addr, &tmp, 1);
113 static int mcp795_stop_oscillator(struct device *dev, bool *extosc)
119 ret = mcp795_rtcc_set_bits(dev, MCP795_REG_SECONDS, MCP795_ST_BIT, 0);
122 ret = mcp795_rtcc_read(dev, MCP795_REG_CONTROL, &data, 1);
127 dev, MCP795_REG_CONTROL, MCP795_EXTOSC_BIT, 0);
133 ret = mcp795_rtcc_read(dev, MCP795_REG_DAY, &data, 1);
144 static int mcp795_start_oscillator(struct device *dev, bool *extosc)
151 dev, MCP795_REG_CONTROL, MCP795_EXTOSC_BIT, data);
156 dev, MCP795_REG_SECONDS, MCP795_ST_BIT, MCP795_ST_BIT);
160 static int mcp795_update_alarm(struct device *dev, bool enable)
164 dev_dbg(dev, "%s alarm\n", enable ? "Enable" : "Disable");
168 ret = mcp795_rtcc_set_bits(dev, MCP795_REG_ALM0_DAY,
173 ret = mcp795_rtcc_set_bits(dev, MCP795_REG_CONTROL,
177 ret = mcp795_rtcc_set_bits(dev, MCP795_REG_CONTROL,
183 static int mcp795_set_time(struct device *dev, struct rtc_time *tim)
190 ret = mcp795_stop_oscillator(dev, &extosc);
195 ret = mcp795_rtcc_read(dev, MCP795_REG_SECONDS, data, sizeof(data));
216 ret = mcp795_rtcc_write(dev, MCP795_REG_SECONDS, data, 5);
220 ret = mcp795_rtcc_write(dev, MCP795_REG_MONTH, &data[5], 2);
228 ret = mcp795_start_oscillator(dev, extosc ? &extosc : NULL);
232 dev_dbg(dev, "Set mcp795: %ptR\n", tim);
237 static int mcp795_read_time(struct device *dev, struct rtc_time *tim)
242 ret = mcp795_rtcc_read(dev, MCP795_REG_SECONDS, data, sizeof(data));
255 dev_dbg(dev, "Read from mcp795: %ptR\n", tim);
260 static int mcp795_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
269 ret = mcp795_read_time(dev, &now_tm);
282 ret = mcp795_update_alarm(dev, false);
286 ret = mcp795_rtcc_read(dev, MCP795_REG_ALM0_SECONDS, tmp, sizeof(tmp));
303 ret = mcp795_rtcc_write(dev, MCP795_REG_ALM0_SECONDS, tmp, sizeof(tmp));
309 ret = mcp795_update_alarm(dev, true);
312 dev_dbg(dev, "Alarm IRQ armed\n");
314 dev_dbg(dev, "Set alarm: %ptRdr(%d) %ptRt\n",
319 static int mcp795_read_alarm(struct device *dev, struct rtc_wkalrm *alm)
325 dev, MCP795_REG_ALM0_SECONDS, data, sizeof(data));
339 dev_dbg(dev, "Read alarm: %ptRdr(%d) %ptRt\n",
344 static int mcp795_alarm_irq_enable(struct device *dev, unsigned int enabled)
346 return mcp795_update_alarm(dev, !!enabled);
362 ret = mcp795_update_alarm(&spi->dev, false);
364 dev_err(&spi->dev,
390 dev_err(&spi->dev, "Unable to setup SPI\n");
395 mcp795_start_oscillator(&spi->dev, NULL);
397 mcp795_rtcc_set_bits(&spi->dev, 0x03, MCP795_24_BIT, 0);
399 rtc = devm_rtc_device_register(&spi->dev, "rtc-mcp795",
407 dev_dbg(&spi->dev, "Alarm support enabled\n");
412 mcp795_rtcc_set_bits(&spi->dev, MCP795_REG_ALM0_DAY,
414 ret = devm_request_threaded_irq(&spi->dev, spi->irq, NULL,
416 dev_name(&rtc->dev), spi);
418 dev_err(&spi->dev, "Failed to request IRQ: %d: %d\n",
421 device_init_wakeup(&spi->dev, true);