u-boot-samsung-i9100: update to 2026.07-rc4
And build from tag in exynos4-mainline/u-boot repo instead of carrying all the patches in pmaports. In this tag booting from emmc is supported, i.e. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/3993 is fixed. As in previous tag i9100 is supported by modifying the board files for exynos4210-trats, quality is not good enough for sending upstream. Fixes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/3993 Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8877>
This commit is contained in:
parent
595c276a22
commit
2840ed1a64
9 changed files with 15 additions and 709 deletions
|
|
@ -1,68 +0,0 @@
|
|||
From 2543814609a0d9efb607809292e59e12fd05955b Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sun, 29 Sep 2024 13:44:10 +0200
|
||||
Subject: [PATCH] DONOTMERGE: configs: trats: update values for i9100
|
||||
|
||||
i9100 is similar to trats, but needs a different load address. Also
|
||||
add some convenient commands while we are at it, and
|
||||
disable (non-working) usb stuff.
|
||||
---
|
||||
configs/trats_defconfig | 17 ++++++-----------
|
||||
1 file changed, 6 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
|
||||
index 70f7e06ba9c8..486b91137615 100644
|
||||
--- a/configs/trats_defconfig
|
||||
+++ b/configs/trats_defconfig
|
||||
@@ -3,7 +3,7 @@ CONFIG_SKIP_LOWLEVEL_INIT=y
|
||||
CONFIG_ARCH_CPU_INIT=y
|
||||
CONFIG_SYS_L2CACHE_OFF=y
|
||||
CONFIG_ARCH_EXYNOS=y
|
||||
-CONFIG_TEXT_BASE=0x63300000
|
||||
+CONFIG_TEXT_BASE=0x40008000
|
||||
CONFIG_SYS_MALLOC_LEN=0x5001000
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x400
|
||||
CONFIG_ARCH_EXYNOS4=y
|
||||
@@ -15,7 +15,7 @@ CONFIG_ENV_SIZE=0x1000
|
||||
CONFIG_ENV_OFFSET=0x7000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="exynos4210-trats"
|
||||
CONFIG_SYS_MONITOR_LEN=262144
|
||||
-CONFIG_SYS_LOAD_ADDR=0x44800000
|
||||
+CONFIG_SYS_LOAD_ADDR=0x4ee00000
|
||||
CONFIG_SYS_MEM_TOP_HIDE=0x100000
|
||||
CONFIG_FIT=y
|
||||
CONFIG_FIT_VERBOSE=y
|
||||
@@ -29,14 +29,16 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||
CONFIG_MISC_INIT_R=y
|
||||
CONFIG_SYS_PROMPT="Trats # "
|
||||
# CONFIG_CMD_XIMG is not set
|
||||
-CONFIG_CMD_THOR_DOWNLOAD=y
|
||||
+CONFIG_CMD_BIND=y
|
||||
+CONFIG_CMD_CLK=y
|
||||
CONFIG_CMD_DFU=y
|
||||
+CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_GPT=y
|
||||
CONFIG_CMD_I2C=y
|
||||
CONFIG_CMD_MMC=y
|
||||
-CONFIG_CMD_USB_MASS_STORAGE=y
|
||||
CONFIG_CMD_CACHE=y
|
||||
# CONFIG_CMD_SLEEP is not set
|
||||
+CONFIG_CMD_PMIC=y
|
||||
CONFIG_CMD_EXT4_WRITE=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
@@ -54,11 +56,4 @@ CONFIG_MMC_SDHCI_S5P=y
|
||||
CONFIG_DM_PMIC=y
|
||||
CONFIG_PMIC_MAX8997=y
|
||||
CONFIG_USB=y
|
||||
-CONFIG_USB_GADGET=y
|
||||
-CONFIG_USB_GADGET_MANUFACTURER="Samsung"
|
||||
-CONFIG_USB_GADGET_VENDOR_NUM=0x04e8
|
||||
-CONFIG_USB_GADGET_PRODUCT_NUM=0x6601
|
||||
-CONFIG_USB_GADGET_DWC2_OTG=y
|
||||
-CONFIG_USB_GADGET_DWC2_OTG_PHY=y
|
||||
-CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_LIB_HW_RAND=y
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,408 +0,0 @@
|
|||
From 06e3b3e24dc1b68ac7e988d0dd28cd0967b31fce Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sun, 29 Sep 2024 13:54:07 +0200
|
||||
Subject: [PATCH] DONOTMERGE: Revert most of "board: samsung: trats: remove the
|
||||
unnecessary codes"
|
||||
|
||||
This reverts commit 5dfbd7bad8b3db6034e6bdcb449f08ec848e64fd.
|
||||
|
||||
All these setup values should be properly handled by a pinctrl driver
|
||||
instead.
|
||||
---
|
||||
board/samsung/trats/trats.c | 314 +++++++++++++++++++++---------------
|
||||
1 file changed, 182 insertions(+), 132 deletions(-)
|
||||
|
||||
diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c
|
||||
index 6efc6f3831df..3d4981b7b990 100644
|
||||
--- a/board/samsung/trats/trats.c
|
||||
+++ b/board/samsung/trats/trats.c
|
||||
@@ -41,131 +41,188 @@ u32 get_board_rev(void)
|
||||
|
||||
struct dwc2_plat_otg_data s5pc210_otg_data;
|
||||
|
||||
-#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */
|
||||
-static void trats_low_power_mode(void)
|
||||
+unsigned char max8997_reg_ldo(int uV)
|
||||
{
|
||||
- struct exynos4_clock *clk =
|
||||
- (struct exynos4_clock *)samsung_get_base_clock();
|
||||
- struct exynos4_power *pwr =
|
||||
- (struct exynos4_power *)samsung_get_base_power();
|
||||
-
|
||||
- /* Power down CORE1 */
|
||||
- /* LOCAL_PWR_CFG [1:0] 0x3 EN, 0x0 DIS */
|
||||
- writel(0x0, &pwr->arm_core1_configuration);
|
||||
-
|
||||
- /* Change the APLL frequency */
|
||||
- /* ENABLE (1 enable) | LOCKED (1 locked) */
|
||||
- /* [31] | [29] */
|
||||
- /* FSEL | MDIV | PDIV | SDIV */
|
||||
- /* [27] | [25:16] | [13:8] | [2:0] */
|
||||
- writel(0xa0c80604, &clk->apll_con0);
|
||||
-
|
||||
- /* Change CPU0 clock divider */
|
||||
- /* CORE2_RATIO | APLL_RATIO | PCLK_DBG_RATIO | ATB_RATIO */
|
||||
- /* [30:28] | [26:24] | [22:20] | [18:16] */
|
||||
- /* PERIPH_RATIO | COREM1_RATIO | COREM0_RATIO | CORE_RATIO */
|
||||
- /* [14:12] | [10:8] | [6:4] | [2:0] */
|
||||
- writel(0x00000100, &clk->div_cpu0);
|
||||
-
|
||||
- /* CLK_DIV_STAT_CPU0 - wait until clock gets stable (0 = stable) */
|
||||
- while (readl(&clk->div_stat_cpu0) & 0x1111111)
|
||||
- continue;
|
||||
-
|
||||
- /* Change clock divider ratio for DMC */
|
||||
- /* DMCP_RATIO | DMCD_RATIO */
|
||||
- /* [22:20] | [18:16] */
|
||||
- /* DMC_RATIO | DPHY_RATIO | ACP_PCLK_RATIO | ACP_RATIO */
|
||||
- /* [14:12] | [10:8] | [6:4] | [2:0] */
|
||||
- writel(0x13113117, &clk->div_dmc0);
|
||||
-
|
||||
- /* CLK_DIV_STAT_DMC0 - wait until clock gets stable (0 = stable) */
|
||||
- while (readl(&clk->div_stat_dmc0) & 0x11111111)
|
||||
- continue;
|
||||
-
|
||||
- /* Turn off unnecessary power domains */
|
||||
- writel(0x0, &pwr->xxti_configuration); /* XXTI */
|
||||
- writel(0x0, &pwr->cam_configuration); /* CAM */
|
||||
- writel(0x0, &pwr->tv_configuration); /* TV */
|
||||
- writel(0x0, &pwr->mfc_configuration); /* MFC */
|
||||
- writel(0x0, &pwr->g3d_configuration); /* G3D */
|
||||
- writel(0x0, &pwr->gps_configuration); /* GPS */
|
||||
- writel(0x0, &pwr->gps_alive_configuration); /* GPS_ALIVE */
|
||||
-
|
||||
- /* Turn off unnecessary clocks */
|
||||
- writel(0x0, &clk->gate_ip_cam); /* CAM */
|
||||
- writel(0x0, &clk->gate_ip_tv); /* TV */
|
||||
- writel(0x0, &clk->gate_ip_mfc); /* MFC */
|
||||
- writel(0x0, &clk->gate_ip_g3d); /* G3D */
|
||||
- writel(0x0, &clk->gate_ip_image); /* IMAGE */
|
||||
- writel(0x0, &clk->gate_ip_gps); /* GPS */
|
||||
+ unsigned char ret;
|
||||
+ if (uV <= 800000)
|
||||
+ return 0;
|
||||
+ if (uV >= 3950000)
|
||||
+ return MAX8997_LDO_MAX_VAL;
|
||||
+ ret = (uV - 800000) / 50000;
|
||||
+ if (ret > MAX8997_LDO_MAX_VAL) {
|
||||
+ printf("MAX8997 LDO SETTING ERROR (%duV) -> %u\n", uV, ret);
|
||||
+ ret = MAX8997_LDO_MAX_VAL;
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
}
|
||||
-#endif
|
||||
|
||||
-int exynos_power_init(void)
|
||||
+static int pmic_init_max8997(void)
|
||||
{
|
||||
-#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */
|
||||
- int chrg, ret;
|
||||
- struct power_battery *pb;
|
||||
- struct pmic *p_fg, *p_chrg, *p_muic, *p_bat;
|
||||
+ printf("%s\n", __func__);
|
||||
+ struct udevice *dev;
|
||||
+ int i = 0, ret = 0;
|
||||
+ u32 val;
|
||||
|
||||
- /*
|
||||
- * For PMIC/MUIC the I2C bus is named as I2C5, but it is connected
|
||||
- * to logical I2C adapter 0
|
||||
- *
|
||||
- * The FUEL_GAUGE is marked as I2C9 on the schematic, but connected
|
||||
- * to logical I2C adapter 1
|
||||
- */
|
||||
- ret = power_fg_init(I2C_9);
|
||||
- ret |= power_muic_init(I2C_5);
|
||||
- ret |= power_bat_init(0);
|
||||
+ ret = pmic_get("max8997-pmic@66", &dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
- p_fg = pmic_get("MAX17042_FG");
|
||||
- if (!p_fg) {
|
||||
- puts("MAX17042_FG: Not found\n");
|
||||
- return -ENODEV;
|
||||
- }
|
||||
+ /* BUCK1 VARM: 1.2V */
|
||||
+ val = (1200000 - 650000) / 25000;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK1DVS1, val);
|
||||
+ val = ENBUCK | ACTIVE_DISCHARGE; /* DVS OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK1CTRL, val);
|
||||
|
||||
- p_chrg = pmic_get("MAX8997_PMIC");
|
||||
- if (!p_chrg) {
|
||||
- puts("MAX8997_PMIC: Not found\n");
|
||||
- return -ENODEV;
|
||||
- }
|
||||
+ /* BUCK2 VINT: 1.1V */
|
||||
+ val = (1100000 - 650000) / 25000;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK2DVS1, val);
|
||||
+ val = ENBUCK | ACTIVE_DISCHARGE; /* DVS OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK2CTRL, val);
|
||||
|
||||
- p_muic = pmic_get("MAX8997_MUIC");
|
||||
- if (!p_muic) {
|
||||
- puts("MAX8997_MUIC: Not found\n");
|
||||
- return -ENODEV;
|
||||
- }
|
||||
|
||||
- p_bat = pmic_get("BAT_TRATS");
|
||||
- if (!p_bat) {
|
||||
- puts("BAT_TRATS: Not found\n");
|
||||
- return -ENODEV;
|
||||
- }
|
||||
+ /* BUCK3 G3D: 1.1V - OFF */
|
||||
+ val |= pmic_reg_read(dev, MAX8997_REG_BUCK3CTRL);
|
||||
+ val &= ~ENBUCK;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK3CTRL, val);
|
||||
|
||||
- p_fg->parent = p_bat;
|
||||
- p_chrg->parent = p_bat;
|
||||
- p_muic->parent = p_bat;
|
||||
+ val = (1100000 - 750000) / 50000;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK3DVS, val);
|
||||
|
||||
- p_bat->low_power_mode = trats_low_power_mode;
|
||||
- p_bat->pbat->battery_init(p_bat, p_fg, p_chrg, p_muic);
|
||||
+ /* BUCK4 CAMISP: 1.2V - OFF */
|
||||
+ val |= pmic_reg_read(dev, MAX8997_REG_BUCK4CTRL);
|
||||
+ val &= ~ENBUCK;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK4CTRL, val);
|
||||
|
||||
- pb = p_bat->pbat;
|
||||
- chrg = p_muic->chrg->chrg_type(p_muic);
|
||||
- debug("CHARGER TYPE: %d\n", chrg);
|
||||
+ val = (1200000 - 650000) / 25000;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK4DVS, val);
|
||||
|
||||
- if (!p_chrg->chrg->chrg_bat_present(p_chrg)) {
|
||||
- puts("No battery detected\n");
|
||||
- return 0;
|
||||
+ /* BUCK5 VMEM: 1.2V */
|
||||
+ val = (1200000 - 650000) / 25000;
|
||||
+ for (i = 0; i < 8; i++)
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK5DVS1 + i, val);
|
||||
+
|
||||
+ val = ENBUCK | ACTIVE_DISCHARGE; /* DVS OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK5CTRL, val);
|
||||
+
|
||||
+ /* BUCK6 CAM AF: 2.8V */
|
||||
+ /* No Voltage Setting Register */
|
||||
+ /* GNSLCT 3.0X */
|
||||
+ val = GNSLCT;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK6CTRL, val);
|
||||
+
|
||||
+ /* BUCK7 VCC_SUB: 2.0V */
|
||||
+ val = (2000000 - 750000) / 50000;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK7DVS, val);
|
||||
+
|
||||
+ /* LDO1 VADC: 3.3V */
|
||||
+ val = max8997_reg_ldo(3300000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO1CTRL, val);
|
||||
+
|
||||
+ /* LDO1 Disable active discharging */
|
||||
+ val |= pmic_reg_read(dev, MAX8997_REG_LDO1CONFIG);
|
||||
+ val &= ~LDO_ADE;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO1CONFIG, val);
|
||||
+
|
||||
+ /* LDO2 VALIVE: 1.1V */
|
||||
+ val = max8997_reg_ldo(1100000) | EN_LDO;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO2CTRL, val);
|
||||
+
|
||||
+ /* LDO3 VUSB/MIPI: 1.1V */
|
||||
+ val = max8997_reg_ldo(1100000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO3CTRL, val);
|
||||
+
|
||||
+ /* LDO4 VMIPI: 1.8V */
|
||||
+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO4CTRL, val);
|
||||
+
|
||||
+ /* LDO5 VHSIC: 1.2V */
|
||||
+ val = max8997_reg_ldo(1200000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO5CTRL, val);
|
||||
+
|
||||
+ /* LDO6 VCC_1.8V_PDA: 1.8V */
|
||||
+ val = max8997_reg_ldo(1800000) | EN_LDO;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO6CTRL, val);
|
||||
+
|
||||
+ /* LDO7 CAM_ISP: 1.8V */
|
||||
+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO7CTRL, val);
|
||||
+
|
||||
+ /* LDO8 VDAC/VUSB: 3.3V */
|
||||
+ val = max8997_reg_ldo(3300000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO8CTRL, val);
|
||||
+
|
||||
+ /* LDO9 VCC_2.8V_PDA: 2.8V */
|
||||
+ val = max8997_reg_ldo(2800000) | EN_LDO;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO9CTRL, val);
|
||||
+
|
||||
+ /* LDO10 VPLL: 1.1V */
|
||||
+ val = max8997_reg_ldo(1100000) | EN_LDO;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO10CTRL, val);
|
||||
+
|
||||
+ /* LDO11 TOUCH: 2.8V */
|
||||
+ val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO11CTRL, val);
|
||||
+
|
||||
+ /* LDO12 VTCAM: 1.8V */
|
||||
+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO12CTRL, val);
|
||||
+
|
||||
+ /* LDO13 VCC_3.0_LCD: 3.0V */
|
||||
+ val = max8997_reg_ldo(3000000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO13CTRL, val);
|
||||
+
|
||||
+ /* LDO14 MOTOR: 3.0V */
|
||||
+ val = max8997_reg_ldo(3000000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO14CTRL, val);
|
||||
+
|
||||
+ /* LDO15 LED_A: 2.8V */
|
||||
+ val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO15CTRL, val);
|
||||
+
|
||||
+ /* LDO16 CAM_SENSOR: 1.8V */
|
||||
+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO16CTRL, val);
|
||||
+
|
||||
+ /* LDO17 VTF: 2.8V */
|
||||
+ val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO17CTRL, val);
|
||||
+
|
||||
+ /* LDO18 TOUCH_LED 3.3V */
|
||||
+ val = max8997_reg_ldo(3300000) | DIS_LDO; /* OFF */
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO18CTRL, val);
|
||||
+
|
||||
+ /* LDO21 VDDQ: 1.2V */
|
||||
+ val = max8997_reg_ldo(1200000) | EN_LDO;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO21CTRL, val);
|
||||
+
|
||||
+ /* SAFEOUT for both 1 and 2: 4.9V, Active discharge, Enable */
|
||||
+ val = (SAFEOUT_4_90V << 0) | (SAFEOUT_4_90V << 2) |
|
||||
+ ACTDISSAFEO1 | ACTDISSAFEO2 | ENSAFEOUT1 | ENSAFEOUT2;
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_SAFEOUTCTRL, val);
|
||||
+
|
||||
+ if (ret) {
|
||||
+ puts("MAX8997 PMIC setting error!\n");
|
||||
+ return -1;
|
||||
}
|
||||
|
||||
- p_fg->fg->fg_battery_check(p_fg, p_bat);
|
||||
+ return 0;
|
||||
+}
|
||||
|
||||
- if (pb->bat->state == CHARGE && chrg == CHARGER_USB)
|
||||
- puts("CHARGE Battery !\n");
|
||||
-#endif
|
||||
+int exynos_power_init(void)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ /*
|
||||
+ * For PMIC/MUIC the I2C bus is named as I2C5, but it is connected
|
||||
+ * to logical I2C adapter 0
|
||||
+ *
|
||||
+ * The FUEL_GAUGE is marked as I2C9 on the schematic, but connected
|
||||
+ * to logical I2C adapter 1
|
||||
+ */
|
||||
+ ret = pmic_init_max8997();
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -217,7 +274,7 @@ static int s5pc210_phy_control(int on)
|
||||
struct udevice *dev;
|
||||
int reg, ret;
|
||||
|
||||
- ret = pmic_get("max8997-pmic", &dev);
|
||||
+ ret = pmic_get("max8997-pmic@66", &dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -287,15 +344,14 @@ int board_usb_init(int index, enum usb_init_type init)
|
||||
|
||||
int g_dnl_board_usb_cable_connected(void)
|
||||
{
|
||||
-#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */
|
||||
- struct pmic *muic = pmic_get("MAX8997_MUIC");
|
||||
- if (!muic)
|
||||
+ struct udevice *dev;
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = pmic_get("max8997-pmic@66", &dev);
|
||||
+ if (ret)
|
||||
return 0;
|
||||
|
||||
return !!muic->chrg->chrg_type(muic);
|
||||
-#else
|
||||
- return false;
|
||||
-#endif
|
||||
|
||||
}
|
||||
#endif
|
||||
@@ -399,48 +455,42 @@ int exynos_early_init_f(void)
|
||||
|
||||
int lcd_power(void)
|
||||
{
|
||||
-#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */
|
||||
+ struct udevice *dev;
|
||||
int ret = 0;
|
||||
- struct pmic *p = pmic_get("MAX8997_PMIC");
|
||||
- if (!p)
|
||||
- return -ENODEV;
|
||||
|
||||
- if (pmic_probe(p))
|
||||
- return 0;
|
||||
+ ret = pmic_get("max8997-pmic@66", &dev);
|
||||
+ if (ret)
|
||||
+ return -ENODEV;
|
||||
|
||||
/* LDO15 voltage: 2.2v */
|
||||
- ret |= pmic_reg_write(p, MAX8997_REG_LDO15CTRL, 0x1c | EN_LDO);
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO15CTRL, 0x1c | EN_LDO);
|
||||
/* LDO13 voltage: 3.0v */
|
||||
- ret |= pmic_reg_write(p, MAX8997_REG_LDO13CTRL, 0x2c | EN_LDO);
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO13CTRL, 0x2c | EN_LDO);
|
||||
|
||||
if (ret) {
|
||||
puts("MAX8997 LDO setting error!\n");
|
||||
return -1;
|
||||
}
|
||||
-#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mipi_power(void)
|
||||
{
|
||||
-#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */
|
||||
+ struct udevice *dev;
|
||||
int ret = 0;
|
||||
- struct pmic *p = pmic_get("MAX8997_PMIC");
|
||||
- if (!p)
|
||||
- return -ENODEV;
|
||||
|
||||
- if (pmic_probe(p))
|
||||
- return 0;
|
||||
+ ret = pmic_get("max8997-pmic@66", &dev);
|
||||
+ if (ret)
|
||||
+ return -ENODEV;
|
||||
|
||||
/* LDO3 voltage: 1.1v */
|
||||
- ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, 0x6 | EN_LDO);
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO3CTRL, 0x6 | EN_LDO);
|
||||
/* LDO4 voltage: 1.8v */
|
||||
- ret |= pmic_reg_write(p, MAX8997_REG_LDO4CTRL, 0x14 | EN_LDO);
|
||||
+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO4CTRL, 0x14 | EN_LDO);
|
||||
|
||||
if (ret) {
|
||||
puts("MAX8997 LDO setting error!\n");
|
||||
return -1;
|
||||
}
|
||||
-#endif
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 394d82bf51c8856f80071c1ba45fb97d9e0270f9 Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sat, 26 Jul 2025 21:28:25 +0200
|
||||
Subject: [PATCH] DONOTMERGE: board: samsung: trats: enable ldo17
|
||||
|
||||
Or else reading from sdcards cannot work on i9100.
|
||||
---
|
||||
board/samsung/trats/trats.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c
|
||||
index 3d4981b7b990..33bf8be8a0e9 100644
|
||||
--- a/board/samsung/trats/trats.c
|
||||
+++ b/board/samsung/trats/trats.c
|
||||
@@ -185,7 +185,7 @@ static int pmic_init_max8997(void)
|
||||
ret |= pmic_reg_write(dev, MAX8997_REG_LDO16CTRL, val);
|
||||
|
||||
/* LDO17 VTF: 2.8V */
|
||||
- val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */
|
||||
+ val = max8997_reg_ldo(2800000) | EN_LDO;
|
||||
ret |= pmic_reg_write(dev, MAX8997_REG_LDO17CTRL, val);
|
||||
|
||||
/* LDO18 TOUCH_LED 3.3V */
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 44dac4d2cbaadc2e03e825a223fef741e95b33f2 Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sat, 26 Jul 2025 21:33:21 +0200
|
||||
Subject: [PATCH] ARM: dts: exynos4210-trats (i9100): fix eMMC and sdcard
|
||||
|
||||
sdhci0 is non-removable (eMMC) on i9100, and sdhci2 should be
|
||||
ACTIVE_LOW to match linux kernel.
|
||||
---
|
||||
arch/arm/dts/exynos4210-trats.dts | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/dts/exynos4210-trats.dts b/arch/arm/dts/exynos4210-trats.dts
|
||||
index 88e9c0ed2bb0..57fd8ecae3f6 100644
|
||||
--- a/arch/arm/dts/exynos4210-trats.dts
|
||||
+++ b/arch/arm/dts/exynos4210-trats.dts
|
||||
@@ -240,6 +240,7 @@
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
+ non-removable;
|
||||
bus-width = <8>;
|
||||
pwr-gpios = <&gpk0 2 0>;
|
||||
status = "okay";
|
||||
@@ -247,6 +248,6 @@
|
||||
|
||||
&sdhci2 {
|
||||
bus-width = <4>;
|
||||
- cd-gpios = <&gpx3 4 0>;
|
||||
+ cd-gpios = <&gpx3 4 1>;
|
||||
status = "okay";
|
||||
};
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
From b13641ae44d93c7dc2dd658ab3a81a1beba1fe35 Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sun, 27 Jul 2025 10:33:30 +0200
|
||||
Subject: [PATCH] configs: trats: add some variables necessary for extlinux
|
||||
boot
|
||||
|
||||
With these changes we can successfully boot linux through
|
||||
extlinux. All of the added variables are likely not needed, but I am
|
||||
too lazy to check each one.
|
||||
---
|
||||
include/configs/trats.h | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/include/configs/trats.h b/include/configs/trats.h
|
||||
index 2067327918a2..c2ff8a71c3be 100644
|
||||
--- a/include/configs/trats.h
|
||||
+++ b/include/configs/trats.h
|
||||
@@ -10,6 +10,10 @@
|
||||
#define __CONFIG_TRATS_H
|
||||
|
||||
#include <configs/exynos4-common.h>
|
||||
+#define BOOT_TARGET_DEVICES(func) \
|
||||
+ func(MMC, mmc, 1) \
|
||||
+ func(MMC, mmc, 0)
|
||||
+#include <config_distro_bootcmd.h>
|
||||
|
||||
#ifndef CONFIG_SYS_L2CACHE_OFF
|
||||
#define CFG_SYS_PL310_BASE 0x10502000
|
||||
@@ -55,6 +59,16 @@
|
||||
"/Image.itb ext4 0 2\0"
|
||||
|
||||
#define CFG_EXTRA_ENV_SETTINGS \
|
||||
+ "kernel_addr_r=0x42000000\0" \
|
||||
+ "kerneladdr=0x42000000\0" \
|
||||
+ "fdt_addr_r=0x44000000\0" \
|
||||
+ "fdtaddr=0x44000000\0" \
|
||||
+ "scriptaddr=0x43000000\0" \
|
||||
+ "pxefile_addr_r=0x45000000\0" \
|
||||
+ "initrd_high=0x46000000\0" \
|
||||
+ "ramdisk_addr_r=0x46000000\0" \
|
||||
+ "initrdaddr=0x46000000\0" \
|
||||
+ BOOTENV \
|
||||
"bootk=" \
|
||||
"run loaduimage;" \
|
||||
"if run loaddtb; then " \
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
From 33fe50f03c35fe49a4564a7772aab62a82d95d4f Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sat, 9 Aug 2025 07:30:48 +0200
|
||||
Subject: [PATCH] configs: trats: disable BOOTCOMMAND so that autoboot can work
|
||||
|
||||
BOOTCOMMAND was set to `run autoboot`, which does not work. Unset the
|
||||
variable so that it runs `run distro_bootcmd` instead, which does
|
||||
work. Also re-generate config while at it.
|
||||
---
|
||||
configs/trats_defconfig | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
|
||||
index 486b91137615..f2d3908f6bc4 100644
|
||||
--- a/configs/trats_defconfig
|
||||
+++ b/configs/trats_defconfig
|
||||
@@ -22,7 +22,6 @@ CONFIG_FIT_VERBOSE=y
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
CONFIG_USE_BOOTARGS=y
|
||||
CONFIG_BOOTARGS="Please use defined boot"
|
||||
-CONFIG_BOOTCOMMAND="run autoboot"
|
||||
CONFIG_SYS_PBSIZE=1024
|
||||
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||
@@ -30,7 +29,6 @@ CONFIG_MISC_INIT_R=y
|
||||
CONFIG_SYS_PROMPT="Trats # "
|
||||
# CONFIG_CMD_XIMG is not set
|
||||
CONFIG_CMD_BIND=y
|
||||
-CONFIG_CMD_CLK=y
|
||||
CONFIG_CMD_DFU=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_GPT=y
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
From 8004f0f13eb584a41e0e6b63f97cde84d22d74e5 Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sat, 9 Aug 2025 07:35:47 +0200
|
||||
Subject: [PATCH] configs: trats: increase env_size
|
||||
|
||||
With 0x1000 it is too small after we pull in config_distro_bootcmd.h
|
||||
and its environment.
|
||||
---
|
||||
configs/trats_defconfig | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
|
||||
index f2d3908f6bc4..5f240b49dbc2 100644
|
||||
--- a/configs/trats_defconfig
|
||||
+++ b/configs/trats_defconfig
|
||||
@@ -11,7 +11,7 @@ CONFIG_TARGET_TRATS=y
|
||||
CONFIG_EXYNOS_ACE_SHA=y
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x447fff10
|
||||
-CONFIG_ENV_SIZE=0x1000
|
||||
+CONFIG_ENV_SIZE=0x2000
|
||||
CONFIG_ENV_OFFSET=0x7000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="exynos4210-trats"
|
||||
CONFIG_SYS_MONITOR_LEN=262144
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
From 0edf0a40522c7918724db6bc777f35999c013be1 Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Grimler <henrik@grimler.se>
|
||||
Date: Sun, 10 Aug 2025 08:30:07 +0200
|
||||
Subject: [PATCH] trats: clk: enable most of CLK_GATE_BLOCK
|
||||
|
||||
Without these individual bits linux hangs when initialising different
|
||||
nodes, specifically when reading clk values.
|
||||
|
||||
BIT_BLOCK_CLK_LCD0 is needed for mdma1 (dma-controller@12850000).
|
||||
BIT_BLOCK_CLK_MFC is needed for mfc_l (sysmmu@13620000).
|
||||
BIT_BLOCK_CLK_TV is needed for sysmmu_tv (sysmmu@12e20000).
|
||||
BIT_BLOCK_CLK_CAM is needed for sysmmu_fimc0 (sysmmu@11a20000).
|
||||
BIT_BLOCK_CLK_LCD1 is needed for sysmmu_fimd1 (sysmmu@12220000).
|
||||
BIT_BLOCK_CLK_G3D is needed by touchscreen, without it linux hangs
|
||||
after ~35 s when setting up touchscreen.
|
||||
---
|
||||
board/samsung/trats/setup.h | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/board/samsung/trats/setup.h b/board/samsung/trats/setup.h
|
||||
index 739bdf95f8c6..744c4b900e60 100644
|
||||
--- a/board/samsung/trats/setup.h
|
||||
+++ b/board/samsung/trats/setup.h
|
||||
@@ -609,7 +609,13 @@
|
||||
| (CLK_EN << BIT_PERIL_CLK_SLIMBUS)))
|
||||
#define CLK_GATE_IP_PERIR_VAL (CLK_GATE_IP_PERIR_ALL_DIS \
|
||||
| ~((CLK_EN << BIT_PERIR_CLK_KEYIF)))
|
||||
-#define CLK_GATE_BLOCK_VAL CLK_GATE_BLOCK_ALL_DIS
|
||||
+#define CLK_GATE_BLOCK_VAL (CLK_GATE_BLOCK_ALL_DIS \
|
||||
+ | (CLK_EN << BIT_BLOCK_CLK_LCD0)\
|
||||
+ | (CLK_EN << BIT_BLOCK_CLK_MFC)\
|
||||
+ | (CLK_EN << BIT_BLOCK_CLK_TV)\
|
||||
+ | (CLK_EN << BIT_BLOCK_CLK_CAM)\
|
||||
+ | (CLK_EN << BIT_BLOCK_CLK_LCD1)\
|
||||
+ | (CLK_EN << BIT_BLOCK_CLK_G3D))
|
||||
|
||||
/* PS_HOLD: Data Hight, Output En */
|
||||
#define BIT_DAT 8
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
maintainer="Henrik Grimler <henrik@grimler.se>"
|
||||
pkgname=u-boot-samsung-i9100
|
||||
pkgver=2025.10_rc2
|
||||
pkgrel=1
|
||||
pkgver=2026.07_rc4
|
||||
pkgrel=0
|
||||
pkgdesc="u-boot bootloader for i9100 (close to mainline)"
|
||||
url="https://www.denx.de/wiki/U-Boot/"
|
||||
arch="armv7"
|
||||
|
|
@ -9,6 +9,7 @@ license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause WITH eCos-exception-
|
|||
ISC LGPL-2.0-only LGPL-2.1-only X11"
|
||||
options="!check !strip !tracedeps pmb:cross-native" # no tests
|
||||
makedepends="
|
||||
bash
|
||||
bc
|
||||
bison
|
||||
dtc
|
||||
|
|
@ -24,19 +25,19 @@ makedepends="
|
|||
swig
|
||||
util-linux-dev
|
||||
"
|
||||
_tag="v${pkgver//_/-}"
|
||||
_tag="v${pkgver//_/-}-exynos4-i9100_(trats-mod)"
|
||||
source="
|
||||
https://gitlab.com/u-boot/u-boot/-/archive/${_tag}/u-boot-${_tag}.tar.bz2
|
||||
0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch
|
||||
0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch
|
||||
0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch
|
||||
0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch
|
||||
0005-configs-trats-add-some-variables-necessary-for-extli.patch
|
||||
0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch
|
||||
0007-configs-trats-increase-env_size.patch
|
||||
0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch
|
||||
https://gitlab.com/exynos4-mainline/u-boot/-/archive/$_tag/u-boot-$_tag.tar.bz2
|
||||
"
|
||||
builddir="$srcdir/u-boot-$_tag"
|
||||
builddir="$srcdir/u-boot-$pkgver"
|
||||
|
||||
prepare() {
|
||||
# Avoid having a folder with ( ) in filename, which u-boot
|
||||
# does not handle well
|
||||
mv "$srcdir/u-boot-$_tag" "$srcdir/u-boot-$pkgver"
|
||||
|
||||
default_prepare
|
||||
}
|
||||
|
||||
build() {
|
||||
touch include/config.h
|
||||
|
|
@ -53,13 +54,5 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
2b06e462f77131bdb303a23e92d1086d0b8ffd4fd98ead1e3700d3b5eea5857478f63c98dc4760f2d9199750ac549cb5367cd6162d20c26333b92dbb5eab2361 u-boot-v2025.10-rc2.tar.bz2
|
||||
b85b61b5c83adb11fc4ed91092dd73cdf7f8a92558071856b6c3491ee293a3000736bc0bf6c0164a56098754cda49431c023e5adc344ca7df098069da2e1e5a5 0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch
|
||||
0d54643ce6670116bc130bca71c500e0e3af956f917544e6574878091e7ddfb96753eea34686a8c81d297cdf75a3beba67a26735cfb601bfb5e3cdceb3a97e0c 0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch
|
||||
68ac00258f05b0e266b35c5406571dfde69a5aae37468e659f5cd1430ea3af5a92b527592b46d90af7cc704782f9ced570fbb76dafa2e83d2a6429b4fee9862b 0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch
|
||||
9960e08783dc35acfc25374c5f2e2a8b3a091e42474de505d860335c8ac90d05ceae746bac3abe6a2a6d3f8dcac5242c95f2aea14412cdfda0d1dcd874f52744 0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch
|
||||
5e334ed2378688f85e6634bcddbe22ac5a2c2eb463e86965a84daececb8ddc0a3eef75bf1700de210c433e65087707c864ff2d1829e99f1baeee6a42ad6071f8 0005-configs-trats-add-some-variables-necessary-for-extli.patch
|
||||
52f1c15fc74d574613823380d41ba635f5e806470956eca0e08724af182788d8545011946599bf8306ce99136c55be7e291c606a10bf75a58b3a857eee8f0c05 0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch
|
||||
6f5a0a3e068ba60ca557cdf1b449c769f7ca3763cf32cc13e05ec06d7f56c732e4073e87a79fabf73300b5d541b6046d30e355bc07039dedba5a5bc8a6726ffa 0007-configs-trats-increase-env_size.patch
|
||||
6d28220ddb972fc9bc14cd9396feaf9a7a15e7b87c81af02f739f621f07e37b24e3e8da2015bec1f4557f49c43670e367618a39abd686fb18e1433c3a6be918d 0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch
|
||||
5045f7dbfb8db6ba07080959940378e18aaa6ce39c56d8fccff4580045d03bafd5705bf9fbb49ab2df441ac36c1deb243b1cf9be7d0ff253f27c118db3daa48a u-boot-v2026.07-rc4-exynos4-i9100_(trats-mod).tar.bz2
|
||||
"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue