blob: de7a3804d9c0f89a2237e9fb2d1c0ffd7f715760 [file] [log] [blame]
Subrata Banik16e41062020-10-06 20:13:06 +05301/* 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>
Subrata Banik16e41062020-10-06 20:13:06 +05306#include <types.h>
7#include "board_id.h"
8
9static 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 */
20int get_board_id(void)
21{
22 MAYBE_STATIC_NONZERO 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}