/* Boot Time Thermal Analysis for SoC temperature threshold breach */ static void boot_temp_check(void) { int temp; switch (tmu_monitor(&temp)) { case TMU_STATUS_NORMAL: break; case TMU_STATUS_TRIPPED: /* * Status TRIPPED ans WARNING means corresponding threshold * breach */ puts("EXYNOS_TMU: TRIPPING! Device power going down ...\n"); set_ps_hold_ctrl(); hang(); break; case TMU_STATUS_WARNING: puts("EXYNOS_TMU: WARNING! Temperature very high\n"); break; case TMU_STATUS_INIT: /* * TMU_STATUS_INIT means something is wrong with temperature * sensing and TMU status was changed back from NORMAL to INIT. */ puts("EXYNOS_TMU: WARNING! Temperature sensing not done\n"); break; default: debug("EXYNOS_TMU: Unknown TMU state\n"); } }
int do_lowlevel_init(void) { uint32_t reset_status; int actions = 0; arch_cpu_init(); reset_status = get_reset_status(); switch (reset_status) { case S5P_CHECK_SLEEP: actions = DO_CLOCKS | DO_WAKEUP; break; case S5P_CHECK_DIDLE: case S5P_CHECK_LPA: actions = DO_WAKEUP; break; default: /* This is a normal boot (not a wake from sleep) */ actions = DO_CLOCKS | DO_MEM_RESET | DO_POWER; } if (actions & DO_POWER) set_ps_hold_ctrl(); if (actions & DO_CLOCKS) { //system_clock_init(); //mem_ctrl_init(actions & DO_MEM_RESET); //tzpc_init(); } return actions & DO_WAKEUP; }
int power_init_board(void) { struct pmic *p; set_ps_hold_ctrl(); i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); if (pmic_init(I2C_PMIC)) return -1; p = pmic_get("MAX77686_PMIC"); if (!p) return -ENODEV; if (pmic_probe(p)) return -1; if (pmic_reg_update(p, MAX77686_REG_PMIC_32KHZ, MAX77686_32KHCP_EN)) return -1; if (pmic_reg_update(p, MAX77686_REG_PMIC_BBAT, MAX77686_BBCHOSTEN | MAX77686_BBCVS_3_5V)) return -1; /* VDD_MIF */ if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK1OUT, MAX77686_BUCK1OUT_1_05V)) { debug("%s: PMIC %d register write failed\n", __func__, MAX77686_REG_PMIC_BUCK1OUT); return -1; } if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK1CRTL, MAX77686_BUCK1CTRL_EN)) return -1; /* VDD_ARM */ if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK2DVS1, MAX77686_BUCK2DVS1_1_3V)) { debug("%s: PMIC %d register write failed\n", __func__, MAX77686_REG_PMIC_BUCK2DVS1); return -1; } if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK2CTRL1, MAX77686_BUCK2CTRL_ON)) return -1; /* VDD_INT */ if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK3DVS1, MAX77686_BUCK3DVS1_1_0125V)) { debug("%s: PMIC %d register write failed\n", __func__, MAX77686_REG_PMIC_BUCK3DVS1); return -1; } if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK3CTRL, MAX77686_BUCK3CTRL_ON)) return -1; /* VDD_G3D */ if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK4DVS1, MAX77686_BUCK4DVS1_1_2V)) { debug("%s: PMIC %d register write failed\n", __func__, MAX77686_REG_PMIC_BUCK4DVS1); return -1; } if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK4CTRL1, MAX77686_BUCK3CTRL_ON)) return -1; /* VDD_LDO2 */ if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO2CTRL1, MAX77686_LD02CTRL1_1_5V | EN_LDO)) return -1; /* VDD_LDO3 */ if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO3CTRL1, MAX77686_LD03CTRL1_1_8V | EN_LDO)) return -1; /* VDD_LDO5 */ if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO5CTRL1, MAX77686_LD05CTRL1_1_8V | EN_LDO)) return -1; /* VDD_LDO10 */ if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO10CTRL1, MAX77686_LD10CTRL1_1_8V | EN_LDO)) return -1; return 0; }
int power_init_board(void) { set_ps_hold_ctrl(); return exynos_power_init(); }
int power_init_board(void) { set_ps_hold_ctrl(); return 0; }