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