| #ifndef __AR8236_h__ |
| #define __AR8236_h__ |
| /* |
| * board/ums/ar8236.h |
| * |
| * U-Boot driver for the Atheros 8236 switch. |
| * |
| * Copyright (c) Quantenna Communications Incorporated 2009. |
| * All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| * |
| */ |
| |
| //////////////////////////////////////////////////////////////////// |
| // NOTE - we do not check for valid base in mdio access routines |
| // use must ensure device is initialized and valid prior |
| // to using MDIO funtions |
| /////////////////////////////////////////////////////////////////// |
| |
| typedef struct { |
| u32 base; |
| u32 phy; |
| }ts8236,*pts8236; |
| |
| #define MAX_PHY_ADDR 32 |
| /********************************************************************* |
| Name: ar8236_init |
| Purpose: Check for Atheros 8236 switch, return pointer to device |
| if found, NULL otherwise |
| Notes: pass phy addr as -1 to scan for phy |
| *********************************************************************/ |
| u32 ar8236_init(u32 baseAddr, u32 phy_addr); |
| |
| /********************************************************************* |
| Name: ar8236_mdio_read |
| Purpose: mdio read routine for AR8236 device |
| Notes: This is a blocking call since we require |
| more than one cycle to complete the write. |
| checks for completion first |
| *********************************************************************/ |
| int ar8236_mdio_read(u32 phyAddr, u32 regAddr, u32 *data); |
| |
| /********************************************************************* |
| Name: ar8236_mdio_write |
| Purpose: mdio write routine for AR8236 device |
| Notes: This is a partial blocking call since we require |
| more than one cycle to complete the write. |
| checks for completion first |
| *********************************************************************/ |
| int ar8236_mdio_write(u32 phyAddr, u32 regAddr, u32 data); |
| |
| /********************************************************************* |
| Name: ar8236_mdio_poll |
| Purpose: mdio poll routine for AR8236 device |
| Notes: Checks for mdio operation complete |
| *********************************************************************/ |
| int ar8236_mdio_poll(void); |
| |
| #endif // __AR8236_h__ |