1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2024 PHYTEC Messtechnik GmbH
4  * Author: Primoz Fiser <primoz.fiser@norik.com>
5  */
6 
7 #ifndef _PHYTEC_IMX93_SOM_DETECTION_H
8 #define _PHYTEC_IMX93_SOM_DETECTION_H
9 
10 #include "phytec_som_detection.h"
11 
12 #define PHYTEC_IMX93_SOM	77
13 
14 enum phytec_imx93_option_index {
15 	PHYTEC_IMX93_OPT_DDR = 0,
16 	PHYTEC_IMX93_OPT_EMMC = 1,
17 	PHYTEC_IMX93_OPT_CPU = 2,
18 	PHYTEC_IMX93_OPT_FREQ = 3,
19 	PHYTEC_IMX93_OPT_NPU = 4,
20 	PHYTEC_IMX93_OPT_DISP = 5,
21 	PHYTEC_IMX93_OPT_ETH = 6,
22 	PHYTEC_IMX93_OPT_FEAT = 7,
23 	PHYTEC_IMX93_OPT_TEMP = 8,
24 	PHYTEC_IMX93_OPT_BOOT = 9,
25 	PHYTEC_IMX93_OPT_LED = 10,
26 	PHYTEC_IMX93_OPT_EEPROM = 11,
27 };
28 
29 enum phytec_imx93_voltage {
30 	PHYTEC_IMX93_VOLTAGE_INVALID = PHYTEC_EEPROM_INVAL,
31 	PHYTEC_IMX93_VOLTAGE_3V3 = 0,
32 	PHYTEC_IMX93_VOLTAGE_1V8 = 1,
33 };
34 
35 enum phytec_imx93_ddr_eeprom_code {
36 	PHYTEC_IMX93_DDR_INVALID = PHYTEC_EEPROM_INVAL,
37 	PHYTEC_IMX93_LPDDR4X_512MB = 0,
38 	PHYTEC_IMX93_LPDDR4X_1GB = 1,
39 	PHYTEC_IMX93_LPDDR4X_2GB = 2,
40 	PHYTEC_IMX93_LPDDR4_512MB = 3,
41 	PHYTEC_IMX93_LPDDR4_1GB = 4,
42 	PHYTEC_IMX93_LPDDR4_2GB = 5,
43 };
44 
45 u8 __maybe_unused phytec_imx93_detect(struct phytec_eeprom_data *data);
46 u8 __maybe_unused phytec_imx93_get_opt(struct phytec_eeprom_data *data,
47 				       enum phytec_imx93_option_index idx);
48 enum phytec_imx93_voltage __maybe_unused phytec_imx93_get_voltage
49 	(struct phytec_eeprom_data *data);
50 
51 #endif /* _PHYTEC_IMX93_SOM_DETECTION_H */
52