/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2026 Airoha Technology Corp. * Copyright (C) 2026 Collabora Ltd. * Louis-Alexis Eyraud */ #ifndef __AIR_PHY_LIB_H #define __AIR_PHY_LIB_H #include #define AIR_EXT_PAGE_ACCESS 0x1f #define AIR_PHY_PAGE_STANDARD 0x0000 #define AIR_PHY_PAGE_EXTENDED_1 0x0001 #define AIR_PHY_PAGE_EXTENDED_4 0x0004 /* MII Registers Page 4*/ #define AIR_BPBUS_MODE 0x10 #define AIR_BPBUS_MODE_ADDR_FIXED 0x0000 #define AIR_BPBUS_MODE_ADDR_INCR BIT(15) #define AIR_BPBUS_WR_ADDR_HIGH 0x11 #define AIR_BPBUS_WR_ADDR_LOW 0x12 #define AIR_BPBUS_WR_DATA_HIGH 0x13 #define AIR_BPBUS_WR_DATA_LOW 0x14 #define AIR_BPBUS_RD_ADDR_HIGH 0x15 #define AIR_BPBUS_RD_ADDR_LOW 0x16 #define AIR_BPBUS_RD_DATA_HIGH 0x17 #define AIR_BPBUS_RD_DATA_LOW 0x18 int air_phy_buckpbus_reg_modify(struct phy_device *phydev, u32 pbus_address, u32 mask, u32 set); int air_phy_buckpbus_reg_read(struct phy_device *phydev, u32 pbus_address, u32 *pbus_data); int air_phy_buckpbus_reg_write(struct phy_device *phydev, u32 pbus_address, u32 pbus_data); int air_phy_read_page(struct phy_device *phydev); int air_phy_write_page(struct phy_device *phydev, int page); #endif /* __AIR_PHY_LIB_H */