1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3 * Copyright 2019 NXP
4 */
5
6 #ifndef __MODULE_FUSE_H__
7 #define __MODULE_FUSE_H__
8
9 enum fuse_module_type {
10 MODULE_TSC,
11 MODULE_ADC1,
12 MODULE_ADC2,
13 MODULE_SIM1,
14 MODULE_SIM2,
15 MODULE_FLEXCAN1,
16 MODULE_FLEXCAN2,
17 MODULE_SPDIF,
18 MODULE_EIM,
19 MODULE_SD1,
20 MODULE_SD2,
21 MODULE_SD3,
22 MODULE_SD4,
23 MODULE_QSPI1,
24 MODULE_QSPI2,
25 MODULE_GPMI,
26 MODULE_APBHDMA,
27 MODULE_LCDIF,
28 MODULE_PXP,
29 MODULE_CSI,
30 MODULE_ENET1,
31 MODULE_ENET2,
32 MODULE_CAAM,
33 MODULE_USB_OTG1,
34 MODULE_USB_OTG2,
35 MODULE_SAI2,
36 MODULE_SAI3,
37 MODULE_BEE,
38 MODULE_UART1,
39 MODULE_UART2,
40 MODULE_UART3,
41 MODULE_UART4,
42 MODULE_UART5,
43 MODULE_UART6,
44 MODULE_UART7,
45 MODULE_UART8,
46 MODULE_PWM5,
47 MODULE_PWM6,
48 MODULE_PWM7,
49 MODULE_PWM8,
50 MODULE_ECSPI1,
51 MODULE_ECSPI2,
52 MODULE_ECSPI3,
53 MODULE_ECSPI4,
54 MODULE_ECSPI5,
55 MODULE_I2C1,
56 MODULE_I2C2,
57 MODULE_I2C3,
58 MODULE_I2C4,
59 MODULE_GPT1,
60 MODULE_GPT2,
61 MODULE_EPIT1,
62 MODULE_EPIT2,
63 MODULE_EPDC,
64 MODULE_ESAI,
65 MODULE_DCP,
66 MODULE_DCP_CRYPTO,
67 };
68
69 struct fuse_entry_desc {
70 enum fuse_module_type module;
71 const char *node_path;
72 u32 fuse_word_offset;
73 u32 fuse_bit_offset;
74 u32 status;
75 };
76
77 #if !CONFIG_IS_ENABLED(IMX_MODULE_FUSE)
check_module_fused(enum fuse_module_type module)78 static inline u32 check_module_fused(enum fuse_module_type module)
79 {
80 return 0;
81 };
82
esdhc_fused(ulong base_addr)83 static inline u32 esdhc_fused(ulong base_addr)
84 {
85 return 0;
86 };
87
ecspi_fused(ulong base_addr)88 static inline u32 ecspi_fused(ulong base_addr)
89 {
90 return 0;
91 };
92
uart_fused(ulong base_addr)93 static inline u32 uart_fused(ulong base_addr)
94 {
95 return 0;
96 };
97
usb_fused(ulong base_addr)98 static inline u32 usb_fused(ulong base_addr)
99 {
100 return 0;
101 };
102
qspi_fused(ulong base_addr)103 static inline u32 qspi_fused(ulong base_addr)
104 {
105 return 0;
106 };
107
i2c_fused(ulong base_addr)108 static inline u32 i2c_fused(ulong base_addr)
109 {
110 return 0;
111 };
112
enet_fused(ulong base_addr)113 static inline u32 enet_fused(ulong base_addr)
114 {
115 return 0;
116 };
117 #else
118 u32 check_module_fused(enum fuse_module_type module);
119 u32 esdhc_fused(ulong base_addr);
120 u32 ecspi_fused(ulong base_addr);
121 u32 uart_fused(ulong base_addr);
122 u32 usb_fused(ulong base_addr);
123 u32 qspi_fused(ulong base_addr);
124 u32 i2c_fused(ulong base_addr);
125 u32 enet_fused(ulong base_addr);
126 #endif
127 #endif /* __MODULE_FUSE_H__ */
128