blob: b55c39cbb29839389bbdb8469877b1ec0b563b85 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (C) 2015 Freescale Semiconductor
*/
#ifndef __LDPAA_WRIOP_H
#define __LDPAA_WRIOP_H
#include <phy.h>
#define DEFAULT_WRIOP_MDIO1_NAME "FSL_MDIO0"
#define DEFAULT_WRIOP_MDIO2_NAME "FSL_MDIO1"
#define WRIOP_MAX_PHY_NUM 2
enum wriop_port {
WRIOP1_DPMAC1 = 1,
WRIOP1_DPMAC2,
WRIOP1_DPMAC3,
WRIOP1_DPMAC4,
WRIOP1_DPMAC5,
WRIOP1_DPMAC6,
WRIOP1_DPMAC7,
WRIOP1_DPMAC8,
WRIOP1_DPMAC9,
WRIOP1_DPMAC10,
WRIOP1_DPMAC11,
WRIOP1_DPMAC12,
WRIOP1_DPMAC13,
WRIOP1_DPMAC14,
WRIOP1_DPMAC15,
WRIOP1_DPMAC16,
WRIOP1_DPMAC17,
WRIOP1_DPMAC18,
WRIOP1_DPMAC19,
WRIOP1_DPMAC20,
WRIOP1_DPMAC21,
WRIOP1_DPMAC22,
WRIOP1_DPMAC23,
WRIOP1_DPMAC24,
NUM_WRIOP_PORTS,
};
struct wriop_dpmac_info {
u8 enabled;
u8 id;
u8 board_mux;
int phy_addr[WRIOP_MAX_PHY_NUM];
phy_interface_t enet_if;
struct phy_device *phydev[WRIOP_MAX_PHY_NUM];
struct mii_dev *bus;
};
extern struct wriop_dpmac_info dpmac_info[NUM_WRIOP_PORTS];
void wriop_init_dpmac(int sd, int dpmac_id, int lane_prtcl);
void wriop_init_dpmac_enet_if(int dpmac_id, phy_interface_t enet_if);
int wriop_disable_dpmac(int dpmac_id);
int wriop_enable_dpmac(int dpmac_id);
int wriop_is_enabled_dpmac(int dpmac_id);
int wriop_set_mdio(int dpmac_id, struct mii_dev *bus);
struct mii_dev *wriop_get_mdio(int dpmac_id);
int wriop_set_phy_address(int dpmac_id, int phy_num, int address);
int wriop_get_phy_address(int dpmac_id, int phy_num);
int wriop_set_phy_dev(int dpmac_id, int phy_num, struct phy_device *phydev);
struct phy_device *wriop_get_phy_dev(int dpmac_id, int phy_num);
phy_interface_t wriop_get_enet_if(int dpmac_id);
void wriop_dpmac_disable(int dpmac_id);
void wriop_dpmac_enable(int dpmac_id);
phy_interface_t wriop_dpmac_enet_if(int dpmac_id, int lane_prtcl);
void wriop_init_dpmac_qsgmii(int sd, int lane_prtcl);
void wriop_init_rgmii(void);
#endif /* __LDPAA_WRIOP_H */