1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __LINUX_SPI_DS1305_H 3*4882a593Smuzhiyun #define __LINUX_SPI_DS1305_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun /* 6*4882a593Smuzhiyun * One-time configuration for ds1305 and ds1306 RTC chips. 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Put a pointer to this in spi_board_info.platform_data if you want to 9*4882a593Smuzhiyun * be sure that Linux (re)initializes this as needed ... after losing 10*4882a593Smuzhiyun * backup power, and potentially on the first boot. 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun struct ds1305_platform_data { 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* Trickle charge configuration: it's OK to leave out the MAGIC 15*4882a593Smuzhiyun * bitmask; mask in either DS1 or DS2, and then one of 2K/4k/8K. 16*4882a593Smuzhiyun */ 17*4882a593Smuzhiyun #define DS1305_TRICKLE_MAGIC 0xa0 18*4882a593Smuzhiyun #define DS1305_TRICKLE_DS2 0x08 /* two diodes */ 19*4882a593Smuzhiyun #define DS1305_TRICKLE_DS1 0x04 /* one diode */ 20*4882a593Smuzhiyun #define DS1305_TRICKLE_2K 0x01 /* 2 KOhm resistance */ 21*4882a593Smuzhiyun #define DS1305_TRICKLE_4K 0x02 /* 4 KOhm resistance */ 22*4882a593Smuzhiyun #define DS1305_TRICKLE_8K 0x03 /* 8 KOhm resistance */ 23*4882a593Smuzhiyun u8 trickle; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun /* set only on ds1306 parts */ 26*4882a593Smuzhiyun bool is_ds1306; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* ds1306 only: enable 1 Hz output */ 29*4882a593Smuzhiyun bool en_1hz; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun /* REVISIT: the driver currently expects nINT0 to be wired 32*4882a593Smuzhiyun * as the alarm IRQ. ALM1 may also need to be set up ... 33*4882a593Smuzhiyun */ 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun #endif /* __LINUX_SPI_DS1305_H */ 37