| Age | Commit message (Collapse) | Author |
|
Add phy_modify_mmd()/phy_modify_mmd_changed() from Linux 5.1.y as of commit
b8554d4f7288f ("net: phy: add register modifying helpers returning 1 on change")
This is used by the upcoming Marvell 10G PHY driver.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
|
|
Import marvell_phy.h from Linux 5.14.y as of commit
a5de4be0aaaa6 ("net: phy: marvell10g: fix differentiation of 88X3310 from 88X3340")
and use it in marvell PHY driver instead of current ad-hoc macros.
Two of the PHY IDs are unknown to Linux, 88E1149S and 88E1680, for
those two, only sync the length of the hexadecimal number to 8 digits.
No functional change.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
|
|
Synchronize PHY interface modes with Linux next 6.2.y commit:
0194b64578e90 ("net: phy: improve phy_read_poll_timeout")
Retain LX2160A/LX2162A PHY modes as those are not yet supported
by the Linux kernel, but isolate those with ifdeffery.
Isolate NCSI which are also not supported by Linux kernel. Note
that the ifdeffery cannot be avoided with IS_ENABLED() here due
to compilation of the entire conditional, which would fail in
case NCSI symbols are not available.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
|
|
Replace PHY_INTERFACE_MODE_SFI with PHY_INTERFACE_MODE_5GBASER,
PHY_INTERFACE_MODE_10GBASER and PHY_INTERFACE_MODE_XAUI to match
Linux PHY interface modes.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
|
|
This mode does not seem to be well defined and used anywhere, remove support for it.
Based on discussion:
- 1000baseX does c37 AN of duplex+pause
- SGMII does AN of duplex+pause+speed, at lower speed bytes are repeated 10x/100x
- 2500baseX does not do AN, or does very different c73 AN
- SGMII 2500 behavior is unclear
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
|
|
The phy_init() is now used only to perform manual relocation of PHY
driver callbacks. Wrap it in ifdeffery and only call it on systems
which still require manual relocation, i.e. m68k .
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Wrap phy_drv_reloc() back into phy_init() to reduce ifdeffery,
since phy_drv_reloc() is now called only from one call site.
No functional change.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
This function is no longer used, drop it.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
The static phy_drivers list is superseded by linker list of struct phy_drivers
now that all drivers have been converted to the later. Drop the phy_drivers
list as well as list_head from struct phy_driver.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Ramon Fried <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
This particular PHY driver is slightly more spread out across additional
source files. Since the phy_register() calls are no longer necessary, all
the registration calls across those source files is dropped. Furthermore,
the Makefile can now be updated to only compile generic TI PHY support if
matching Kconfig symbol is enabled and the ifdeffery in the generic TI PHY
driver can be dropped.
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Convert PHY driver to U_BOOT_PHY_DRIVER() macro and drop phy_register() init call.
Converted using sed
"s@^static struct phy_driver \(.*\)_driver = \+{@U_BOOT_PHY_DRIVER(\L\1) = {"
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Introduce U_BOOT_PHY_DRIVER() macro which is used to add struct phy_driver
into a new linker list section containing all compiled in struct phy_driver
drivers. This is so far empty until PHY drivers are converted over to this
macro.
Iterate over both drivers registered using soon to be legacy phy_register()
as well as drivers in the new linker list when looking up a suitable PHY
driver. This way, PHY drivers can be converted over to the new macro one
driver at a time.
The relocation of callbacks for linker list based drivers now happens in
phy_init() call as the drivers are available at that point in time, and
phy_register() is not called for those drivers.
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
Create separate function to implement manual relocation of PHY driver
functions and make use of that function. This is a preparatory patch
for introduction of PHY driver definition using linker lists.
No functional change.
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
These struct phy_driver ... instances are local to this source code
file, staticize them. No functional change.
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
These struct phy_driver ... instances are local to this source code
file, staticize them. No functional change.
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
These struct phy_driver ... instances are local to this source code
file, staticize them. No functional change.
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
|
|
These struct phy_driver ... instances are local to this source code
file, staticize them. No functional change.
Signed-off-by: Marek Vasut <[email protected]>
Acked-by: Michal Simek <[email protected]>
Tested-by: Michal Simek <[email protected]> #microblaze (MANUAL_RELOC)
Reviewed-by: Ramon Fried <[email protected]>
|
|
Implement common board_interface_eth_init() and call it from the FEC
driver to configure IOMUXC GPR[1] register according to the PHY mode
obtained from DT. This supports all three interface modes supported by
the i.MX8M Mini/Nano/Plus FEC and supersedes the current board-side
configuration of the same IOMUX GPR[1] duplicated in the board files.
Signed-off-by: Marek Vasut <[email protected]>
|
|
The FEC ref clock frequency on i.MX8M Mini/Nano/Plus was so far configured
via ad-hoc board code. Replace that with DM clock clk_set_rate() instead.
This way, the driver claims all its required clock and sets the ref clock
rate, without any need of architecture specific register fiddling.
Signed-off-by: Marek Vasut <[email protected]>
|
|
Implement common board_interface_eth_init() and call it from the DWMAC
driver to configure IOMUXC GPR[1] register according to the PHY mode
obtained from DT. This supports all three interface modes supported by
the i.MX8M Plus DWMAC and supersedes current board-side configuration
of the same IOMUX GPR[1] duplicated in the board files.
Reviewed-by: Ramon Fried <[email protected]>
Signed-off-by: Marek Vasut <[email protected]>
|
|
With DM clock support in place, it is easy to add RMII support into the
MAC driver. The RMII cannot operate at 1000 Mbps and at 100 and 10 Mbps
the clock frequency is 50 MHz and 5 MHz instead of 25 MHz and 2.5 MHz.
The board DT requires the following adjustments to EQoS node:
phy-mode = "rmii";
assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
<&clk IMX8MP_SYS_PLL2_100M>,
<&clk IMX8MP_SYS_PLL2_50M>;
assigned-clock-rates = <0>, <100000000>, <50000000>;
Reviewed-by: Ramon Fried <[email protected]>
Signed-off-by: Marek Vasut <[email protected]>
|