mirror of
https://xff.cz/git/u-boot/
synced 2025-09-25 20:41:16 +02:00
phy: omap_usb2: Add support for am437x
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
committed by
Marek Vasut
parent
0f46fb58a2
commit
512a84c444
@@ -19,6 +19,11 @@
|
|||||||
#define OMAP_DEV_PHY_PD BIT(0)
|
#define OMAP_DEV_PHY_PD BIT(0)
|
||||||
#define OMAP_USB2_PHY_PD BIT(28)
|
#define OMAP_USB2_PHY_PD BIT(28)
|
||||||
|
|
||||||
|
#define AM437X_USB2_PHY_PD BIT(0)
|
||||||
|
#define AM437X_USB2_OTG_PD BIT(1)
|
||||||
|
#define AM437X_USB2_OTGVDET_EN BIT(19)
|
||||||
|
#define AM437X_USB2_OTGSESSEND_EN BIT(20)
|
||||||
|
|
||||||
#define USB2PHY_DISCON_BYP_LATCH BIT(31)
|
#define USB2PHY_DISCON_BYP_LATCH BIT(31)
|
||||||
#define USB2PHY_ANA_CONFIG1 (0x4c)
|
#define USB2PHY_ANA_CONFIG1 (0x4c)
|
||||||
|
|
||||||
@@ -60,6 +65,15 @@ static const struct usb_phy_data dra7x_usb2_phy2_data = {
|
|||||||
.power_off = OMAP_USB2_PHY_PD,
|
.power_off = OMAP_USB2_PHY_PD,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct usb_phy_data am437x_usb2_data = {
|
||||||
|
.label = "am437x_usb2",
|
||||||
|
.flags = 0,
|
||||||
|
.mask = AM437X_USB2_PHY_PD | AM437X_USB2_OTG_PD |
|
||||||
|
AM437X_USB2_OTGVDET_EN | AM437X_USB2_OTGSESSEND_EN,
|
||||||
|
.power_on = AM437X_USB2_OTGVDET_EN | AM437X_USB2_OTGSESSEND_EN,
|
||||||
|
.power_off = AM437X_USB2_PHY_PD | AM437X_USB2_OTG_PD,
|
||||||
|
};
|
||||||
|
|
||||||
static const struct udevice_id omap_usb2_id_table[] = {
|
static const struct udevice_id omap_usb2_id_table[] = {
|
||||||
{
|
{
|
||||||
.compatible = "ti,omap5-usb2",
|
.compatible = "ti,omap5-usb2",
|
||||||
@@ -73,6 +87,10 @@ static const struct udevice_id omap_usb2_id_table[] = {
|
|||||||
.compatible = "ti,dra7x-usb2-phy2",
|
.compatible = "ti,dra7x-usb2-phy2",
|
||||||
.data = (ulong)&dra7x_usb2_phy2_data,
|
.data = (ulong)&dra7x_usb2_phy2_data,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.compatible = "ti,am437x-usb2",
|
||||||
|
.data = (ulong)&am437x_usb2_data,
|
||||||
|
},
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -170,20 +188,25 @@ int omap_usb2_phy_probe(struct udevice *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
regmap = syscon_regmap_lookup_by_phandle(dev, "syscon-phy-power");
|
regmap = syscon_regmap_lookup_by_phandle(dev, "syscon-phy-power");
|
||||||
if (IS_ERR(regmap)) {
|
if (!IS_ERR(regmap)) {
|
||||||
printf("can't get regmap (err %ld)\n", PTR_ERR(regmap));
|
priv->pwr_regmap = regmap;
|
||||||
return PTR_ERR(regmap);
|
rc = dev_read_u32_array(dev, "syscon-phy-power", tmp, 2);
|
||||||
|
if (rc) {
|
||||||
|
printf("couldn't get power reg. offset (err %d)\n", rc);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
priv->pwr_reg_offset = tmp[1];
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
priv->pwr_regmap = regmap;
|
regmap = syscon_regmap_lookup_by_phandle(dev, "ctrl-module");
|
||||||
|
if (!IS_ERR(regmap)) {
|
||||||
rc = dev_read_u32_array(dev, "syscon-phy-power", tmp, 2);
|
priv->pwr_regmap = regmap;
|
||||||
if (rc) {
|
priv->pwr_reg_offset = 0;
|
||||||
printf("couldn't get power reg. offset (err %d)\n", rc);
|
return 0;
|
||||||
return rc;
|
|
||||||
}
|
}
|
||||||
priv->pwr_reg_offset = tmp[1];
|
|
||||||
|
|
||||||
return 0;
|
printf("can't get regmap (err %ld)\n", PTR_ERR(regmap));
|
||||||
|
return PTR_ERR(regmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
U_BOOT_DRIVER(omap_usb2_phy) = {
|
U_BOOT_DRIVER(omap_usb2_phy) = {
|
||||||
|
Reference in New Issue
Block a user