mb/google/geralt: Add support for getting panel id
According to ID table(go/geralt-id), we add panel_id() to read the panel id from auxadc channel 5. BUG=b:244208960 TEST=emerge-geralt coreboot Change-Id: I2c0f4ee5a642c41dda9594fbaf2c63f2b2ebac6e Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70402 Reviewed-by: Yidi Lin <yidilin@google.com> Reviewed-by: Yu-Ping Wu <yupingso@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
7e11dcb510
commit
c5d0c94868
|
@ -5,6 +5,7 @@
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <ec/google/chromeec/ec.h>
|
#include <ec/google/chromeec/ec.h>
|
||||||
#include <soc/auxadc.h>
|
#include <soc/auxadc.h>
|
||||||
|
#include "panel.h"
|
||||||
|
|
||||||
/* board_id is provided by ec/google/chromeec/ec_boardid.c */
|
/* board_id is provided by ec/google/chromeec/ec_boardid.c */
|
||||||
|
|
||||||
|
@ -16,6 +17,8 @@ enum {
|
||||||
RAM_ID_HIGH_CHANNEL = 3,
|
RAM_ID_HIGH_CHANNEL = 3,
|
||||||
/* SKU ID */
|
/* SKU ID */
|
||||||
SKU_ID_CHANNEL = 4,
|
SKU_ID_CHANNEL = 4,
|
||||||
|
/* PANEL ID */
|
||||||
|
PANEL_ID_CHANNEL = 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const unsigned int ram_voltages[ADC_LEVELS] = {
|
static const unsigned int ram_voltages[ADC_LEVELS] = {
|
||||||
|
@ -34,10 +37,27 @@ static const unsigned int ram_voltages[ADC_LEVELS] = {
|
||||||
[11] = 1342600,
|
[11] = 1342600,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const unsigned int panel_voltages[ADC_LEVELS] = {
|
||||||
|
/* ID : Voltage (unit: uV) */
|
||||||
|
[0] = 0,
|
||||||
|
[1] = 283000,
|
||||||
|
[2] = 394000,
|
||||||
|
[3] = 503000,
|
||||||
|
[4] = 608000,
|
||||||
|
[5] = 712000,
|
||||||
|
[6] = 823000,
|
||||||
|
[7] = 937000,
|
||||||
|
[8] = 1046000,
|
||||||
|
[9] = 1155000,
|
||||||
|
[10] = 1277000,
|
||||||
|
[11] = 1434000,
|
||||||
|
};
|
||||||
|
|
||||||
static const unsigned int *adc_voltages[] = {
|
static const unsigned int *adc_voltages[] = {
|
||||||
[RAM_ID_LOW_CHANNEL] = ram_voltages,
|
[RAM_ID_LOW_CHANNEL] = ram_voltages,
|
||||||
[RAM_ID_HIGH_CHANNEL] = ram_voltages,
|
[RAM_ID_HIGH_CHANNEL] = ram_voltages,
|
||||||
[SKU_ID_CHANNEL] = ram_voltages,
|
[SKU_ID_CHANNEL] = ram_voltages,
|
||||||
|
[PANEL_ID_CHANNEL] = panel_voltages,
|
||||||
};
|
};
|
||||||
|
|
||||||
static uint32_t get_adc_index(unsigned int channel)
|
static uint32_t get_adc_index(unsigned int channel)
|
||||||
|
@ -58,6 +78,17 @@ static uint32_t get_adc_index(unsigned int channel)
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Returns the ID for LCD module (type of panel). */
|
||||||
|
uint32_t panel_id(void)
|
||||||
|
{
|
||||||
|
static uint32_t cached_panel_id = BOARD_ID_INIT;
|
||||||
|
|
||||||
|
if (cached_panel_id == BOARD_ID_INIT)
|
||||||
|
cached_panel_id = get_adc_index(PANEL_ID_CHANNEL);
|
||||||
|
|
||||||
|
return cached_panel_id;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t sku_id(void)
|
uint32_t sku_id(void)
|
||||||
{
|
{
|
||||||
static uint32_t cached_sku_code = BOARD_ID_INIT;
|
static uint32_t cached_sku_code = BOARD_ID_INIT;
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#ifndef __MAINBOARD_GOOGLE_GERALT_PANEL_H__
|
||||||
|
#define __MAINBOARD_GOOGLE_GERALT_PANEL_H__
|
||||||
|
|
||||||
|
uint32_t panel_id(void);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue