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>
This commit is contained in:
Jaehoon Chung
2017-03-30 21:29:59 +09:00
committed by Minkyu Kang
parent 5dfbd7bad8
commit 883c19a779

View File

@@ -23,6 +23,7 @@
#include <power/max8997_muic.h> #include <power/max8997_muic.h>
#include <power/battery.h> #include <power/battery.h>
#include <power/max17042_fg.h> #include <power/max17042_fg.h>
#include <power/pmic.h>
#include <libtizen.h> #include <libtizen.h>
#include <usb.h> #include <usb.h>
#include <usb_mass_storage.h> #include <usb_mass_storage.h>
@@ -232,40 +233,60 @@ static void check_hw_revision(void)
#ifdef CONFIG_USB_GADGET #ifdef CONFIG_USB_GADGET
static int s5pc210_phy_control(int on) static int s5pc210_phy_control(int on)
{ {
#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */ struct udevice *dev;
int ret = 0; int reg, ret;
u32 val = 0;
struct pmic *p = pmic_get("MAX8997_PMIC");
if (!p)
return -ENODEV;
if (pmic_probe(p)) ret = pmic_get("max8997-pmic", &dev);
return -1; if (ret)
return ret;
if (on) { if (on) {
ret |= pmic_set_output(p, MAX8997_REG_SAFEOUTCTRL, reg = pmic_reg_read(dev, MAX8997_REG_SAFEOUTCTRL);
ENSAFEOUT1, LDO_ON); reg |= ENSAFEOUT1;
ret |= pmic_reg_read(p, MAX8997_REG_LDO3CTRL, &val); ret = pmic_reg_write(dev, MAX8997_REG_SAFEOUTCTRL, reg);
ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, EN_LDO | val); if (ret) {
puts("MAX8997 setting error!\n");
ret |= pmic_reg_read(p, MAX8997_REG_LDO8CTRL, &val); return ret;
ret |= pmic_reg_write(p, MAX8997_REG_LDO8CTRL, EN_LDO | val); }
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 { } else {
ret |= pmic_reg_read(p, MAX8997_REG_LDO8CTRL, &val); reg = pmic_reg_read(dev, MAX8997_REG_LDO8CTRL);
ret |= pmic_reg_write(p, MAX8997_REG_LDO8CTRL, DIS_LDO | val); 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;
}
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);
} }
if (ret) {
puts("MAX8997 LDO setting error!\n");
return -1;
}
#endif
return 0; return 0;
} }