Lines Matching full:isl1208
3 * Intersil ISL1208 rtc class driver
113 { "isl1208", .driver_data = (kernel_ulong_t)&config_isl1208 },
123 { .compatible = "isil,isl1208", .data = &config_isl1208 },
166 /* simple check to see whether we have a isl1208 */
629 struct isl1208_state *isl1208 = i2c_get_clientdata(client); in isl1208_rtc_interrupt() local
632 if (!isl1208->config->has_tamper) { in isl1208_rtc_interrupt()
664 rtc_update_irq(isl1208->rtc, 1, RTC_IRQF | RTC_AF); in isl1208_rtc_interrupt()
683 if (isl1208->config->has_tamper && (sr & ISL1208_REG_SR_EVT)) { in isl1208_rtc_interrupt()
686 if (isl1208->config->has_timestamp) in isl1208_rtc_interrupt()
687 sysfs_notify(&isl1208->rtc->dev.kobj, NULL, in isl1208_rtc_interrupt()
791 struct isl1208_state *isl1208 = priv; in isl1208_nvmem_read() local
792 struct i2c_client *client = to_i2c_client(isl1208->rtc->dev.parent); in isl1208_nvmem_read()
805 struct isl1208_state *isl1208 = priv; in isl1208_nvmem_write() local
806 struct i2c_client *client = to_i2c_client(isl1208->rtc->dev.parent); in isl1208_nvmem_write()
858 struct isl1208_state *isl1208; in isl1208_probe() local
871 isl1208 = devm_kzalloc(&client->dev, sizeof(*isl1208), GFP_KERNEL); in isl1208_probe()
872 if (!isl1208) in isl1208_probe()
874 i2c_set_clientdata(client, isl1208); in isl1208_probe()
877 isl1208->config = i2c_get_match_data(client); in isl1208_probe()
878 if (!isl1208->config) in isl1208_probe()
894 isl1208->rtc = devm_rtc_allocate_device(&client->dev); in isl1208_probe()
895 if (IS_ERR(isl1208->rtc)) in isl1208_probe()
896 return PTR_ERR(isl1208->rtc); in isl1208_probe()
898 isl1208->rtc->ops = &isl1208_rtc_ops; in isl1208_probe()
901 isl1208->nvmem_config = isl1208_nvmem_config; in isl1208_probe()
902 isl1208->nvmem_config.size = isl1208->config->nvmem_length; in isl1208_probe()
903 isl1208->nvmem_config.priv = isl1208; in isl1208_probe()
911 if (isl1208->config->has_inverted_osc_bit) in isl1208_probe()
922 if (isl1208->config->has_tamper) { in isl1208_probe()
945 if (isl1208->config->has_timestamp) { in isl1208_probe()
946 rc = rtc_add_group(isl1208->rtc, &isl1219_rtc_sysfs_files); in isl1208_probe()
951 rc = rtc_add_group(isl1208->rtc, &isl1208_rtc_sysfs_files); in isl1208_probe()
960 clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, isl1208->rtc->features); in isl1208_probe()
968 rc = devm_rtc_nvmem_register(isl1208->rtc, &isl1208->nvmem_config); in isl1208_probe()
972 return devm_rtc_register_device(isl1208->rtc); in isl1208_probe()
977 .name = "rtc-isl1208",
987 MODULE_DESCRIPTION("Intersil ISL1208 RTC driver");