summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Samek <jan.samek@siemens.com>2023-01-18 13:28:50 +0100
committerFelix Held <felix-coreboot@felixheld.de>2023-01-27 14:56:54 +0000
commit79312afdde1df0f64f8e1349cee8fd1566a90415 (patch)
tree190fe26e6fa1609ec80592bd356c7f87d2f0539f
parentb6730e03e203c320a11306e902d52e3fcad43fef (diff)
drivers/i2c/ptn3460: Use cb_err in mb_adjust_cfg
Return generic coreboot error codes from the mb_adjust_cfg callback used in mainboards instead of '-1' constant and a driver-specific success-indicating define. BUG=none TEST=Boards siemens/mc_apl{1,4,5,7} and siemens/mc_ehl3 build correctly. Change-Id: I5e0d4e67703db518ed239a845f43047f569b94ec Signed-off-by: Jan Samek <jan.samek@siemens.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/72071 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
-rw-r--r--src/drivers/i2c/ptn3460/ptn3460.c6
-rw-r--r--src/drivers/i2c/ptn3460/ptn3460.h3
-rw-r--r--src/mainboard/siemens/mc_apl1/variants/mc_apl1/lcd_panel.c12
-rw-r--r--src/mainboard/siemens/mc_apl1/variants/mc_apl4/lcd_panel.c12
-rw-r--r--src/mainboard/siemens/mc_apl1/variants/mc_apl5/lcd_panel.c12
-rw-r--r--src/mainboard/siemens/mc_apl1/variants/mc_apl7/lcd_panel.c12
-rw-r--r--src/mainboard/siemens/mc_ehl/variants/mc_ehl3/lcd_panel.c12
7 files changed, 34 insertions, 35 deletions
diff --git a/src/drivers/i2c/ptn3460/ptn3460.c b/src/drivers/i2c/ptn3460/ptn3460.c
index 3ea41ba22c..31db8ad7fe 100644
--- a/src/drivers/i2c/ptn3460/ptn3460.c
+++ b/src/drivers/i2c/ptn3460/ptn3460.c
@@ -108,7 +108,7 @@ static void ptn3460_init(struct device *dev)
}
/* Mainboard can modify the configuration data.
Write back configuration data to PTN3460 if modified by mainboard */
- if (mb_adjust_cfg(&cfg) == PTN_CFG_MODIFIED) {
+ if (mb_adjust_cfg(&cfg) == CB_SUCCESS) {
ptr = (uint8_t *)&cfg;
for (i = 0; i < sizeof(struct ptn_3460_config); i++) {
val = i2c_dev_writeb_at(dev, PTN_CONFIG_OFF + i, *ptr++);
@@ -131,9 +131,9 @@ __weak uint8_t mb_select_edid_table(void)
{
return 0;
}
-__weak int mb_adjust_cfg(struct ptn_3460_config *cfg_ptr)
+__weak enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg_ptr)
{
- return 0;
+ return CB_ERR;
}
static struct device_operations ptn3460_ops = {
diff --git a/src/drivers/i2c/ptn3460/ptn3460.h b/src/drivers/i2c/ptn3460/ptn3460.h
index 718f92fea7..5d867cdd46 100644
--- a/src/drivers/i2c/ptn3460/ptn3460.h
+++ b/src/drivers/i2c/ptn3460/ptn3460.h
@@ -16,7 +16,6 @@
/* Define some error codes that can be used */
#define PTN_SUCCESS 0x00000000
-#define PTN_CFG_MODIFIED 0x00000001
#define PTN_BUS_ERROR 0x10000000
#define PTN_INVALID_EDID 0x20000000
#define PTN_INVALID_EDID_BLOCK 0x30000000
@@ -55,6 +54,6 @@ struct ptn_3460_flash {
/* These functions can be implemented somewhere else but must exist. */
extern enum cb_err mb_get_edid(uint8_t edid_data[0x80]);
extern uint8_t mb_select_edid_table(void);
-extern int mb_adjust_cfg(struct ptn_3460_config *cfg_ptr);
+extern enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg_ptr);
#endif /* _I2C_PTN3460_H_ */
diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl1/lcd_panel.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl1/lcd_panel.c
index b6e3c27c75..0fce19c80b 100644
--- a/src/mainboard/siemens/mc_apl1/variants/mc_apl1/lcd_panel.c
+++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl1/lcd_panel.c
@@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
- * @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
+ * @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
-int mb_adjust_cfg(struct ptn_3460_config *cfg)
+enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
- return PTN_CFG_MODIFIED;
+ return CB_SUCCESS;
}
diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl4/lcd_panel.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl4/lcd_panel.c
index 9fd2566456..d5de17dd52 100644
--- a/src/mainboard/siemens/mc_apl1/variants/mc_apl4/lcd_panel.c
+++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl4/lcd_panel.c
@@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
- * @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
+ * @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
-int mb_adjust_cfg(struct ptn_3460_config *cfg)
+enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
- return PTN_CFG_MODIFIED;
+ return CB_SUCCESS;
}
diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl5/lcd_panel.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl5/lcd_panel.c
index c984f2fed4..348f7622ae 100644
--- a/src/mainboard/siemens/mc_apl1/variants/mc_apl5/lcd_panel.c
+++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl5/lcd_panel.c
@@ -64,9 +64,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
- * @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
+ * @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
-int mb_adjust_cfg(struct ptn_3460_config *cfg)
+enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@@ -74,16 +74,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@@ -116,5 +116,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
- return PTN_CFG_MODIFIED;
+ return CB_SUCCESS;
}
diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl7/lcd_panel.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl7/lcd_panel.c
index 9fd2566456..d5de17dd52 100644
--- a/src/mainboard/siemens/mc_apl1/variants/mc_apl7/lcd_panel.c
+++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl7/lcd_panel.c
@@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
- * @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
+ * @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
-int mb_adjust_cfg(struct ptn_3460_config *cfg)
+enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
- return PTN_CFG_MODIFIED;
+ return CB_SUCCESS;
}
diff --git a/src/mainboard/siemens/mc_ehl/variants/mc_ehl3/lcd_panel.c b/src/mainboard/siemens/mc_ehl/variants/mc_ehl3/lcd_panel.c
index b1c4e0100c..7b162540aa 100644
--- a/src/mainboard/siemens/mc_ehl/variants/mc_ehl3/lcd_panel.c
+++ b/src/mainboard/siemens/mc_ehl/variants/mc_ehl3/lcd_panel.c
@@ -39,9 +39,9 @@ uint8_t mb_select_edid_table(void)
/** \brief Function to enable mainboard to adjust the config data of PTN3460. For reference,
* see NXP document AN11128 - PTN3460 Programming guide.
* @param *cfg_ptr Pointer to the PTN config structure to modify
- * @return -1 on error; PTN_CFG_MODIFIED if data was modified and needs to be updated.
+ * @return CB_SUCCESS if data was modified and needs to be updated; CB_ERR on error
*/
-int mb_adjust_cfg(struct ptn_3460_config *cfg)
+enum cb_err mb_adjust_cfg(struct ptn_3460_config *cfg)
{
const char *hwi_block = "hwinfo.hex";
uint8_t disp_con = 0, color_depth = 0;
@@ -49,16 +49,16 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Get display-specific configuration from hwinfo. */
if (hwilib_find_blocks(hwi_block) != CB_SUCCESS) {
printk(BIOS_ERR, "LCD: Info block \"%s\" not found!\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_DisplCon, &disp_con, sizeof(disp_con)) != sizeof(disp_con)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
if (hwilib_get_field(PF_Color_Depth, &color_depth,
sizeof(color_depth)) != sizeof(color_depth)) {
printk(BIOS_ERR, "LCD: Missing panel features from %s\n", hwi_block);
- return -1;
+ return CB_ERR;
}
/* Set up PTN3460 registers based on hwinfo and fixed board-specific parameters: */
@@ -91,5 +91,5 @@ int mb_adjust_cfg(struct ptn_3460_config *cfg)
/* Enable backlight control. */
cfg->backlight_ctrl = 0x00;
- return PTN_CFG_MODIFIED;
+ return CB_SUCCESS;
}