18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * STK1135 registers 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (c) 2013 Ondrej Zary 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#define STK1135_REG_GCTRL 0x000 /* GPIO control */ 98c2ecf20Sopenharmony_ci#define STK1135_REG_ICTRL 0x004 /* Interrupt control */ 108c2ecf20Sopenharmony_ci#define STK1135_REG_IDATA 0x008 /* Interrupt data */ 118c2ecf20Sopenharmony_ci#define STK1135_REG_RMCTL 0x00c /* Remote wakeup control */ 128c2ecf20Sopenharmony_ci#define STK1135_REG_POSVA 0x010 /* Power-on strapping data */ 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#define STK1135_REG_SENSO 0x018 /* Sensor select options */ 158c2ecf20Sopenharmony_ci#define STK1135_REG_PLLFD 0x01c /* PLL frequency divider */ 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define STK1135_REG_SCTRL 0x100 /* Sensor control register */ 188c2ecf20Sopenharmony_ci#define STK1135_REG_DCTRL 0x104 /* Decimation control register */ 198c2ecf20Sopenharmony_ci#define STK1135_REG_CISPO 0x110 /* Capture image starting position */ 208c2ecf20Sopenharmony_ci#define STK1135_REG_CIEPO 0x114 /* Capture image ending position */ 218c2ecf20Sopenharmony_ci#define STK1135_REG_TCTRL 0x120 /* Test data control */ 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#define STK1135_REG_SICTL 0x200 /* Serial interface control register */ 248c2ecf20Sopenharmony_ci#define STK1135_REG_SBUSW 0x204 /* Serial bus write */ 258c2ecf20Sopenharmony_ci#define STK1135_REG_SBUSR 0x208 /* Serial bus read */ 268c2ecf20Sopenharmony_ci#define STK1135_REG_SCSI 0x20c /* Software control serial interface */ 278c2ecf20Sopenharmony_ci#define STK1135_REG_GSBWP 0x210 /* General serial bus write port */ 288c2ecf20Sopenharmony_ci#define STK1135_REG_GSBRP 0x214 /* General serial bus read port */ 298c2ecf20Sopenharmony_ci#define STK1135_REG_ASIC 0x2fc /* Alternate serial interface control */ 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci#define STK1135_REG_TMGEN 0x300 /* Timing generator */ 328c2ecf20Sopenharmony_ci#define STK1135_REG_TCP1 0x350 /* Timing control parameter 1 */ 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_cistruct stk1135_pkt_header { 358c2ecf20Sopenharmony_ci u8 flags; 368c2ecf20Sopenharmony_ci u8 seq; 378c2ecf20Sopenharmony_ci __le16 gpio; 388c2ecf20Sopenharmony_ci} __packed; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci#define STK1135_HDR_FRAME_START (1 << 7) 418c2ecf20Sopenharmony_ci#define STK1135_HDR_ODD (1 << 6) 428c2ecf20Sopenharmony_ci#define STK1135_HDR_I2C_VBLANK (1 << 5) 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci#define STK1135_HDR_SEQ_MASK 0x3f 45