Lines Matching +full:vrs +full:- +full:10
1 // SPDX-License-Identifier: GPL-2.0-only
5 * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
96 ret = i2c_smbus_read_byte_data(info->client, reg); in nvvrs_update_bits()
104 return i2c_smbus_write_byte_data(info->client, reg, val); in nvvrs_update_bits()
147 struct i2c_client *client = info->client; in nvvrs_rtc_disable_alarm()
184 * Multi-byte transfers are not supported with PEC enabled in nvvrs_rtc_read_time()
187 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_T3); in nvvrs_rtc_read_time()
194 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_T2); in nvvrs_rtc_read_time()
201 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_T1); in nvvrs_rtc_read_time()
208 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_T0); in nvvrs_rtc_read_time()
233 ret = i2c_smbus_write_byte_data(info->client, NVVRS_REG_RTC_T3, time[3]); in nvvrs_rtc_set_time()
237 ret = i2c_smbus_write_byte_data(info->client, NVVRS_REG_RTC_T2, time[2]); in nvvrs_rtc_set_time()
241 ret = i2c_smbus_write_byte_data(info->client, NVVRS_REG_RTC_T1, time[1]); in nvvrs_rtc_set_time()
245 ret = i2c_smbus_write_byte_data(info->client, NVVRS_REG_RTC_T0, time[0]); in nvvrs_rtc_set_time()
257 /* Multi-byte transfers are not supported with PEC enabled */ in nvvrs_rtc_read_alarm()
258 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_A3); in nvvrs_rtc_read_alarm()
265 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_A2); in nvvrs_rtc_read_alarm()
272 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_A1); in nvvrs_rtc_read_alarm()
279 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_RTC_A0); in nvvrs_rtc_read_alarm()
287 alrm->enabled = 0; in nvvrs_rtc_read_alarm()
289 alrm->enabled = 1; in nvvrs_rtc_read_alarm()
291 rtc_time64_to_tm(alarm_val, &alrm->time); in nvvrs_rtc_read_alarm()
303 if (!alrm->enabled) { in nvvrs_rtc_set_alarm()
313 secs = rtc_tm_to_time64(&alrm->time); in nvvrs_rtc_set_alarm()
319 ret = nvvrs_rtc_write_alarm(info->client, time); in nvvrs_rtc_set_alarm()
330 ret = i2c_smbus_read_byte_data(info->client, in nvvrs_pseq_irq_clear()
333 dev_err(info->dev, "Failed to read INT_SRC%d : %d\n", in nvvrs_pseq_irq_clear()
338 ret = i2c_smbus_write_byte_data(info->client, in nvvrs_pseq_irq_clear()
342 dev_err(info->dev, "Failed to clear INT_SRC%d : %d\n", in nvvrs_pseq_irq_clear()
357 ret = i2c_smbus_read_byte_data(info->client, NVVRS_REG_INT_SRC1); in nvvrs_rtc_irq_handler()
362 rtc_lock(info->rtc); in nvvrs_rtc_irq_handler()
363 rtc_update_irq(info->rtc, 1, RTC_IRQF | RTC_AF); in nvvrs_rtc_irq_handler()
364 rtc_unlock(info->rtc); in nvvrs_rtc_irq_handler()
394 struct i2c_client *client = info->client; in nvvrs_pseq_vendor_info()
400 return dev_err_probe(&client->dev, ret, in nvvrs_pseq_vendor_info()
407 return dev_err_probe(&client->dev, ret, in nvvrs_pseq_vendor_info()
413 return dev_err_probe(&client->dev, -ENODEV, in nvvrs_pseq_vendor_info()
418 dev_dbg(&client->dev, "NVVRS Vendor ID: 0x%02x, Model Rev: 0x%02x\n", in nvvrs_pseq_vendor_info()
429 info = devm_kzalloc(&client->dev, sizeof(*info), GFP_KERNEL); in nvvrs_rtc_probe()
431 return -ENOMEM; in nvvrs_rtc_probe()
433 if (client->irq <= 0) in nvvrs_rtc_probe()
434 return dev_err_probe(&client->dev, -EINVAL, "No IRQ specified\n"); in nvvrs_rtc_probe()
436 info->irq = client->irq; in nvvrs_rtc_probe()
437 info->dev = &client->dev; in nvvrs_rtc_probe()
438 client->flags |= I2C_CLIENT_PEC; in nvvrs_rtc_probe()
440 info->client = client; in nvvrs_rtc_probe()
444 return dev_err_probe(&client->dev, -EINVAL, in nvvrs_rtc_probe()
449 return dev_err_probe(&client->dev, -EINVAL, in nvvrs_rtc_probe()
453 info->rtc = devm_rtc_allocate_device(info->dev); in nvvrs_rtc_probe()
454 if (IS_ERR(info->rtc)) in nvvrs_rtc_probe()
455 return PTR_ERR(info->rtc); in nvvrs_rtc_probe()
457 info->rtc->ops = &nvvrs_rtc_ops; in nvvrs_rtc_probe()
458 info->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; in nvvrs_rtc_probe()
459 info->rtc->range_max = RTC_TIMESTAMP_END_2099; in nvvrs_rtc_probe()
462 ret = devm_request_threaded_irq(info->dev, info->irq, NULL, in nvvrs_rtc_probe()
464 "nvvrs-rtc", info); in nvvrs_rtc_probe()
466 dev_err_probe(info->dev, ret, "Failed to request RTC IRQ\n"); in nvvrs_rtc_probe()
471 devm_device_init_wakeup(info->dev); in nvvrs_rtc_probe()
473 return devm_rtc_register_device(info->rtc); in nvvrs_rtc_probe()
488 dev_err(info->dev, "Failed to set RTC_WAKE bit (%d)\n", in nvvrs_rtc_suspend()
493 return enable_irq_wake(info->irq); in nvvrs_rtc_suspend()
509 dev_err(info->dev, "Failed to clear FORCE_ACT bit (%d)\n", in nvvrs_rtc_resume()
514 return disable_irq_wake(info->irq); in nvvrs_rtc_resume()
524 { .compatible = "nvidia,vrs-10" },
531 .name = "rtc-nvidia-vrs10",