diff options
author | Jaehoon Chung <jh80.chung@samsung.com> | 2017-03-30 21:29:59 +0900 |
---|---|---|
committer | Minkyu Kang <mk7.kang@samsung.com> | 2017-04-03 11:35:38 +0900 |
commit | 883c19a7798ec1edf050431e9d2d816163854cfb (patch) | |
tree | 9e21ee2fd21f4e3c58a5ae20c71d17a468c1cb0e /board/samsung/trats/trats.c | |
parent | 5dfbd7bad8b3db6034e6bdcb449f08ec848e64fd (diff) |
board: samsung: trats: convert to driver model for controlling phy
Convert to driver model for controlling phy.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Diffstat (limited to 'board/samsung/trats/trats.c')
-rw-r--r-- | board/samsung/trats/trats.c | 75 |
1 files changed, 48 insertions, 27 deletions
diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c index fa297c3d41..be5e2e2710 100644 --- a/board/samsung/trats/trats.c +++ b/board/samsung/trats/trats.c @@ -23,6 +23,7 @@ #include <power/max8997_muic.h> #include <power/battery.h> #include <power/max17042_fg.h> +#include <power/pmic.h> #include <libtizen.h> #include <usb.h> #include <usb_mass_storage.h> @@ -232,39 +233,59 @@ static void check_hw_revision(void) #ifdef CONFIG_USB_GADGET static int s5pc210_phy_control(int on) { -#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */ - int ret = 0; - u32 val = 0; - struct pmic *p = pmic_get("MAX8997_PMIC"); - if (!p) - return -ENODEV; + struct udevice *dev; + int reg, ret; - if (pmic_probe(p)) - return -1; + ret = pmic_get("max8997-pmic", &dev); + if (ret) + return ret; if (on) { - ret |= pmic_set_output(p, MAX8997_REG_SAFEOUTCTRL, - ENSAFEOUT1, LDO_ON); - ret |= pmic_reg_read(p, MAX8997_REG_LDO3CTRL, &val); - ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, EN_LDO | val); - - ret |= pmic_reg_read(p, MAX8997_REG_LDO8CTRL, &val); - ret |= pmic_reg_write(p, MAX8997_REG_LDO8CTRL, EN_LDO | val); + reg = pmic_reg_read(dev, MAX8997_REG_SAFEOUTCTRL); + reg |= ENSAFEOUT1; + ret = pmic_reg_write(dev, MAX8997_REG_SAFEOUTCTRL, reg); + if (ret) { + puts("MAX8997 setting error!\n"); + return ret; + } + reg = pmic_reg_read(dev, MAX8997_REG_LDO3CTRL); + reg |= EN_LDO; + ret = pmic_reg_write(dev, MAX8997_REG_LDO3CTRL, reg); + if (ret) { + puts("MAX8997 setting error!\n"); + return ret; + } + reg = pmic_reg_read(dev, MAX8997_REG_LDO8CTRL); + reg |= EN_LDO; + ret = pmic_reg_write(dev, MAX8997_REG_LDO8CTRL, reg); + if (ret) { + puts("MAX8997 setting error!\n"); + return ret; + } } else { - ret |= pmic_reg_read(p, MAX8997_REG_LDO8CTRL, &val); - ret |= pmic_reg_write(p, MAX8997_REG_LDO8CTRL, DIS_LDO | val); - - ret |= pmic_reg_read(p, MAX8997_REG_LDO3CTRL, &val); - ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, DIS_LDO | val); - ret |= pmic_set_output(p, MAX8997_REG_SAFEOUTCTRL, - ENSAFEOUT1, LDO_OFF); - } + reg = pmic_reg_read(dev, MAX8997_REG_LDO8CTRL); + reg &= DIS_LDO; + ret = pmic_reg_write(dev, MAX8997_REG_LDO8CTRL, reg); + if (ret) { + puts("MAX8997 setting error!\n"); + return ret; + } + reg = pmic_reg_read(dev, MAX8997_REG_LDO3CTRL); + reg &= DIS_LDO; + ret = pmic_reg_write(dev, MAX8997_REG_LDO3CTRL, reg); + if (ret) { + puts("MAX8997 setting error!\n"); + return ret; + } + reg = pmic_reg_read(dev, MAX8997_REG_SAFEOUTCTRL); + reg &= ~ENSAFEOUT1; + ret = pmic_reg_write(dev, MAX8997_REG_SAFEOUTCTRL, reg); + if (ret) { + puts("MAX8997 setting error!\n"); + return ret; + } - if (ret) { - puts("MAX8997 LDO setting error!\n"); - return -1; } -#endif return 0; } |