• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <boardid.h>
4 #include <ec/acpi/ec.h>
5 #include <ec/google/chromeec/ec.h>
6 #include <types.h>
7 #include "board_id.h"
8 
get_board_id_via_ext_ec(void)9 static uint32_t get_board_id_via_ext_ec(void)
10 {
11 	uint32_t id = BOARD_ID_INIT;
12 
13 	if (google_chromeec_get_board_version(&id))
14 		id = BOARD_ID_UNKNOWN;
15 
16 	return id;
17 }
18 
19 /* Get Board ID via EC I/O port write/read */
get_board_id(void)20 int get_board_id(void)
21 {
22 	static int id = -1;
23 
24 	if (id < 0) {
25 		if (CONFIG(EC_GOOGLE_CHROMEEC)) {
26 			id = get_board_id_via_ext_ec();
27 		} else {
28 			if (send_ec_command(EC_FAB_ID_CMD) == 0) {
29 				id = recv_ec_data() << 8;
30 				id |= recv_ec_data();
31 			}
32 		}
33 	}
34 	return (id & BOARD_ID_MASK);
35 }
36