dm: core: Replace of_offset with accessor
At present devices use a simple integer offset to record the device tree node associated with the device. In preparation for supporting a live device tree, which uses a node pointer instead, refactor existing code to access this field through an inline function. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -857,7 +857,7 @@ static int ag7xxx_get_phy_iface_offset(struct udevice *dev)
|
||||
{
|
||||
int offset;
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset, "phy");
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev_of_offset(dev), "phy");
|
||||
if (offset <= 0) {
|
||||
debug("%s: PHY OF node not found (ret=%i)\n", __func__, offset);
|
||||
return -EINVAL;
|
||||
|
||||
@@ -576,7 +576,7 @@ static int altera_tse_probe(struct udevice *dev)
|
||||
struct eth_pdata *pdata = dev_get_platdata(dev);
|
||||
struct altera_tse_priv *priv = dev_get_priv(dev);
|
||||
void *blob = (void *)gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
const char *list, *end;
|
||||
const fdt32_t *cell;
|
||||
void *base, *desc_mem = NULL;
|
||||
@@ -676,7 +676,8 @@ static int altera_tse_ofdata_to_platdata(struct udevice *dev)
|
||||
const char *phy_mode;
|
||||
|
||||
pdata->phy_interface = -1;
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
|
||||
NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (pdata->phy_interface == -1) {
|
||||
|
||||
@@ -20,7 +20,7 @@ static int davinci_emac_3517_get_macid(struct udevice *dev, u16 offset,
|
||||
int slave, u8 *mac_addr)
|
||||
{
|
||||
void *fdt = (void *)gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
u32 macid_lsb;
|
||||
u32 macid_msb;
|
||||
fdt32_t gmii = 0;
|
||||
@@ -60,7 +60,7 @@ static int cpsw_am33xx_cm_get_macid(struct udevice *dev, u16 offset, int slave,
|
||||
u8 *mac_addr)
|
||||
{
|
||||
void *fdt = (void *)gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
u32 macid_lo;
|
||||
u32 macid_hi;
|
||||
fdt32_t gmii = 0;
|
||||
|
||||
@@ -981,7 +981,7 @@ static int cpsw_phy_init(struct cpsw_priv *priv, struct cpsw_slave *slave)
|
||||
|
||||
#ifdef CONFIG_DM_ETH
|
||||
if (slave->data->phy_of_handle)
|
||||
phydev->dev->of_offset = slave->data->phy_of_handle;
|
||||
dev_set_of_offset(phydev->dev, slave->data->phy_of_handle);
|
||||
#endif
|
||||
|
||||
priv->phydev = phydev;
|
||||
@@ -1286,7 +1286,7 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
const char *phy_mode;
|
||||
const char *phy_sel_compat = NULL;
|
||||
const void *fdt = gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
int subnode;
|
||||
int slave_index = 0;
|
||||
int active_slave;
|
||||
|
||||
@@ -728,7 +728,8 @@ int designware_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
|
||||
pdata->iobase = dev_get_addr(dev);
|
||||
pdata->phy_interface = -1;
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
|
||||
NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (pdata->phy_interface == -1) {
|
||||
@@ -737,19 +738,19 @@ int designware_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
}
|
||||
|
||||
pdata->max_speed = 0;
|
||||
cell = fdt_getprop(gd->fdt_blob, dev->of_offset, "max-speed", NULL);
|
||||
cell = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "max-speed", NULL);
|
||||
if (cell)
|
||||
pdata->max_speed = fdt32_to_cpu(*cell);
|
||||
|
||||
#ifdef CONFIG_DM_GPIO
|
||||
if (fdtdec_get_bool(gd->fdt_blob, dev->of_offset,
|
||||
if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
|
||||
"snps,reset-active-low"))
|
||||
reset_flags |= GPIOD_ACTIVE_LOW;
|
||||
|
||||
ret = gpio_request_by_name(dev, "snps,reset-gpio", 0,
|
||||
&priv->reset_gpio, reset_flags);
|
||||
if (ret == 0) {
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, dev->of_offset,
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, dev_of_offset(dev),
|
||||
"snps,reset-delays-us", dw_pdata->reset_delays, 3);
|
||||
} else if (ret == -ENOENT) {
|
||||
ret = 0;
|
||||
|
||||
@@ -1277,7 +1277,8 @@ static int fecmxc_ofdata_to_platdata(struct udevice *dev)
|
||||
priv->eth = (struct ethernet_regs *)pdata->iobase;
|
||||
|
||||
pdata->phy_interface = -1;
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
|
||||
NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (pdata->phy_interface == -1) {
|
||||
|
||||
@@ -36,9 +36,9 @@ static int gmac_rockchip_ofdata_to_platdata(struct udevice *dev)
|
||||
{
|
||||
struct gmac_rockchip_platdata *pdata = dev_get_platdata(dev);
|
||||
|
||||
pdata->tx_delay = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
|
||||
pdata->tx_delay = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
|
||||
"tx-delay", 0x30);
|
||||
pdata->rx_delay = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
|
||||
pdata->rx_delay = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
|
||||
"rx-delay", 0x10);
|
||||
|
||||
return designware_eth_ofdata_to_platdata(dev);
|
||||
|
||||
@@ -1099,7 +1099,7 @@ static int ks2_sl_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
struct ks2_eth_priv *priv = dev_get_priv(dev);
|
||||
struct eth_pdata *pdata = dev_get_platdata(dev);
|
||||
const void *fdt = gd->fdt_blob;
|
||||
int slave = dev->of_offset;
|
||||
int slave = dev_of_offset(dev);
|
||||
int interfaces;
|
||||
int gbe;
|
||||
int netcp_devices;
|
||||
@@ -1126,13 +1126,13 @@ static int ks2_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
int netcp_devices;
|
||||
int gbe;
|
||||
|
||||
netcp_devices = fdt_subnode_offset(fdt, dev->of_offset,
|
||||
netcp_devices = fdt_subnode_offset(fdt, dev_of_offset(dev),
|
||||
"netcp-devices");
|
||||
gbe = fdt_subnode_offset(fdt, netcp_devices, "gbe");
|
||||
|
||||
ks2_eth_bind_slaves(dev, gbe, &gbe_0);
|
||||
|
||||
ks2_eth_parse_slave_interface(dev->of_offset, gbe_0, priv, pdata);
|
||||
ks2_eth_parse_slave_interface(dev_of_offset(dev), gbe_0, priv, pdata);
|
||||
|
||||
pdata->iobase = dev_get_addr(dev);
|
||||
|
||||
|
||||
@@ -999,7 +999,8 @@ static int macb_eth_probe(struct udevice *dev)
|
||||
#ifdef CONFIG_DM_ETH
|
||||
const char *phy_mode;
|
||||
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
|
||||
NULL);
|
||||
if (phy_mode)
|
||||
macb->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (macb->phy_interface == -1) {
|
||||
|
||||
@@ -1611,7 +1611,7 @@ static int mvneta_probe(struct udevice *dev)
|
||||
struct eth_pdata *pdata = dev_get_platdata(dev);
|
||||
struct mvneta_port *pp = dev_get_priv(dev);
|
||||
void *blob = (void *)gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
struct mii_dev *bus;
|
||||
unsigned long addr;
|
||||
void *bd_space;
|
||||
@@ -1691,7 +1691,8 @@ static int mvneta_ofdata_to_platdata(struct udevice *dev)
|
||||
|
||||
/* Get phy-mode / phy_interface from DT */
|
||||
pdata->phy_interface = -1;
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
|
||||
NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (pdata->phy_interface == -1) {
|
||||
|
||||
@@ -4047,7 +4047,7 @@ static int mvpp2_probe(struct udevice *dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
return mvpp2_port_probe(dev, port, dev->of_offset, priv,
|
||||
return mvpp2_port_probe(dev, port, dev_of_offset(dev), priv,
|
||||
&buffer_loc.first_rxq);
|
||||
}
|
||||
|
||||
@@ -4138,7 +4138,7 @@ static int mvpp2_base_probe(struct udevice *dev)
|
||||
static int mvpp2_base_bind(struct udevice *parent)
|
||||
{
|
||||
const void *blob = gd->fdt_blob;
|
||||
int node = parent->of_offset;
|
||||
int node = dev_of_offset(parent);
|
||||
struct uclass_driver *drv;
|
||||
struct udevice *dev;
|
||||
struct eth_pdata *plat;
|
||||
@@ -4169,7 +4169,7 @@ static int mvpp2_base_bind(struct udevice *parent)
|
||||
|
||||
/* Create child device UCLASS_ETH and bind it */
|
||||
device_bind(parent, &mvpp2_driver, name, plat, subnode, &dev);
|
||||
dev->of_offset = subnode;
|
||||
dev_set_of_offset(dev, subnode);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -244,7 +244,7 @@ static int ksz90x1_of_config_group(struct phy_device *phydev,
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
for (i = 0; i < ofcfg->grpsz; i++) {
|
||||
val[i] = fdtdec_get_uint(gd->fdt_blob, dev->of_offset,
|
||||
val[i] = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
|
||||
ofcfg->grp[i].name, -1);
|
||||
offset = ofcfg->grp[i].off;
|
||||
if (val[i] == -1) {
|
||||
|
||||
@@ -167,13 +167,13 @@ static int dp83867_of_init(struct phy_device *phydev)
|
||||
struct dp83867_private *dp83867 = phydev->priv;
|
||||
struct udevice *dev = phydev->dev;
|
||||
|
||||
dp83867->rx_id_delay = fdtdec_get_uint(gd->fdt_blob, dev->of_offset,
|
||||
dp83867->rx_id_delay = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
|
||||
"ti,rx-internal-delay", -1);
|
||||
|
||||
dp83867->tx_id_delay = fdtdec_get_uint(gd->fdt_blob, dev->of_offset,
|
||||
dp83867->tx_id_delay = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
|
||||
"ti,tx-internal-delay", -1);
|
||||
|
||||
dp83867->fifo_depth = fdtdec_get_uint(gd->fdt_blob, dev->of_offset,
|
||||
dp83867->fifo_depth = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
|
||||
"ti,fifo-depth", -1);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -104,7 +104,7 @@ static int xilinxphy_of_init(struct phy_device *phydev)
|
||||
u32 phytype;
|
||||
|
||||
debug("%s\n", __func__);
|
||||
phytype = fdtdec_get_int(gd->fdt_blob, phydev->dev->of_offset,
|
||||
phytype = fdtdec_get_int(gd->fdt_blob, dev_of_offset(phydev->dev),
|
||||
"phy-type", -1);
|
||||
if (phytype == XAE_PHY_TYPE_1000BASE_X)
|
||||
phydev->flags |= XAE_PHY_TYPE_1000BASE_X;
|
||||
|
||||
@@ -535,7 +535,8 @@ static int pic32_eth_probe(struct udevice *dev)
|
||||
int offset = 0;
|
||||
int phy_addr = -1;
|
||||
|
||||
addr = fdtdec_get_addr_size(gd->fdt_blob, dev->of_offset, "reg", &size);
|
||||
addr = fdtdec_get_addr_size(gd->fdt_blob, dev_of_offset(dev), "reg",
|
||||
&size);
|
||||
if (addr == FDT_ADDR_T_NONE)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -544,7 +545,8 @@ static int pic32_eth_probe(struct udevice *dev)
|
||||
|
||||
/* get phy mode */
|
||||
pdata->phy_interface = -1;
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
|
||||
NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (pdata->phy_interface == -1) {
|
||||
@@ -553,13 +555,13 @@ static int pic32_eth_probe(struct udevice *dev)
|
||||
}
|
||||
|
||||
/* get phy addr */
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev_of_offset(dev),
|
||||
"phy-handle");
|
||||
if (offset > 0)
|
||||
phy_addr = fdtdec_get_int(gd->fdt_blob, offset, "reg", -1);
|
||||
|
||||
/* phy reset gpio */
|
||||
gpio_request_by_name_nodev(gd->fdt_blob, dev->of_offset,
|
||||
gpio_request_by_name_nodev(gd->fdt_blob, dev_of_offset(dev),
|
||||
"reset-gpios", 0,
|
||||
&priv->rst_gpio, GPIOD_IS_OUT);
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ static int sb_eth_raw_start(struct udevice *dev)
|
||||
|
||||
debug("eth_sandbox_raw: Start\n");
|
||||
|
||||
interface = fdt_getprop(gd->fdt_blob, dev->of_offset,
|
||||
interface = fdt_getprop(gd->fdt_blob, dev_of_offset(dev),
|
||||
"host-raw-interface", NULL);
|
||||
if (interface == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -60,8 +60,9 @@ static int sb_eth_start(struct udevice *dev)
|
||||
|
||||
debug("eth_sandbox: Start\n");
|
||||
|
||||
fdtdec_get_byte_array(gd->fdt_blob, dev->of_offset, "fake-host-hwaddr",
|
||||
priv->fake_host_hwaddr, ARP_HLEN);
|
||||
fdtdec_get_byte_array(gd->fdt_blob, dev_of_offset(dev),
|
||||
"fake-host-hwaddr", priv->fake_host_hwaddr,
|
||||
ARP_HLEN);
|
||||
priv->recv_packet_buffer = net_rx_packets[0];
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -442,7 +442,7 @@ static int parse_phy_pins(struct udevice *dev)
|
||||
const char *pin_name;
|
||||
int drive, pull, i;
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev_of_offset(dev),
|
||||
"pinctrl-0");
|
||||
if (offset < 0) {
|
||||
printf("WARNING: emac: cannot find pinctrl-0 node\n");
|
||||
@@ -716,6 +716,7 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
struct eth_pdata *pdata = dev_get_platdata(dev);
|
||||
struct emac_eth_dev *priv = dev_get_priv(dev);
|
||||
const char *phy_mode;
|
||||
int node = dev_of_offset(dev);
|
||||
int offset = 0;
|
||||
|
||||
pdata->iobase = dev_get_addr_name(dev, "emac");
|
||||
@@ -725,13 +726,13 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
priv->phyaddr = -1;
|
||||
priv->use_internal_phy = false;
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, node,
|
||||
"phy");
|
||||
if (offset > 0)
|
||||
priv->phyaddr = fdtdec_get_int(gd->fdt_blob, offset, "reg",
|
||||
-1);
|
||||
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, node, "phy-mode", NULL);
|
||||
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
@@ -751,7 +752,7 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
}
|
||||
|
||||
if (priv->variant == H3_EMAC) {
|
||||
if (fdt_getprop(gd->fdt_blob, dev->of_offset,
|
||||
if (fdt_getprop(gd->fdt_blob, node,
|
||||
"allwinner,use-internal-phy", NULL))
|
||||
priv->use_internal_phy = true;
|
||||
}
|
||||
|
||||
@@ -783,7 +783,7 @@ int tsec_probe(struct udevice *dev)
|
||||
pdata->iobase = (phys_addr_t)dev_get_addr(dev);
|
||||
priv->regs = (struct tsec *)pdata->iobase;
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev_of_offset(dev),
|
||||
"phy-handle");
|
||||
if (offset > 0) {
|
||||
reg = fdtdec_get_int(gd->fdt_blob, offset, "reg", 0);
|
||||
@@ -802,7 +802,7 @@ int tsec_probe(struct udevice *dev)
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev_of_offset(dev),
|
||||
"tbi-handle");
|
||||
if (offset > 0) {
|
||||
reg = fdtdec_get_int(gd->fdt_blob, offset, "reg",
|
||||
@@ -812,7 +812,7 @@ int tsec_probe(struct udevice *dev)
|
||||
priv->tbiaddr = CONFIG_SYS_TBIPA_VALUE;
|
||||
}
|
||||
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset,
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev),
|
||||
"phy-connection-type", NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
|
||||
@@ -682,13 +682,14 @@ static int axi_emac_ofdata_to_platdata(struct udevice *dev)
|
||||
{
|
||||
struct eth_pdata *pdata = dev_get_platdata(dev);
|
||||
struct axidma_priv *priv = dev_get_priv(dev);
|
||||
int node = dev_of_offset(dev);
|
||||
int offset = 0;
|
||||
const char *phy_mode;
|
||||
|
||||
pdata->iobase = (phys_addr_t)dev_get_addr(dev);
|
||||
priv->iobase = (struct axi_regs *)pdata->iobase;
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, node,
|
||||
"axistream-connected");
|
||||
if (offset <= 0) {
|
||||
printf("%s: axistream is not found\n", __func__);
|
||||
@@ -705,12 +706,11 @@ static int axi_emac_ofdata_to_platdata(struct udevice *dev)
|
||||
|
||||
priv->phyaddr = -1;
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
"phy-handle");
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, node, "phy-handle");
|
||||
if (offset > 0)
|
||||
priv->phyaddr = fdtdec_get_int(gd->fdt_blob, offset, "reg", -1);
|
||||
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, node, "phy-mode", NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (pdata->phy_interface == -1) {
|
||||
|
||||
@@ -604,15 +604,15 @@ static int emaclite_ofdata_to_platdata(struct udevice *dev)
|
||||
|
||||
emaclite->phyaddr = -1;
|
||||
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev->of_offset,
|
||||
offset = fdtdec_lookup_phandle(gd->fdt_blob, dev_of_offset(dev),
|
||||
"phy-handle");
|
||||
if (offset > 0)
|
||||
emaclite->phyaddr = fdtdec_get_int(gd->fdt_blob, offset,
|
||||
"reg", -1);
|
||||
|
||||
emaclite->txpp = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
|
||||
emaclite->txpp = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
|
||||
"xlnx,tx-ping-pong", 0);
|
||||
emaclite->rxpp = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
|
||||
emaclite->rxpp = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
|
||||
"xlnx,rx-ping-pong", 0);
|
||||
|
||||
printf("EMACLITE: %lx, phyaddr %d, %d/%d\n", (ulong)emaclite->regs,
|
||||
|
||||
@@ -345,7 +345,7 @@ static int zynq_phy_init(struct udevice *dev)
|
||||
priv->phydev->advertising = priv->phydev->supported;
|
||||
|
||||
if (priv->phy_of_handle > 0)
|
||||
priv->phydev->dev->of_offset = priv->phy_of_handle;
|
||||
dev_set_of_offset(priv->phydev->dev, priv->phy_of_handle);
|
||||
|
||||
return phy_config(priv->phydev);
|
||||
}
|
||||
@@ -684,6 +684,7 @@ static int zynq_gem_ofdata_to_platdata(struct udevice *dev)
|
||||
{
|
||||
struct eth_pdata *pdata = dev_get_platdata(dev);
|
||||
struct zynq_gem_priv *priv = dev_get_priv(dev);
|
||||
int node = dev_of_offset(dev);
|
||||
const char *phy_mode;
|
||||
|
||||
pdata->iobase = (phys_addr_t)dev_get_addr(dev);
|
||||
@@ -692,13 +693,13 @@ static int zynq_gem_ofdata_to_platdata(struct udevice *dev)
|
||||
priv->emio = 0;
|
||||
priv->phyaddr = -1;
|
||||
|
||||
priv->phy_of_handle = fdtdec_lookup_phandle(gd->fdt_blob,
|
||||
dev->of_offset, "phy-handle");
|
||||
priv->phy_of_handle = fdtdec_lookup_phandle(gd->fdt_blob, node,
|
||||
"phy-handle");
|
||||
if (priv->phy_of_handle > 0)
|
||||
priv->phyaddr = fdtdec_get_int(gd->fdt_blob,
|
||||
priv->phy_of_handle, "reg", -1);
|
||||
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "phy-mode", NULL);
|
||||
phy_mode = fdt_getprop(gd->fdt_blob, node, "phy-mode", NULL);
|
||||
if (phy_mode)
|
||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||
if (pdata->phy_interface == -1) {
|
||||
@@ -707,7 +708,7 @@ static int zynq_gem_ofdata_to_platdata(struct udevice *dev)
|
||||
}
|
||||
priv->interface = pdata->phy_interface;
|
||||
|
||||
priv->emio = fdtdec_get_bool(gd->fdt_blob, dev->of_offset, "xlnx,emio");
|
||||
priv->emio = fdtdec_get_bool(gd->fdt_blob, node, "xlnx,emio");
|
||||
|
||||
printf("ZYNQ GEM: %lx, phyaddr %x, interface %s\n", (ulong)priv->iobase,
|
||||
priv->phyaddr, phy_string_for_interface(priv->interface));
|
||||
|
||||
Reference in New Issue
Block a user