stmmac: dwmac-sti: Pass sysconfig register offset via syscon dt property.
Based on Arnds review comments here https://lkml.org/lkml/2014/11/13/161, we should not be mixing address spaces in the reg property like this driver currently does. This patch updates the driver, dt docs and also the existing dt nodes to pass the sysconfig offset in the syscon dt property. This patch breaks DT compatibility! But this platform is considered WIP, and is only used by a few developers who are upstreaming support for it. This change has been done as a single atomic commit to ensure it is bisectable. Signed-off-by: Peter Griffin <peter.griffin@linaro.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
304a11e867
commit
9b1a6d36c3
@@ -122,7 +122,7 @@ struct sti_dwmac {
|
||||
bool ext_phyclk; /* Clock from external PHY */
|
||||
u32 tx_retime_src; /* TXCLK Retiming*/
|
||||
struct clk *clk; /* PHY clock */
|
||||
int ctrl_reg; /* GMAC glue-logic control register */
|
||||
u32 ctrl_reg; /* GMAC glue-logic control register */
|
||||
int clk_sel_reg; /* GMAC ext clk selection register */
|
||||
struct device *dev;
|
||||
struct regmap *regmap;
|
||||
@@ -285,11 +285,6 @@ static int sti_dwmac_parse_data(struct sti_dwmac *dwmac,
|
||||
if (!np)
|
||||
return -EINVAL;
|
||||
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sti-ethconf");
|
||||
if (!res)
|
||||
return -ENODATA;
|
||||
dwmac->ctrl_reg = res->start;
|
||||
|
||||
/* clk selection from extra syscfg register */
|
||||
dwmac->clk_sel_reg = -ENXIO;
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sti-clkconf");
|
||||
@@ -300,6 +295,12 @@ static int sti_dwmac_parse_data(struct sti_dwmac *dwmac,
|
||||
if (IS_ERR(regmap))
|
||||
return PTR_ERR(regmap);
|
||||
|
||||
err = of_property_read_u32_index(np, "st,syscon", 1, &dwmac->ctrl_reg);
|
||||
if (err) {
|
||||
dev_err(dev, "Can't get sysconfig ctrl offset (%d)\n", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
dwmac->dev = dev;
|
||||
dwmac->interface = of_get_phy_mode(np);
|
||||
dwmac->regmap = regmap;
|
||||
|
Reference in New Issue
Block a user