2 * AR8216 switch driver platform data
4 * Copyright (C) 2012 Gabor Juhos <juhosg@openwrt.org>
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
17 #ifndef AR8216_PLATFORM_H
18 #define AR8216_PLATFORM_H
20 enum ar8327_pad_mode {
22 AR8327_PAD_MAC2MAC_MII,
23 AR8327_PAD_MAC2MAC_GMII,
25 AR8327_PAD_MAC2PHY_MII,
26 AR8327_PAD_MAC2PHY_GMII,
33 enum ar8327_clk_delay_sel {
34 AR8327_CLK_DELAY_SEL0 = 0,
35 AR8327_CLK_DELAY_SEL1,
36 AR8327_CLK_DELAY_SEL2,
37 AR8327_CLK_DELAY_SEL3,
40 struct ar8327_pad_cfg {
41 enum ar8327_pad_mode mode;
48 enum ar8327_clk_delay_sel txclk_delay_sel;
49 enum ar8327_clk_delay_sel rxclk_delay_sel;
52 enum ar8327_port_speed {
53 AR8327_PORT_SPEED_10 = 0,
54 AR8327_PORT_SPEED_100,
55 AR8327_PORT_SPEED_1000,
58 struct ar8327_port_cfg {
60 enum ar8327_port_speed speed;
66 struct ar8327_sgmii_cfg {
71 struct ar8327_led_cfg {
79 struct ar8327_platform_data {
80 struct ar8327_pad_cfg *pad0_cfg;
81 struct ar8327_pad_cfg *pad5_cfg;
82 struct ar8327_pad_cfg *pad6_cfg;
83 struct ar8327_sgmii_cfg *sgmii_cfg;
84 struct ar8327_port_cfg port0_cfg;
85 struct ar8327_port_cfg port6_cfg;
86 struct ar8327_led_cfg *led_cfg;
88 int (*get_port_link)(unsigned port);
91 #endif /* AR8216_PLATFORM_H */