42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2026 Airoha Technology Corp.
|
|
* Copyright (C) 2026 Collabora Ltd.
|
|
* Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
|
|
*/
|
|
|
|
#ifndef __AIR_PHY_LIB_H
|
|
#define __AIR_PHY_LIB_H
|
|
|
|
#include <linux/phy.h>
|
|
|
|
#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 */
|