Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
of
of_net.c
Go to the documentation of this file.
1
/*
2
* OF helpers for network devices.
3
*
4
* This file is released under the GPLv2
5
*
6
* Initially copied out of arch/powerpc/kernel/prom_parse.c
7
*/
8
#include <
linux/etherdevice.h
>
9
#include <linux/kernel.h>
10
#include <
linux/of_net.h
>
11
#include <
linux/phy.h
>
12
#include <linux/export.h>
13
19
static
const
char
*phy_modes[] = {
20
[
PHY_INTERFACE_MODE_NA
] =
""
,
21
[
PHY_INTERFACE_MODE_MII
] =
"mii"
,
22
[
PHY_INTERFACE_MODE_GMII
] =
"gmii"
,
23
[
PHY_INTERFACE_MODE_SGMII
] =
"sgmii"
,
24
[
PHY_INTERFACE_MODE_TBI
] =
"tbi"
,
25
[
PHY_INTERFACE_MODE_RMII
] =
"rmii"
,
26
[
PHY_INTERFACE_MODE_RGMII
] =
"rgmii"
,
27
[
PHY_INTERFACE_MODE_RGMII_ID
] =
"rgmii-id"
,
28
[
PHY_INTERFACE_MODE_RGMII_RXID
] =
"rgmii-rxid"
,
29
[
PHY_INTERFACE_MODE_RGMII_TXID
] =
"rgmii-txid"
,
30
[
PHY_INTERFACE_MODE_RTBI
] =
"rtbi"
,
31
[
PHY_INTERFACE_MODE_SMII
] =
"smii"
,
32
};
33
41
const
int
of_get_phy_mode
(
struct
device_node
*np)
42
{
43
const
char
*
pm
;
44
int
err
,
i
;
45
46
err =
of_property_read_string
(np,
"phy-mode"
, &pm);
47
if
(err < 0)
48
return
err
;
49
50
for
(i = 0; i <
ARRAY_SIZE
(phy_modes); i++)
51
if
(!
strcasecmp
(pm, phy_modes[i]))
52
return
i;
53
54
return
-
ENODEV
;
55
}
56
EXPORT_SYMBOL_GPL
(
of_get_phy_mode
);
57
76
const
void
*
of_get_mac_address
(
struct
device_node
*np)
77
{
78
struct
property
*
pp
;
79
80
pp =
of_find_property
(np,
"mac-address"
,
NULL
);
81
if
(pp && (pp->
length
== 6) && is_valid_ether_addr(pp->
value
))
82
return
pp->
value
;
83
84
pp =
of_find_property
(np,
"local-mac-address"
,
NULL
);
85
if
(pp && (pp->
length
== 6) && is_valid_ether_addr(pp->
value
))
86
return
pp->
value
;
87
88
pp =
of_find_property
(np,
"address"
,
NULL
);
89
if
(pp && (pp->
length
== 6) && is_valid_ether_addr(pp->
value
))
90
return
pp->
value
;
91
92
return
NULL
;
93
}
94
EXPORT_SYMBOL
(
of_get_mac_address
);
Generated on Thu Jan 10 2013 14:13:36 for Linux Kernel by
1.8.2