soc/mediatek/mt8195: modify mt6360 interface

With the new definition of mt6360_regulator_id,
merge the MT6360 LDO and PMIC interfaces into one.

Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Change-Id: I7ccc32cb0a9481d5f55349c152267a44fe09d20a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56435
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
diff --git a/src/mainboard/google/cherry/mainboard.c b/src/mainboard/google/cherry/mainboard.c
index 21ab24c..76aa59b 100644
--- a/src/mainboard/google/cherry/mainboard.c
+++ b/src/mainboard/google/cherry/mainboard.c
@@ -127,8 +127,8 @@
 
 	mtk_i2c_bus_init(7);
 	mt6360_init(7);
-	mt6360_ldo_enable(MT6360_LDO3, 1);
-	mt6360_ldo_enable(MT6360_LDO5, 1);
+	mt6360_enable(MT6360_LDO3, 1);
+	mt6360_enable(MT6360_LDO5, 1);
 }
 
 /* Set up backlight control pins as output pin and power-off by default */
diff --git a/src/mainboard/google/cherry/regulator.c b/src/mainboard/google/cherry/regulator.c
index b59a643..0c1f7fe 100644
--- a/src/mainboard/google/cherry/regulator.c
+++ b/src/mainboard/google/cherry/regulator.c
@@ -57,7 +57,7 @@
 
 	id = get_mt6360_regulator_id(regulator);
 	if (id >= 0) {
-		mt6360_pmic_set_voltage(id, voltage_uv);
+		mt6360_set_voltage(id, voltage_uv);
 		return;
 	}
 
@@ -85,7 +85,7 @@
 
 	id = get_mt6360_regulator_id(regulator);
 	if (id >= 0)
-		return mt6360_pmic_get_voltage(id);
+		return mt6360_get_voltage(id);
 
 	id = get_mt6359p_regulator_id(regulator);
 	if (id >= 0)
@@ -113,7 +113,7 @@
 
 	id = get_mt6360_regulator_id(regulator);
 	if (id >= 0) {
-		mt6360_pmic_enable(id, enable);
+		mt6360_enable(id, enable);
 		return 0;
 	}
 
@@ -131,7 +131,7 @@
 
 	id = get_mt6360_regulator_id(regulator);
 	if (id >= 0)
-		return mt6360_pmic_is_enabled(id);
+		return mt6360_is_enabled(id);
 
 	printk(BIOS_ERR,
 	       "Failed to query regulator ID: %d\n; assuming disabled",
diff --git a/src/soc/mediatek/mt8195/include/soc/mt6360.h b/src/soc/mediatek/mt8195/include/soc/mt6360.h
index e7cc9fe..0c5edff 100644
--- a/src/soc/mediatek/mt8195/include/soc/mt6360.h
+++ b/src/soc/mediatek/mt8195/include/soc/mt6360.h
@@ -55,15 +55,9 @@
 };
 
 void mt6360_init(uint8_t bus);
-
-void mt6360_ldo_enable(enum mt6360_regulator_id id, uint8_t enable);
-uint8_t mt6360_ldo_is_enabled(enum mt6360_regulator_id id);
-void mt6360_ldo_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv);
-u32 mt6360_ldo_get_voltage(enum mt6360_regulator_id id);
-
-void mt6360_pmic_enable(enum mt6360_regulator_id id, uint8_t enable);
-uint8_t mt6360_pmic_is_enabled(enum mt6360_regulator_id id);
-void mt6360_pmic_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv);
-u32 mt6360_pmic_get_voltage(enum mt6360_regulator_id id);
+void mt6360_enable(enum mt6360_regulator_id id, uint8_t enable);
+uint8_t mt6360_is_enabled(enum mt6360_regulator_id id);
+void mt6360_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv);
+u32 mt6360_get_voltage(enum mt6360_regulator_id id);
 
 #endif
diff --git a/src/soc/mediatek/mt8195/mt6360.c b/src/soc/mediatek/mt8195/mt6360.c
index 437f995..142e244 100644
--- a/src/soc/mediatek/mt8195/mt6360.c
+++ b/src/soc/mediatek/mt8195/mt6360.c
@@ -195,7 +195,7 @@
 	return true;
 }
 
