/* SPDX-License-Identifier: GPL-2.0 */

#ifndef _PANEL_SAMSUNG_S6E63M0_H
#define _PANEL_SAMSUNG_S6E63M0_H

/* Manufacturer Command Set */
#define MCS_ELVSS_ON		0xb1
#define MCS_TEMP_SWIRE		0xb2
#define MCS_PENTILE_1		0xb3
#define MCS_PENTILE_2		0xb4
#define MCS_GAMMA_DELTA_Y_RED	0xb5
#define MCS_GAMMA_DELTA_X_RED	0xb6
#define MCS_GAMMA_DELTA_Y_GREEN	0xb7
#define MCS_GAMMA_DELTA_X_GREEN	0xb8
#define MCS_GAMMA_DELTA_Y_BLUE	0xb9
#define MCS_GAMMA_DELTA_X_BLUE	0xba
#define MCS_MIECTL1		0xc0
#define MCS_BCMODE		0xc1
#define MCS_ERROR_CHECK		0xd5
#define MCS_READ_ID1		0xda
#define MCS_READ_ID2		0xdb
#define MCS_READ_ID3		0xdc
#define MCS_LEVEL_2_KEY		0xf0
#define MCS_MTP_KEY		0xf1
#define MCS_DISCTL		0xf2
#define MCS_SRCCTL		0xf6
#define MCS_IFCTL		0xf7
#define MCS_PANELCTL		0xf8
#define MCS_PGAMMACTL		0xfa

int s6e63m0_probe(struct device *dev, void *trsp,
		  int (*dcs_read)(struct device *dev, void *trsp,
				  const u8 cmd, u8 *val),
		  int (*dcs_write)(struct device *dev, void *trsp,
				   const u8 *data,
				   size_t len),
		  bool dsi_mode);
void s6e63m0_remove(struct device *dev);

#endif /* _PANEL_SAMSUNG_S6E63M0_H */