1 /*
2  * Copyright (c) 2024 Erik Andersson <erian747@gmail.com>
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_DRIVERS_DISPLAY_DISPLAY_NT35510_H_
8 #define ZEPHYR_DRIVERS_DISPLAY_DISPLAY_NT35510_H_
9 
10 /**
11  * @name Controller registers
12  * @{
13  */
14 
15 /* NT35510 ID */
16 #define NT35510_ID	0x80U
17 
18 #define  NT35510_CMD_NOP        0x00  /* NOP */
19 #define  NT35510_CMD_SWRESET    0x01  /* SW reset */
20 #define  NT35510_CMD_RDDID      0x04  /* Read display ID */
21 #define  NT35510_CMD_RDNUMED    0x05  /* Read number of errors on DSI */
22 #define  NT35510_CMD_RDDPM      0x0A  /* Read display power mode */
23 #define  NT35510_CMD_RDDMADCTL  0x0B  /* Read display MADCTL */
24 #define  NT35510_CMD_RDDCOLMOD  0x0C  /* Read display pixel format */
25 #define  NT35510_CMD_RDDIM      0x0D  /* Read display image mode */
26 #define  NT35510_CMD_RDDSM      0x0E  /* Read display signal mode */
27 #define  NT35510_CMD_RDDSDR     0x0F  /* Read display self-diagnostics result */
28 #define  NT35510_CMD_SLPIN      0x10  /* Sleep in */
29 #define  NT35510_CMD_SLPOUT     0x11  /* Sleep out */
30 #define  NT35510_CMD_PTLON      0x12  /* Partial mode on  */
31 #define  NT35510_CMD_NORON      0x13  /* Normal display mode on */
32 #define  NT35510_CMD_INVOFF     0x20  /* Display inversion off */
33 #define  NT35510_CMD_INVON      0x21  /* Display inversion on */
34 #define  NT35510_CMD_ALLPOFF    0x22  /* All pixel off */
35 #define  NT35510_CMD_ALLPON     0x23  /* All pixel on */
36 #define  NT35510_CMD_GAMSET     0x26  /* Gamma set */
37 #define  NT35510_CMD_DISPOFF    0x28  /* Display off */
38 #define  NT35510_CMD_DISPON     0x29  /* Display on */
39 #define  NT35510_CMD_CASET      0x2A  /* Column address set */
40 #define  NT35510_CMD_RASET      0x2B  /* Row address set */
41 #define  NT35510_CMD_RAMWR      0x2C  /* Memory write */
42 #define  NT35510_CMD_RAMRD      0x2E  /* Memory read  */
43 #define  NT35510_CMD_PLTAR      0x30  /* Partial area */
44 #define  NT35510_CMD_TOPC       0x32  /* Turn On Peripheral Command */
45 #define  NT35510_CMD_TEOFF      0x34  /* Tearing effect line off */
46 #define  NT35510_CMD_TEEON      0x35  /* Tearing effect line on */
47 #define  NT35510_CMD_MADCTL     0x36  /* Memory data access control */
48 #define  NT35510_CMD_IDMOFF     0x38  /* Idle mode off */
49 #define  NT35510_CMD_IDMON      0x39  /* Idle mode on */
50 #define  NT35510_CMD_COLMOD     0x3A  /* Interface pixel format */
51 #define  NT35510_CMD_RAMWRC     0x3C  /* Memory write continue */
52 #define  NT35510_CMD_RAMRDC     0x3E  /* Memory read continue */
53 #define  NT35510_CMD_STESL      0x44  /* Set tearing effect scan line */
54 #define  NT35510_CMD_GSL        0x45  /* Get scan line */
55 
56 #define  NT35510_CMD_DSTBON     0x4F  /* Deep standby mode on */
57 #define  NT35510_CMD_WRPFD      0x50  /* Write profile value for display */
58 #define  NT35510_CMD_WRDISBV    0x51  /* Write display brightness */
59 #define  NT35510_CMD_RDDISBV    0x52  /* Read display brightness */
60 #define  NT35510_CMD_WRCTRLD    0x53  /* Write CTRL display */
61 #define  NT35510_CMD_RDCTRLD    0x54  /* Read CTRL display value */
62 #define  NT35510_CMD_WRCABC     0x55  /* Write content adaptative brightness control */
63 #define  NT35510_CMD_RDCABC     0x56  /* Read content adaptive brightness control */
64 #define  NT35510_CMD_WRHYSTE    0x57  /* Write hysteresis */
65 #define  NT35510_CMD_WRGAMMSET  0x58  /* Write gamme setting */
66 #define  NT35510_CMD_RDFSVM     0x5A  /* Read FS value MSBs */
67 #define  NT35510_CMD_RDFSVL     0x5B  /* Read FS value LSBs */
68 #define  NT35510_CMD_RDMFFSVM   0x5C  /* Read median filter FS value MSBs */
69 #define  NT35510_CMD_RDMFFSVL   0x5D  /* Read median filter FS value LSBs */
70 #define  NT35510_CMD_WRCABCMB   0x5E  /* Write CABC minimum brightness */
71 #define  NT35510_CMD_RDCABCMB   0x5F  /* Read CABC minimum brightness */
72 #define  NT35510_CMD_WRLSCC     0x65  /* Write light sensor compensation coefficient value */
73 #define  NT35510_CMD_RDLSCCM    0x66  /* Read light sensor compensation coefficient value MSBs */
74 #define  NT35510_CMD_RDLSCCL    0x67  /* Read light sensor compensation coefficient value LSBs */
75 #define  NT35510_CMD_RDBWLB     0x70  /* Read black/white low bits */
76 #define  NT35510_CMD_RDBKX      0x71  /* Read Bkx */
77 #define  NT35510_CMD_RDBKY      0x72  /* Read Bky */
78 #define  NT35510_CMD_RDWX       0x73  /* Read Wx */
79 #define  NT35510_CMD_RDWY       0x74  /* Read Wy */
80 #define  NT35510_CMD_RDRGLB     0x75  /* Read red/green low bits */
81 #define  NT35510_CMD_RDRX       0x76  /* Read Rx */
82 #define  NT35510_CMD_RDRY       0x77  /* Read Ry */
83 #define  NT35510_CMD_RDGX       0x78  /* Read Gx */
84 #define  NT35510_CMD_RDGY       0x79  /* Read Gy */
85 #define  NT35510_CMD_RDBALB     0x7A  /* Read blue/acolor low bits */
86 #define  NT35510_CMD_RDBX       0x7B  /* Read Bx */
87 #define  NT35510_CMD_RDBY       0x7C  /* Read By */
88 #define  NT35510_CMD_RDAX       0x7D  /* Read Ax */
89 #define  NT35510_CMD_RDAY       0x7E  /* Read Ay */
90 #define  NT35510_CMD_RDDDBS     0xA1  /* Read DDB start */
91 #define  NT35510_CMD_RDDDBC     0xA8  /* Read DDB continue */
92 #define  NT35510_CMD_RDDCS      0xAA  /* Read first checksum */
93 #define  NT35510_CMD_RDCCS      0xAF  /* Read continue checksum */
94 #define  NT35510_CMD_RDID1      0xDA  /* Read ID1 value */
95 #define  NT35510_CMD_RDID2      0xDB  /* Read ID2 value */
96 #define  NT35510_CMD_RDID3      0xDC  /* Read ID3 value */
97 
98 /** @} */
99 
100 #endif /* ZEPHYR_DRIVERS_DISPLAY_DISPLAY_NT35510_H_ */
101