blob: 07e5130264b433df1d45ac885ec15b0f1e80a7db [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Prabhakar Kushwaha2dd335f2015-03-20 19:28:22 -07002/*
3 * Copyright (C) 2015 Freescale Semiconductor
Prabhakar Kushwaha2dd335f2015-03-20 19:28:22 -07004 */
5
6#ifndef __LDPAA_WRIOP_H
7#define __LDPAA_WRIOP_H
8
9 #include <phy.h>
10
11enum wriop_port {
12 WRIOP1_DPMAC1 = 1,
13 WRIOP1_DPMAC2,
14 WRIOP1_DPMAC3,
15 WRIOP1_DPMAC4,
16 WRIOP1_DPMAC5,
17 WRIOP1_DPMAC6,
18 WRIOP1_DPMAC7,
19 WRIOP1_DPMAC8,
20 WRIOP1_DPMAC9,
21 WRIOP1_DPMAC10,
22 WRIOP1_DPMAC11,
23 WRIOP1_DPMAC12,
24 WRIOP1_DPMAC13,
25 WRIOP1_DPMAC14,
26 WRIOP1_DPMAC15,
27 WRIOP1_DPMAC16,
28 WRIOP1_DPMAC17,
29 WRIOP1_DPMAC18,
30 WRIOP1_DPMAC19,
31 WRIOP1_DPMAC20,
32 WRIOP1_DPMAC21,
33 WRIOP1_DPMAC22,
34 WRIOP1_DPMAC23,
35 WRIOP1_DPMAC24,
36 NUM_WRIOP_PORTS,
37};
38
39struct wriop_dpmac_info {
40 u8 enabled;
41 u8 id;
Prabhakar Kushwaha2dd335f2015-03-20 19:28:22 -070042 u8 board_mux;
Prabhakar Kushwahaef553102015-11-04 12:25:56 +053043 int phy_addr;
Prabhakar Kushwaha2dd335f2015-03-20 19:28:22 -070044 void *phy_regs;
45 phy_interface_t enet_if;
46 struct phy_device *phydev;
47 struct mii_dev *bus;
48};
49
50extern struct wriop_dpmac_info dpmac_info[NUM_WRIOP_PORTS];
51
52#define DEFAULT_WRIOP_MDIO1_NAME "FSL_MDIO0"
53#define DEFAULT_WRIOP_MDIO2_NAME "FSL_MDIO1"
54
55void wriop_init_dpmac(int, int, int);
56void wriop_disable_dpmac(int);
57void wriop_enable_dpmac(int);
Prabhakar Kushwahaef553102015-11-04 12:25:56 +053058u8 wriop_is_enabled_dpmac(int dpmac_id);
Prabhakar Kushwaha2dd335f2015-03-20 19:28:22 -070059void wriop_set_mdio(int, struct mii_dev *);
60struct mii_dev *wriop_get_mdio(int);
61void wriop_set_phy_address(int, int);
62int wriop_get_phy_address(int);
63void wriop_set_phy_dev(int, struct phy_device *);
64struct phy_device *wriop_get_phy_dev(int);
65phy_interface_t wriop_get_enet_if(int);
66
67void wriop_dpmac_disable(int);
68void wriop_dpmac_enable(int);
69phy_interface_t wriop_dpmac_enet_if(int, int);
Prabhakar Kushwaha3c39c082017-02-15 20:40:00 +053070void wriop_init_dpmac_qsgmii(int, int);
Ashish Kumarec455e22017-08-31 16:37:31 +053071void wriop_init_rgmii(void);
72void wriop_init_dpmac_enet_if(int , phy_interface_t);
Prabhakar Kushwaha2dd335f2015-03-20 19:28:22 -070073#endif /* __LDPAA_WRIOP_H */