Merge tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC device tree updates (part 2) from Arnd Bergmann: "These are mostly new device tree bindings for existing drivers, as well as changes to the device tree source files to add support for those devices, and a couple of new boards, most notably Samsung's Exynos5 based Chromebook. The changes depend on earlier platform specific updates and touch the usual platforms: omap, exynos, tegra, mxs, mvebu and davinci." * tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits) ARM: exynos: dts: cros5250: add EC device ARM: dts: Add sbs-battery for exynos5250-snow ARM: dts: Add i2c-arbitrator bus for exynos5250-snow ARM: dts: add mshc controller node for Exynos4x12 SoCs ARM: dts: Add chip-id controller node on Exynos4/5 SoC ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree ARM: davinci: da850-evm: add SPI flash support ARM: davinci: da850: override SPI DT node device name ARM: davinci: da850: add SPI1 DT node spi/davinci: add DT binding documentation spi/davinci: no wildcards in DT compatible property ARM: dts: mvebu: Convert mvebu device tree files to 64 bits ARM: dts: mvebu: introduce internal-regs node ARM: dts: mvebu: Convert all the mvebu files to use the range property ARM: dts: mvebu: move all peripherals inside soc ARM: dts: mvebu: fix cpus section indentation ARM: davinci: da850: add EHRPWM & ECAP DT node ARM/dts: OMAP3: fix pinctrl-single configuration ARM: dts: Add OMAP3430 SDP NOR flash memory binding ARM: dts: Add NOR flash bindings for OMAP2420 H4 ...
This commit is contained in:
@@ -1883,18 +1883,23 @@ fec_probe(struct platform_device *pdev)
|
||||
goto failed_clk;
|
||||
}
|
||||
|
||||
/* enet_out is optional, depends on board */
|
||||
fep->clk_enet_out = devm_clk_get(&pdev->dev, "enet_out");
|
||||
if (IS_ERR(fep->clk_enet_out))
|
||||
fep->clk_enet_out = NULL;
|
||||
|
||||
fep->clk_ptp = devm_clk_get(&pdev->dev, "ptp");
|
||||
fep->bufdesc_ex =
|
||||
pdev->id_entry->driver_data & FEC_QUIRK_HAS_BUFDESC_EX;
|
||||
if (IS_ERR(fep->clk_ptp)) {
|
||||
ret = PTR_ERR(fep->clk_ptp);
|
||||
fep->clk_ptp = NULL;
|
||||
fep->bufdesc_ex = 0;
|
||||
}
|
||||
|
||||
clk_prepare_enable(fep->clk_ahb);
|
||||
clk_prepare_enable(fep->clk_ipg);
|
||||
if (!IS_ERR(fep->clk_ptp))
|
||||
clk_prepare_enable(fep->clk_ptp);
|
||||
clk_prepare_enable(fep->clk_enet_out);
|
||||
clk_prepare_enable(fep->clk_ptp);
|
||||
|
||||
reg_phy = devm_regulator_get(&pdev->dev, "phy");
|
||||
if (!IS_ERR(reg_phy)) {
|
||||
@@ -1962,8 +1967,8 @@ failed_irq:
|
||||
failed_regulator:
|
||||
clk_disable_unprepare(fep->clk_ahb);
|
||||
clk_disable_unprepare(fep->clk_ipg);
|
||||
if (!IS_ERR(fep->clk_ptp))
|
||||
clk_disable_unprepare(fep->clk_ptp);
|
||||
clk_disable_unprepare(fep->clk_enet_out);
|
||||
clk_disable_unprepare(fep->clk_ptp);
|
||||
failed_pin:
|
||||
failed_clk:
|
||||
failed_ioremap:
|
||||
@@ -1985,6 +1990,7 @@ fec_drv_remove(struct platform_device *pdev)
|
||||
clk_disable_unprepare(fep->clk_ptp);
|
||||
if (fep->ptp_clock)
|
||||
ptp_clock_unregister(fep->ptp_clock);
|
||||
clk_disable_unprepare(fep->clk_enet_out);
|
||||
clk_disable_unprepare(fep->clk_ahb);
|
||||
clk_disable_unprepare(fep->clk_ipg);
|
||||
for (i = 0; i < FEC_IRQ_NUM; i++) {
|
||||
@@ -2010,6 +2016,7 @@ fec_suspend(struct device *dev)
|
||||
fec_stop(ndev);
|
||||
netif_device_detach(ndev);
|
||||
}
|
||||
clk_disable_unprepare(fep->clk_enet_out);
|
||||
clk_disable_unprepare(fep->clk_ahb);
|
||||
clk_disable_unprepare(fep->clk_ipg);
|
||||
|
||||
@@ -2022,6 +2029,7 @@ fec_resume(struct device *dev)
|
||||
struct net_device *ndev = dev_get_drvdata(dev);
|
||||
struct fec_enet_private *fep = netdev_priv(ndev);
|
||||
|
||||
clk_prepare_enable(fep->clk_enet_out);
|
||||
clk_prepare_enable(fep->clk_ahb);
|
||||
clk_prepare_enable(fep->clk_ipg);
|
||||
if (netif_running(ndev)) {
|
||||
|
Reference in New Issue
Block a user