Lines Matching full:spi
3 * Driver for ST M41T93 SPI RTC
17 #include <linux/spi/spi.h>
37 static inline int m41t93_set_reg(struct spi_device *spi, u8 addr, u8 data) in m41t93_set_reg() argument
45 return spi_write(spi, buf, sizeof(buf)); in m41t93_set_reg()
50 struct spi_device *spi = to_spi_device(dev); in m41t93_set_time() local
61 dev_warn(&spi->dev, "unsupported date (before 2000-01-01).\n"); in m41t93_set_time()
75 return spi_write(spi, buf, sizeof(buf)); in m41t93_set_time()
81 struct spi_device *spi = to_spi_device(dev); in m41t93_get_time() local
97 tmp = spi_w8r8(spi, M41T93_REG_ALM_HOUR_HT); in m41t93_get_time()
102 dev_dbg(&spi->dev, "HT bit is set, reenable clock update.\n"); in m41t93_get_time()
103 m41t93_set_reg(spi, M41T93_REG_ALM_HOUR_HT, in m41t93_get_time()
107 tmp = spi_w8r8(spi, M41T93_REG_FLAGS); in m41t93_get_time()
113 dev_warn(&spi->dev, "OF bit is set, resetting.\n"); in m41t93_get_time()
114 m41t93_set_reg(spi, M41T93_REG_FLAGS, tmp & ~M41T93_FLAG_OF); in m41t93_get_time()
116 tmp = spi_w8r8(spi, M41T93_REG_FLAGS); in m41t93_get_time()
122 dev_warn(&spi->dev, in m41t93_get_time()
124 m41t93_set_reg(spi, M41T93_REG_ST_SEC, reset_osc); in m41t93_get_time()
126 m41t93_set_reg(spi, M41T93_REG_ST_SEC, reset_osc); in m41t93_get_time()
131 dev_warn(&spi->dev, "BL bit is set, replace battery.\n"); in m41t93_get_time()
134 tmp = spi_write_then_read(spi, &start_addr, 1, buf, sizeof(buf)); in m41t93_get_time()
165 static int __devinit m41t93_probe(struct spi_device *spi) in m41t93_probe() argument
170 spi->bits_per_word = 8; in m41t93_probe()
171 spi_setup(spi); in m41t93_probe()
173 res = spi_w8r8(spi, M41T93_REG_WDAY); in m41t93_probe()
175 dev_err(&spi->dev, "not found 0x%x.\n", res); in m41t93_probe()
180 &spi->dev, &m41t93_rtc_ops, THIS_MODULE); in m41t93_probe()
184 dev_set_drvdata(&spi->dev, rtc); in m41t93_probe()
190 static int __devexit m41t93_remove(struct spi_device *spi) in m41t93_remove() argument
192 struct rtc_device *rtc = spi_get_drvdata(spi); in m41t93_remove()
222 MODULE_DESCRIPTION("Driver for ST M41T93 SPI RTC");
224 MODULE_ALIAS("spi:rtc-m41t93");