/* SPDX-License-Identifier: GPL-2.0+ */ /* * Simulate an I2C real time clock * * Copyright (c) 2015 Google, Inc * Written by Simon Glass */ #ifndef __asm_rtc_h #define __asm_rtc_h #include /* Register numbers in the sandbox RTC */ enum { REG_SEC = 5, REG_MIN, REG_HOUR, REG_MDAY, REG_MON, REG_YEAR, REG_WDAY, REG_RESET = 0x20, REG_AUX0 = 0x30, REG_AUX1, REG_AUX2, REG_AUX3, REG_COUNT = 0x80, }; /** * struct sandbox_i2c_rtc_plat_data - platform data for the RTC * * @base_time: Base system time when RTC device was bound * @offset: RTC offset from current system time * @use_system_time: true to use system time, false to use @base_time * @reg: Register values */ struct sandbox_i2c_rtc_plat_data { #if CONFIG_IS_ENABLED(OF_PLATDATA) && IS_ENABLED(CONFIG_RTC_SANDBOX) struct dtd_sandbox_i2c_rtc_emul dtplat; #endif long base_time; long offset; bool use_system_time; u8 reg[REG_COUNT]; }; struct sandbox_i2c_rtc { unsigned int offset_secs; }; #endif