• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef MAINBOARD_SPD_H
4 
5 #include <fsp/soc_binding.h>
6 #include <gpio.h>
7 #include "../gpio.h"
8 
9 #define MAINBOARD_SPD_H
10 
11 #define HYNIX_SINGLE_CHAN	0x1
12 #define SAMSUNG_SINGLE_CHAN	0x4
13 #define MIC_SINGLE_CHAN		0x5
14 
15 /* PCH_MEM_CFG[3:0] */
16 #define MAX_MEMORY_CONFIG	0x10
17 #define K4E6E304EE_MEM_ID	0x3
18 
get_spd_index(void)19 static inline int get_spd_index(void) {
20 	/* PCH_MEM_CFG[3:0] */
21 	gpio_t spd_gpios[] = {
22 		GPIO_MEM_CONFIG_0,
23 		GPIO_MEM_CONFIG_1,
24 		GPIO_MEM_CONFIG_2,
25 		GPIO_MEM_CONFIG_3,
26 	};
27 	return (gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios)));
28 }
29 void mainboard_fill_dq_map_data(void *dq_map_ch0, void *dq_map_ch1);
30 void mainboard_fill_dqs_map_data(void *dqs_map_ch0, void *dqs_map_ch1);
31 void mainboard_fill_rcomp_res_data(void *rcomp_ptr);
32 void mainboard_fill_rcomp_strength_data(void *rcomp_strength_ptr);
33 uintptr_t mainboard_get_spd_data(void);
34 int mainboard_has_dual_channel_mem(void);
35 #endif
36