-void mt6360_ldo_enable(enum mt6360_regulator_id id, uint8_t enable)
+static void mt6360_ldo_enable(enum mt6360_regulator_id id, uint8_t enable)
 {
 	u8 val;
 	const struct mt6360_data *data;
@@ -216,7 +216,7 @@
 	mt6360_config_interface(MT6360_INDEX_LDO, data->enable_reg, val, 0xff, 0);
 }
 
-uint8_t mt6360_ldo_is_enabled(enum mt6360_regulator_id id)
+static uint8_t mt6360_ldo_is_enabled(enum mt6360_regulator_id id)
 {
 	u8 val;
 	const struct mt6360_data *data;
@@ -232,7 +232,7 @@
 	return (val & data->enable_mask) ? 1 : 0;
 }
 
-void mt6360_ldo_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv)
+static void mt6360_ldo_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv)
 {
 	u8 val = 0;
 	u32 voltage_uv_temp = 0;
@@ -270,7 +270,7 @@
 	mt6360_config_interface(MT6360_INDEX_LDO, data->vsel_reg, val, 0xff, 0);
 }
 
-u32 mt6360_ldo_get_voltage(enum mt6360_regulator_id id)
+static u32 mt6360_ldo_get_voltage(enum mt6360_regulator_id id)
 {
 	u8 val;
 	u32 voltage_uv;
@@ -297,6 +297,89 @@
 	return voltage_uv;
 }
 
+static void mt6360_pmic_enable(enum mt6360_regulator_id id, uint8_t enable)
+{
+	u8 val;
+	const struct mt6360_data *data;
+
+	if (!is_valid_pmic(id))
+		return;
+
+	data = &regulator_data[id];
+
+	if (mt6360_read_interface(MT6360_INDEX_PMIC, data->enable_reg, &val, 0xff, 0) < 0)
+		return;
+
+	if (enable)
+		val |= data->enable_mask;
+	else
+		val &= ~(data->enable_mask);
+
+	mt6360_config_interface(MT6360_INDEX_PMIC, data->enable_reg, val, 0xff, 0);
+}
+
+static uint8_t mt6360_pmic_is_enabled(enum mt6360_regulator_id id)
+{
+	u8 val;
+	const struct mt6360_data *data;
+
+	if (!is_valid_pmic(id))
+		return 0;
+
+	data = &regulator_data[id];
+
+	if (mt6360_read_interface(MT6360_INDEX_PMIC, data->enable_reg, &val, 0xff, 0) < 0)
+		return 0;
+
+	return (val & data->enable_mask) ? 1 : 0;
+}
+
+static void mt6360_pmic_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv)
+{
+	u8 val = 0;
+
+	const struct mt6360_data *data;
+
+	if (!is_valid_pmic(id))
+		return;
+
+	data = &regulator_data[id];
+
+	if (id == MT6360_BUCK1 || id == MT6360_BUCK2) {
+		val = (voltage_uv - 300000) / 5000;
+	} else if (id == MT6360_LDO6 || id == MT6360_LDO7) {
+		val = (((voltage_uv - 500000) / 100000) << 4);
+		val += (((voltage_uv - 500000) % 100000) / 10000);
+	}
+
+	mt6360_config_interface(MT6360_INDEX_PMIC, data->vsel_reg, val, 0xff, 0);
+}
+
+static u32 mt6360_pmic_get_voltage(enum mt6360_regulator_id id)
+{
+	u8 val;
+	u32 voltage_uv = 0;
+
+	const struct mt6360_data *data;
+
+	if (!is_valid_pmic(id))
+		return 0;
+
+	data = &regulator_data[id];
+
+	if (mt6360_read_interface(MT6360_INDEX_PMIC, data->vsel_reg, &val, 0xff, 0) < 0)
+		return 0;
+
+	if (id == MT6360_BUCK1 || id == MT6360_BUCK2) {
+		voltage_uv = 300000 + val * 5000;
+	} else if (id == MT6360_LDO6 || id == MT6360_LDO7) {
+		voltage_uv = 500000 + 100000 * (val >> 4);
+		voltage_uv += MIN(val & 0xf, 0xa) * 10000;
+	}
+
+	return voltage_uv;
+}
+
 void mt6360_init(uint8_t bus)
 {
 	u8 delay01, delay02, delay03, delay04;
@@ -321,85 +404,38 @@
 	       __func__, delay01, delay02, delay03, delay04);
 }
 
