Add Broadcom / Netgear changes from RAXE 1.0.0.48
[project/bcm63xx/u-boot.git] / drivers / net / bcmbca / phy / bus_drv_mdio_v1.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3 Copyright (c) 2016 Broadcom Corporation
4 All Rights Reserved
5
6
7 */
8
9 /*
10 * Created on: Aug 2017
11 * Author: dima.mamut@broadcom.com
12 */
13
14 #include "bus_drv.h"
15 #include "mdio_drv_impl5.h"
16
17 /* Internal MDIO bus */
18 static int bus_mdio_v1_int_c22_read(uint32_t addr, uint16_t reg, uint16_t *val)
19 {
20 return mdio_read_c22_register(MDIO_INT, addr, reg, val);
21 }
22
23 static int bus_mdio_v1_int_c22_write(uint32_t addr, uint16_t reg, uint16_t val)
24 {
25 return mdio_write_c22_register(MDIO_INT, addr, reg, val);
26 }
27
28 static int bus_mdio_v1_int_c45_read(uint32_t addr, uint16_t dev, uint16_t reg, uint16_t *val)
29 {
30 return mdio_read_c45_register(MDIO_INT, addr, dev, reg, val);
31 }
32
33 static int bus_mdio_v1_int_c45_write(uint32_t addr, uint16_t dev, uint16_t reg, uint16_t val)
34 {
35 return mdio_write_c45_register(MDIO_INT, addr, dev, reg, val);
36 }
37
38 bus_drv_t bus_mdio_v1_int_drv =
39 {
40 .c22_read = bus_mdio_v1_int_c22_read,
41 .c22_write = bus_mdio_v1_int_c22_write,
42 .c45_read = bus_mdio_v1_int_c45_read,
43 .c45_write = bus_mdio_v1_int_c45_write,
44 };
45
46
47 /* External MDIO bus */
48 static int bus_mdio_v1_ext_c22_read(uint32_t addr, uint16_t reg, uint16_t *val)
49 {
50 return mdio_read_c22_register(MDIO_EXT, addr, reg, val);
51 }
52
53 static int bus_mdio_v1_ext_c22_write(uint32_t addr, uint16_t reg, uint16_t val)
54 {
55 return mdio_write_c22_register(MDIO_EXT, addr, reg, val);
56 }
57
58 static int bus_mdio_v1_ext_c45_read(uint32_t addr, uint16_t dev, uint16_t reg, uint16_t *val)
59 {
60 return mdio_read_c45_register(MDIO_EXT, addr, dev, reg, val);
61 }
62
63 static int bus_mdio_v1_ext_c45_write(uint32_t addr, uint16_t dev, uint16_t reg, uint16_t val)
64 {
65 return mdio_write_c45_register(MDIO_EXT, addr, dev, reg, val);
66 }
67
68 bus_drv_t bus_mdio_v1_ext_drv =
69 {
70 .c22_read = bus_mdio_v1_ext_c22_read,
71 .c22_write = bus_mdio_v1_ext_c22_write,
72 .c45_read = bus_mdio_v1_ext_c45_read,
73 .c45_write = bus_mdio_v1_ext_c45_write,
74 };