@@ -191,6 +191,7 @@ struct host_sub_npcx_data host_sub_data;
191
191
#define NPCX_C2H_TRANSACTION_TIMEOUT_US 200
192
192
193
193
/* Logical Device Number Assignments */
194
+ #define EC_CFG_LDN_SP 0x03
194
195
#define EC_CFG_LDN_MOUSE 0x05
195
196
#define EC_CFG_LDN_KBC 0x06
196
197
#define EC_CFG_LDN_SHM 0x0F
@@ -205,6 +206,13 @@ struct host_sub_npcx_data host_sub_data;
205
206
#define EC_CFG_IDX_DATA_IO_ADDR_H 0x62
206
207
#define EC_CFG_IDX_DATA_IO_ADDR_L 0x63
207
208
209
+ /* LDN Activation Enable */
210
+ #define EC_CFG_IDX_CTRL_LDN_ENABLE 0x01
211
+
212
+ /* Index of SuperI/O Control and Configuration Registers */
213
+ #define EC_CFG_IDX_SUPERIO_SIOCF9 0x29
214
+ #define EC_CFG_IDX_SUPERIO_SIOCF9_CKEN 2
215
+
208
216
/* Index of Special Logical Device Configuration (Shared Memory Module) */
209
217
#define EC_CFG_IDX_SHM_CFG 0xF1
210
218
#define EC_CFG_IDX_SHM_WND1_ADDR_0 0xF4
@@ -217,6 +225,11 @@ struct host_sub_npcx_data host_sub_data;
217
225
#define EC_CFG_IDX_SHM_WND2_ADDR_3 0xFB
218
226
#define EC_CFG_IDX_SHM_DP80_ADDR_RANGE 0xFD
219
227
228
+ /* Index of Special Logical Device Configuration (Serial Port/Host UART) */
229
+ #define EC_CFG_IDX_SP_CFG 0xF0
230
+ /* Enable selection of bank 2 and 3 for the Serial Port */
231
+ #define EC_CFG_IDX_SP_CFG_BK_SL_ENABLE 7
232
+
220
233
/* Host sub-device local inline functions */
221
234
static inline uint8_t host_shd_mem_wnd_size_sl (uint32_t size )
222
235
{
@@ -995,10 +1008,10 @@ void npcx_host_init_subs_host_domain(void)
995
1008
* modules by setting bit 0 in its Control (index is 0x30) reg.
996
1009
*/
997
1010
host_c2h_write_io_cfg_reg (EC_CFG_IDX_LDN , EC_CFG_LDN_KBC );
998
- host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , 0x01 );
1011
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , EC_CFG_IDX_CTRL_LDN_ENABLE );
999
1012
1000
1013
host_c2h_write_io_cfg_reg (EC_CFG_IDX_LDN , EC_CFG_LDN_MOUSE );
1001
- host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , 0x01 );
1014
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , EC_CFG_IDX_CTRL_LDN_ENABLE );
1002
1015
}
1003
1016
1004
1017
if (IS_ENABLED (CONFIG_ESPI_PERIPHERAL_HOST_IO )) {
@@ -1007,7 +1020,7 @@ void npcx_host_init_subs_host_domain(void)
1007
1020
* module by setting bit 0 in its Control (index is 0x30) reg.
1008
1021
*/
1009
1022
host_c2h_write_io_cfg_reg (EC_CFG_IDX_LDN , EC_CFG_LDN_ACPI );
1010
- host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , 0x01 );
1023
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , EC_CFG_IDX_CTRL_LDN_ENABLE );
1011
1024
}
1012
1025
1013
1026
if (IS_ENABLED (CONFIG_ESPI_PERIPHERAL_EC_HOST_CMD ) ||
@@ -1028,7 +1041,7 @@ void npcx_host_init_subs_host_domain(void)
1028
1041
(CONFIG_ESPI_PERIPHERAL_HOST_CMD_DATA_PORT_NUM + 4 ) & 0xff );
1029
1042
#endif
1030
1043
/* Enable 'Host Command' io port (PM Channel 2) */
1031
- host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , 0x01 );
1044
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , EC_CFG_IDX_CTRL_LDN_ENABLE );
1032
1045
1033
1046
/* Select 'Shared Memory' bank which LDN are 0x0F */
1034
1047
host_c2h_write_io_cfg_reg (EC_CFG_IDX_LDN , EC_CFG_LDN_SHM );
@@ -1053,8 +1066,23 @@ void npcx_host_init_subs_host_domain(void)
1053
1066
host_c2h_write_io_cfg_reg (EC_CFG_IDX_SHM_DP80_ADDR_RANGE , 0x0f );
1054
1067
}
1055
1068
/* Enable SHM direct memory access */
1056
- host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , 0x01 );
1069
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , EC_CFG_IDX_CTRL_LDN_ENABLE );
1057
1070
}
1071
+
1072
+ if (IS_ENABLED (CONFIG_ESPI_PERIPHERAL_UART )) {
1073
+ /* Select Serial Port banks which LDN are 0x03. */
1074
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_LDN , EC_CFG_LDN_SP );
1075
+ /* Enable SIO_CLK */
1076
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_SUPERIO_SIOCF9 ,
1077
+ host_c2h_read_io_cfg_reg (EC_CFG_IDX_SUPERIO_SIOCF9 ) |
1078
+ BIT (EC_CFG_IDX_SUPERIO_SIOCF9_CKEN ));
1079
+ /* Enable Bank Select */
1080
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_SP_CFG ,
1081
+ host_c2h_read_io_cfg_reg (EC_CFG_IDX_SP_CFG ) |
1082
+ BIT (EC_CFG_IDX_SP_CFG_BK_SL_ENABLE ));
1083
+ host_c2h_write_io_cfg_reg (EC_CFG_IDX_CTRL , EC_CFG_IDX_CTRL_LDN_ENABLE );
1084
+ }
1085
+
1058
1086
LOG_DBG ("Hos sub-modules configurations are done!" );
1059
1087
}
1060
1088
0 commit comments