* [net-next PATCH 0/4] Add support for reading macid when DT macid not found
@ 2015-09-21 10:26 Mugunthan V N
2015-09-21 10:26 ` [net-next PATCH 1/4] drivers: net: cpsw: davinci_emac: move reading mac id to common file Mugunthan V N
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Mugunthan V N @ 2015-09-21 10:26 UTC (permalink / raw)
To: netdev
Cc: linux-omap, David S . Miller, Tony Lindgren, devicetree,
Sekhar Nori, Mugunthan V N
Did a boot test on dra7-evm [1] and am437x-gp-evm [2].
Pushed a branch [3] for others to test the patch.
[1]: http://pastebin.ubuntu.com/12513420/
[2]: http://pastebin.ubuntu.com/12513428/
[3]: git://git.ti.com/~mugunthanvnm/ti-linux-kernel/linux.git cpsw-macid-read-support
Mugunthan V N (4):
drivers: net: cpsw: davinci_emac: move reading mac id to common file
drivers: net: cpsw-common: add support for reading mac address for
dra7 and am437x platforms
arm: dts: dra7: add syscon phandle to cpsw node
arm: dts: am4372: add syscon phandle to cpsw node
arch/arm/boot/dts/am4372.dtsi | 1 +
arch/arm/boot/dts/dra7.dtsi | 1 +
drivers/net/ethernet/ti/cpsw-common.c | 64 +++++++++++++++++++++++++++++-----
drivers/net/ethernet/ti/cpsw.c | 11 +++---
drivers/net/ethernet/ti/cpsw.h | 3 +-
drivers/net/ethernet/ti/davinci_emac.c | 44 ++---------------------
6 files changed, 65 insertions(+), 59 deletions(-)
--
2.6.0.rc2.10.gf4d9753
^ permalink raw reply [flat|nested] 6+ messages in thread* [net-next PATCH 1/4] drivers: net: cpsw: davinci_emac: move reading mac id to common file 2015-09-21 10:26 [net-next PATCH 0/4] Add support for reading macid when DT macid not found Mugunthan V N @ 2015-09-21 10:26 ` Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 2/4] drivers: net: cpsw-common: add support for reading mac address for dra7 and am437x platforms Mugunthan V N ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: Mugunthan V N @ 2015-09-21 10:26 UTC (permalink / raw) To: netdev Cc: linux-omap, David S . Miller, Tony Lindgren, devicetree, Sekhar Nori, Mugunthan V N Moving mac address reading from ethernet driver to common file for better maintenance and for code reusable. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- drivers/net/ethernet/ti/cpsw-common.c | 58 ++++++++++++++++++++++++++++------ drivers/net/ethernet/ti/cpsw.c | 11 +++---- drivers/net/ethernet/ti/cpsw.h | 3 +- drivers/net/ethernet/ti/davinci_emac.c | 44 ++------------------------ 4 files changed, 57 insertions(+), 59 deletions(-) diff --git a/drivers/net/ethernet/ti/cpsw-common.c b/drivers/net/ethernet/ti/cpsw-common.c index f595094..c70417c 100644 --- a/drivers/net/ethernet/ti/cpsw-common.c +++ b/drivers/net/ethernet/ti/cpsw-common.c @@ -19,11 +19,38 @@ #include "cpsw.h" -#define AM33XX_CTRL_MAC_LO_REG(offset, id) ((offset) + 0x8 * (id)) -#define AM33XX_CTRL_MAC_HI_REG(offset, id) ((offset) + 0x8 * (id) + 0x4) +#define CTRL_MAC_LO_REG(offset, id) ((offset) + 0x8 * (id)) +#define CTRL_MAC_HI_REG(offset, id) ((offset) + 0x8 * (id) + 0x4) -int cpsw_am33xx_cm_get_macid(struct device *dev, u16 offset, int slave, - u8 *mac_addr) +static int davinci_emac_3517_get_macid(struct device *dev, u16 offset, + int slave, u8 *mac_addr) +{ + u32 macid_lsb; + u32 macid_msb; + struct regmap *syscon; + + syscon = syscon_regmap_lookup_by_phandle(dev->of_node, "syscon"); + if (IS_ERR(syscon)) { + if (PTR_ERR(syscon) == -ENODEV) + return 0; + return PTR_ERR(syscon); + } + + regmap_read(syscon, CTRL_MAC_LO_REG(offset, slave), &macid_lsb); + regmap_read(syscon, CTRL_MAC_HI_REG(offset, slave), &macid_msb); + + mac_addr[0] = (macid_msb >> 16) & 0xff; + mac_addr[1] = (macid_msb >> 8) & 0xff; + mac_addr[2] = macid_msb & 0xff; + mac_addr[3] = (macid_lsb >> 16) & 0xff; + mac_addr[4] = (macid_lsb >> 8) & 0xff; + mac_addr[5] = macid_lsb & 0xff; + + return 0; +} + +static int cpsw_am33xx_cm_get_macid(struct device *dev, u16 offset, int slave, + u8 *mac_addr) { u32 macid_lo; u32 macid_hi; @@ -36,10 +63,8 @@ int cpsw_am33xx_cm_get_macid(struct device *dev, u16 offset, int slave, return PTR_ERR(syscon); } - regmap_read(syscon, AM33XX_CTRL_MAC_LO_REG(offset, slave), - &macid_lo); - regmap_read(syscon, AM33XX_CTRL_MAC_HI_REG(offset, slave), - &macid_hi); + regmap_read(syscon, CTRL_MAC_LO_REG(offset, slave), &macid_lo); + regmap_read(syscon, CTRL_MAC_HI_REG(offset, slave), &macid_hi); mac_addr[5] = (macid_lo >> 8) & 0xff; mac_addr[4] = macid_lo & 0xff; @@ -50,6 +75,21 @@ int cpsw_am33xx_cm_get_macid(struct device *dev, u16 offset, int slave, return 0; } -EXPORT_SYMBOL_GPL(cpsw_am33xx_cm_get_macid); + +int ti_cm_get_macid(struct device *dev, int slave, u8 *mac_addr) +{ + if (of_machine_is_compatible("ti,am33xx")) + return cpsw_am33xx_cm_get_macid(dev, 0x630, slave, mac_addr); + + if (of_device_is_compatible(dev->of_node, "ti,am3517-emac")) + return davinci_emac_3517_get_macid(dev, 0x110, slave, mac_addr); + + if (of_device_is_compatible(dev->of_node, "ti,dm816-emac")) + return cpsw_am33xx_cm_get_macid(dev, 0x30, slave, mac_addr); + + dev_err(dev, "incompatible machine/device type for reading mac address\n"); + return -ENOENT; +} +EXPORT_SYMBOL_GPL(ti_cm_get_macid); MODULE_LICENSE("GPL"); diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index c670317..75584cc 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -2058,13 +2058,10 @@ no_phy_slave: if (mac_addr) { memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN); } else { - if (of_machine_is_compatible("ti,am33xx")) { - ret = cpsw_am33xx_cm_get_macid(&pdev->dev, - 0x630, i, - slave_data->mac_addr); - if (ret) - return ret; - } + ret = ti_cm_get_macid(&pdev->dev, i, + slave_data->mac_addr); + if (ret) + return ret; } if (data->dual_emac) { if (of_property_read_u32(slave_node, "dual_emac_res_vlan", diff --git a/drivers/net/ethernet/ti/cpsw.h b/drivers/net/ethernet/ti/cpsw.h index ca90efa..442a703 100644 --- a/drivers/net/ethernet/ti/cpsw.h +++ b/drivers/net/ethernet/ti/cpsw.h @@ -41,7 +41,6 @@ struct cpsw_platform_data { }; void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave); -int cpsw_am33xx_cm_get_macid(struct device *dev, u16 offset, int slave, - u8 *mac_addr); +int ti_cm_get_macid(struct device *dev, int slave, u8 *mac_addr); #endif /* __CPSW_H__ */ diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c index a21c77b..39a54b2 100644 --- a/drivers/net/ethernet/ti/davinci_emac.c +++ b/drivers/net/ethernet/ti/davinci_emac.c @@ -1882,51 +1882,13 @@ davinci_emac_of_get_pdata(struct platform_device *pdev, struct emac_priv *priv) return pdata; } -static int davinci_emac_3517_get_macid(struct device *dev, u16 offset, - int slave, u8 *mac_addr) -{ - u32 macid_lsb; - u32 macid_msb; - struct regmap *syscon; - - syscon = syscon_regmap_lookup_by_phandle(dev->of_node, "syscon"); - if (IS_ERR(syscon)) { - if (PTR_ERR(syscon) == -ENODEV) - return 0; - return PTR_ERR(syscon); - } - - regmap_read(syscon, offset, &macid_lsb); - regmap_read(syscon, offset + 4, &macid_msb); - - mac_addr[0] = (macid_msb >> 16) & 0xff; - mac_addr[1] = (macid_msb >> 8) & 0xff; - mac_addr[2] = macid_msb & 0xff; - mac_addr[3] = (macid_lsb >> 16) & 0xff; - mac_addr[4] = (macid_lsb >> 8) & 0xff; - mac_addr[5] = macid_lsb & 0xff; - - return 0; -} - static int davinci_emac_try_get_mac(struct platform_device *pdev, int instance, u8 *mac_addr) { - int error = -EINVAL; - if (!pdev->dev.of_node) - return error; - - if (of_device_is_compatible(pdev->dev.of_node, "ti,am3517-emac")) - error = davinci_emac_3517_get_macid(&pdev->dev, 0x110, - 0, mac_addr); - else if (of_device_is_compatible(pdev->dev.of_node, - "ti,dm816-emac")) - error = cpsw_am33xx_cm_get_macid(&pdev->dev, 0x30, - instance, - mac_addr); - - return error; + return -EINVAL; + + return ti_cm_get_macid(&pdev->dev, instance, mac_addr); } /** -- 2.6.0.rc2.10.gf4d9753 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [net-next PATCH 2/4] drivers: net: cpsw-common: add support for reading mac address for dra7 and am437x platforms 2015-09-21 10:26 [net-next PATCH 0/4] Add support for reading macid when DT macid not found Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 1/4] drivers: net: cpsw: davinci_emac: move reading mac id to common file Mugunthan V N @ 2015-09-21 10:26 ` Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 3/4] arm: dts: dra7: add syscon phandle to cpsw node Mugunthan V N ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: Mugunthan V N @ 2015-09-21 10:26 UTC (permalink / raw) To: netdev Cc: linux-omap, David S . Miller, Tony Lindgren, devicetree, Sekhar Nori, Mugunthan V N Adding support for reading mac address using syscon driver for dra7 and am437x platforms Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- drivers/net/ethernet/ti/cpsw-common.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ethernet/ti/cpsw-common.c b/drivers/net/ethernet/ti/cpsw-common.c index c70417c..c08be62 100644 --- a/drivers/net/ethernet/ti/cpsw-common.c +++ b/drivers/net/ethernet/ti/cpsw-common.c @@ -87,6 +87,12 @@ int ti_cm_get_macid(struct device *dev, int slave, u8 *mac_addr) if (of_device_is_compatible(dev->of_node, "ti,dm816-emac")) return cpsw_am33xx_cm_get_macid(dev, 0x30, slave, mac_addr); + if (of_machine_is_compatible("ti,am4372")) + return cpsw_am33xx_cm_get_macid(dev, 0x630, slave, mac_addr); + + if (of_machine_is_compatible("ti,dra7")) + return davinci_emac_3517_get_macid(dev, 0x514, slave, mac_addr); + dev_err(dev, "incompatible machine/device type for reading mac address\n"); return -ENOENT; } -- 2.6.0.rc2.10.gf4d9753 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [net-next PATCH 3/4] arm: dts: dra7: add syscon phandle to cpsw node 2015-09-21 10:26 [net-next PATCH 0/4] Add support for reading macid when DT macid not found Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 1/4] drivers: net: cpsw: davinci_emac: move reading mac id to common file Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 2/4] drivers: net: cpsw-common: add support for reading mac address for dra7 and am437x platforms Mugunthan V N @ 2015-09-21 10:26 ` Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 4/4] arm: dts: am4372: " Mugunthan V N 2015-09-22 0:22 ` [net-next PATCH 0/4] Add support for reading macid when DT macid not found David Miller 4 siblings, 0 replies; 6+ messages in thread From: Mugunthan V N @ 2015-09-21 10:26 UTC (permalink / raw) To: netdev Cc: linux-omap, David S . Miller, Tony Lindgren, devicetree, Sekhar Nori, Mugunthan V N There are 2 MACIDs stored in the control module of the dra7. These are read by the cpsw driver if no valid MACID was found in the devicetree. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- arch/arm/boot/dts/dra7.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index 5d65db9..76c739d 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi @@ -1447,6 +1447,7 @@ <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>; ranges; + syscon = <&scm_conf>; status = "disabled"; davinci_mdio: mdio@48485000 { -- 2.6.0.rc2.10.gf4d9753 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [net-next PATCH 4/4] arm: dts: am4372: add syscon phandle to cpsw node 2015-09-21 10:26 [net-next PATCH 0/4] Add support for reading macid when DT macid not found Mugunthan V N ` (2 preceding siblings ...) 2015-09-21 10:26 ` [net-next PATCH 3/4] arm: dts: dra7: add syscon phandle to cpsw node Mugunthan V N @ 2015-09-21 10:26 ` Mugunthan V N 2015-09-22 0:22 ` [net-next PATCH 0/4] Add support for reading macid when DT macid not found David Miller 4 siblings, 0 replies; 6+ messages in thread From: Mugunthan V N @ 2015-09-21 10:26 UTC (permalink / raw) To: netdev Cc: linux-omap, David S . Miller, Tony Lindgren, devicetree, Sekhar Nori, Mugunthan V N There are 2 MACIDs stored in the control module of the am4372. These are read by the cpsw driver if no valid MACID was found in the devicetree. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- arch/arm/boot/dts/am4372.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi index 0447c04a..d83ff9c 100644 --- a/arch/arm/boot/dts/am4372.dtsi +++ b/arch/arm/boot/dts/am4372.dtsi @@ -591,6 +591,7 @@ cpts_clock_mult = <0x80000000>; cpts_clock_shift = <29>; ranges; + syscon = <&scm_conf>; davinci_mdio: mdio@4a101000 { compatible = "ti,am4372-mdio","ti,davinci_mdio"; -- 2.6.0.rc2.10.gf4d9753 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [net-next PATCH 0/4] Add support for reading macid when DT macid not found 2015-09-21 10:26 [net-next PATCH 0/4] Add support for reading macid when DT macid not found Mugunthan V N ` (3 preceding siblings ...) 2015-09-21 10:26 ` [net-next PATCH 4/4] arm: dts: am4372: " Mugunthan V N @ 2015-09-22 0:22 ` David Miller 4 siblings, 0 replies; 6+ messages in thread From: David Miller @ 2015-09-22 0:22 UTC (permalink / raw) To: mugunthanvnm; +Cc: netdev, linux-omap, tony, devicetree, nsekhar From: Mugunthan V N <mugunthanvnm@ti.com> Date: Mon, 21 Sep 2015 15:56:49 +0530 > Did a boot test on dra7-evm [1] and am437x-gp-evm [2]. > Pushed a branch [3] for others to test the patch. > > [1]: http://pastebin.ubuntu.com/12513420/ > [2]: http://pastebin.ubuntu.com/12513428/ > [3]: git://git.ti.com/~mugunthanvnm/ti-linux-kernel/linux.git cpsw-macid-read-support Series applied, thanks. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-09-22 0:22 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-09-21 10:26 [net-next PATCH 0/4] Add support for reading macid when DT macid not found Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 1/4] drivers: net: cpsw: davinci_emac: move reading mac id to common file Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 2/4] drivers: net: cpsw-common: add support for reading mac address for dra7 and am437x platforms Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 3/4] arm: dts: dra7: add syscon phandle to cpsw node Mugunthan V N 2015-09-21 10:26 ` [net-next PATCH 4/4] arm: dts: am4372: " Mugunthan V N 2015-09-22 0:22 ` [net-next PATCH 0/4] Add support for reading macid when DT macid not found David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).