mbox series

[v3,net-next,0/2] Add en8811h phy driver and devicetree binding doc

Message ID 20240326162305.303598-1-ericwouds@gmail.com (mailing list archive)
Headers show
Series Add en8811h phy driver and devicetree binding doc | expand

Message

Eric Woudstra March 26, 2024, 4:23 p.m. UTC
This patch series adds the driver and the devicetree binding documentation
for the Airoha en8811h PHY.

Changes in PATCH v3:

air_en8811h.c:
 * Dedicated __air_buckpbus_reg_modify()
 * Renamed host to mcu
 * Append 'S' to AIR_PHY_LED_DUR_BLINK_xxxM
 * Handle hw-leds as in mt798x_phy_led_hw_control_set(), add 2500Mbps
 * Moved firmware loading to .probe()
 * Disable leds after firmware load
 * Moved 'waiting for mcu ready' to dedicated function
 * Return -EINVAL from .config_aneg() when auto-neg is turned off
 * Removed check for AUTONEG_ENABLE from .read_status()
 * Added more details about mode 1
 * Use macros from wordpart.h
 * Set rate_matching in .read_status(), fixes 100Mbps traffic

Changes in PATCH v2:

air_en8811h.c:
 * Implement air_buckpbus_reg_modify()
 * Added if (saved_page >= 0)
 * Use linkmode_adv_to_mii_10gbt_adv_t()
 * Check led index within limit, before using it
 * Renamed AIR_PBUS_XXX to AIR_BPBUS_XXX to indicate buckpbus, not pbus
 * Cosmetic changes

airoha,en8811h.yaml:
 * Add compatible
 * Add description
 * Cosmetic changes

Changes in PATCH (mistakenly considered as v1):

air_en8811h.c:
 * Use the correct order in Kconfig and Makefile
 * Change some register naming to correspond with datasheet
 * Use phy_driver .read_page() and .write_page()
 * Use module_phy_driver()
 * Use get_unaligned_le16() instead of macro
 * In .config_aneg() and .read_status() use genphy_xxx() C22
 * Use another vendor register to read real speed
 * Load firmware only once and store firmware version
 * Apply 2.5G LPA work-around (firmware before 24011202)
 * Read 2.5G LPA from vendor register (firmware 24011202 and later)

airoha,en8811h.yaml:
* Explicitly describe which pins are reversed in polarity.

Notes for original RFC patch:

 * Source originated from airoha's en8811h v1.2.1 driver
 * Moved air_en8811h.h to air_en8811h.c
 * Removed air_pbus_reg_write() as it writes to another device on mdio-bus
   (Confirmed by Airoha, register on pbus does not need to be written to)
 * Load firmware from /lib/firmware/airoha/ instead of /lib/firmware/
 * Added .get_rate_matching()
 * Use generic phy_read/write() and phy_read/write_mmd()
 * Edited .get_features() to use generic C45 functions
 * Edited .config_aneg() and .read_status() to use a mix of generic C22/C45
 * Use led handling functions from mediatek-ge-soc.c
 * Simplified led handling by storing led rules
 * Cleanup macro definitions
 * Cleanup code to pass checkpatch.pl
 * General code cleanup

Eric Woudstra (2):
  dt-bindings: net: airoha,en8811h: Add en8811h
  net: phy: air_en8811h: Add the Airoha EN8811H PHY driver

 .../bindings/net/airoha,en8811h.yaml          |   56 +
 drivers/net/phy/Kconfig                       |    5 +
 drivers/net/phy/Makefile                      |    1 +
 drivers/net/phy/air_en8811h.c                 | 1086 +++++++++++++++++
 4 files changed, 1148 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/airoha,en8811h.yaml
 create mode 100644 drivers/net/phy/air_en8811h.c

Comments

patchwork-bot+netdevbpf@kernel.org March 29, 2024, 7:10 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 26 Mar 2024 17:23:03 +0100 you wrote:
> This patch series adds the driver and the devicetree binding documentation
> for the Airoha en8811h PHY.
> 
> Changes in PATCH v3:
> 
> air_en8811h.c:
>  * Dedicated __air_buckpbus_reg_modify()
>  * Renamed host to mcu
>  * Append 'S' to AIR_PHY_LED_DUR_BLINK_xxxM
>  * Handle hw-leds as in mt798x_phy_led_hw_control_set(), add 2500Mbps
>  * Moved firmware loading to .probe()
>  * Disable leds after firmware load
>  * Moved 'waiting for mcu ready' to dedicated function
>  * Return -EINVAL from .config_aneg() when auto-neg is turned off
>  * Removed check for AUTONEG_ENABLE from .read_status()
>  * Added more details about mode 1
>  * Use macros from wordpart.h
>  * Set rate_matching in .read_status(), fixes 100Mbps traffic
> 
> [...]

Here is the summary with links:
  - [v3,net-next,1/2] dt-bindings: net: airoha,en8811h: Add en8811h
    https://git.kernel.org/netdev/net-next/c/2434ba2bc851
  - [v3,net-next,2/2] net: phy: air_en8811h: Add the Airoha EN8811H PHY driver
    https://git.kernel.org/netdev/net-next/c/71e79430117d

You are awesome, thank you!