linux/arch/arm/mach-ixp4xx
Arnd Bergmann 9055a2f591 ixp4xx_eth: make ptp support a platform driver
After the recent ixp4xx cleanups, the ptp driver has gained a
build failure in some configurations:

drivers/net/ethernet/xscale/ptp_ixp46x.c: In function 'ptp_ixp_init':
drivers/net/ethernet/xscale/ptp_ixp46x.c:290:51: error: 'IXP4XX_TIMESYNC_BASE_VIRT' undeclared (first use in this function)

Avoid the last bit of hardcoded constants from platform headers
by turning the ptp driver bit into a platform driver and passing
the IRQ and MMIO address as resources.

This is a bit tricky:

- The interface between the two drivers is now the new
  ixp46x_ptp_find() function, replacing the global
  ixp46x_phc_index variable. The call is done as late
  as possible, in hwtstamp_set(), to ensure that the
  ptp device is fully probed.

- As the ptp driver is now called by the network driver, the
  link dependency is reversed, which in turn requires a small
  Makefile hack

- The GPIO number is still left hardcoded. This is clearly not
  great, but it can be addressed later. Note that commit 98ac0cc270
  ("ARM: ixp4xx: Convert to MULTI_IRQ_HANDLER") changed the
  IRQ number to something meaningless. Passing the correct IRQ
  in a resource fixes this.

- When the PTP driver is disabled, ethtool .get_ts_info()
  now correctly lists only software timestamping regardless
  of the hardware.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[Fix a missing include]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-08-30 09:59:11 +01:00
..
include/mach ARM: ixp4xx: fix building both pci drivers 2021-08-12 23:10:09 +02:00
avila-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
avila-setup.c pata: ixp4xx: split platform data to its own header 2021-06-17 15:31:04 +02:00
common-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
common.c ixp4xx_eth: make ptp support a platform driver 2021-08-30 09:59:11 +01:00
coyote-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
coyote-setup.c ARM: ixp4xx: Convert to SPARSE_IRQ 2019-04-19 20:37:44 +02:00
dsmg600-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dsmg600-setup.c ARM: ixp4xx: Switch to use new IRQ+GPIO drivers 2019-04-23 16:02:13 +02:00
fsg-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
fsg-setup.c ARM/ixp4xx: Make NEED_MACH_IO_H optional 2021-06-16 15:14:30 +02:00
gateway7001-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
gateway7001-setup.c ARM: ixp4xx: Convert to SPARSE_IRQ 2019-04-19 20:37:44 +02:00
goramo_mlr.c ARM/net: ixp4xx: Pass ethernet physical base as resource 2020-01-12 12:59:53 -08:00
gtwx5715-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
gtwx5715-setup.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
irqs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ixdp425-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ixdp425-setup.c ARM/net: ixp4xx: Pass ethernet physical base as resource 2020-01-12 12:59:53 -08:00
ixdpg425-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ixp4xx-of.c ARM/ixp4xx: Move the virtual IObases 2021-06-16 15:14:21 +02:00
Kconfig ARM: ixp4xx: goramo_mlr depends on old PCI driver 2021-08-02 14:32:53 +02:00
Makefile ARM: ixp4xx: Move NPE and QMGR to drivers/soc 2019-04-23 16:02:15 +02:00
Makefile.boot treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
miccpt-pci.c SPDX update for 5.2-rc6 2019-06-21 09:58:42 -07:00
nas100d-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
nas100d-setup.c ARM/ixp4xx: Make NEED_MACH_IO_H optional 2021-06-16 15:14:30 +02:00
nslu2-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
nslu2-setup.c ARM/ixp4xx: Make NEED_MACH_IO_H optional 2021-06-16 15:14:30 +02:00
omixp-setup.c ARM/net: ixp4xx: Pass ethernet physical base as resource 2020-01-12 12:59:53 -08:00
vulcan-pci.c SPDX update for 5.2-rc6 2019-06-21 09:58:42 -07:00
vulcan-setup.c ARM/net: ixp4xx: Pass ethernet physical base as resource 2020-01-12 12:59:53 -08:00
wg302v2-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wg302v2-setup.c ARM: ixp4xx: Convert to SPARSE_IRQ 2019-04-19 20:37:44 +02:00