-void mt6360_pmic_enable(enum mt6360_regulator_id id, uint8_t enable)
+void mt6360_enable(enum mt6360_regulator_id id, uint8_t enable)
 {
-	u8 val;
-	const struct mt6360_data *data;
+	if (is_valid_ldo(id))
+		mt6360_ldo_enable(id, enable);
+	else if (is_valid_pmic(id))
+		mt6360_pmic_enable(id, enable);
+}
 
-	if (!is_valid_pmic(id))
-		return;
-
-	data = &regulator_data[id];
-
-	if (mt6360_read_interface(MT6360_INDEX_PMIC, data->enable_reg, &val, 0xff, 0) < 0)
-		return;
-
-	if (enable)
-		val |= data->enable_mask;
+uint8_t mt6360_is_enabled(enum mt6360_regulator_id id)
+{
+	if (is_valid_ldo(id))
+		return mt6360_ldo_is_enabled(id);
+	else if (is_valid_pmic(id))
+		return mt6360_pmic_is_enabled(id);
 	else
-		val &= ~(data->enable_mask);
-
-	mt6360_config_interface(MT6360_INDEX_PMIC, data->enable_reg, val, 0xff, 0);
+		return 0;
 }
 
-uint8_t mt6360_pmic_is_enabled(enum mt6360_regulator_id id)
+void mt6360_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv)
 {
-	u8 val;
-	const struct mt6360_data *data;
-
-	if (!is_valid_pmic(id))
-		return 0;
-
-	data = &regulator_data[id];
-
-	if (mt6360_read_interface(MT6360_INDEX_PMIC, data->enable_reg, &val, 0xff, 0) < 0)
-		return 0;
-
-	return (val & data->enable_mask) ? 1 : 0;
+	if (is_valid_ldo(id))
+		mt6360_ldo_set_voltage(id, voltage_uv);
+	else if (is_valid_pmic(id))
+		mt6360_pmic_set_voltage(id, voltage_uv);
 }
 
-void mt6360_pmic_set_voltage(enum mt6360_regulator_id id, u32 voltage_uv)
+u32 mt6360_get_voltage(enum mt6360_regulator_id id)
 {
-	u8 val = 0;
-
-	const struct mt6360_data *data;
-
-	if (!is_valid_pmic(id))
-		return;
-
-	data = &regulator_data[id];
-
-	if (id == MT6360_BUCK1 || id == MT6360_BUCK2) {
-		val = (voltage_uv - 300000) / 5000;
-	} else if (id == MT6360_LDO6 || id == MT6360_LDO7) {
-		val = (((voltage_uv - 500000) / 100000) << 4);
-		val += (((voltage_uv - 500000) % 100000) / 10000);
-	}
-
-	mt6360_config_interface(MT6360_INDEX_PMIC, data->vsel_reg, val, 0xff, 0);
-}
-
-u32 mt6360_pmic_get_voltage(enum mt6360_regulator_id id)
-{
-	u8 val;
-	u32 voltage_uv = 0;
-
-	const struct mt6360_data *data;
-
-	if (!is_valid_pmic(id))
+	if (is_valid_ldo(id))
+		return mt6360_ldo_get_voltage(id);
+	else if (is_valid_pmic(id))
+		return mt6360_pmic_get_voltage(id);
+	else
 		return 0;
-
-	data = &regulator_data[id];
-
-	if (mt6360_read_interface(MT6360_INDEX_PMIC, data->vsel_reg, &val, 0xff, 0) < 0)
-		return 0;
-
-	if (id == MT6360_BUCK1 || id == MT6360_BUCK2) {
-		voltage_uv = 300000 + val * 5000;
-	} else if (id == MT6360_LDO6 || id == MT6360_LDO7) {
-		voltage_uv = 500000 + 100000 * (val >> 4);
-		voltage_uv += MIN(val & 0xf, 0xa) * 10000;
-	}
-
-	return voltage_uv;
 }