/***************************************************************************
 *     Copyright (c) 1999-2013, Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * 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.
 *
 * Module Description:
 *                     DO NOT EDIT THIS FILE DIRECTLY
 *
 * This module was generated magically with RDB from a source description
 * file. You must edit the source file for changes to be made to this file.
 *
 *
 * Date:           Generated on         Wed May  8 03:09:24 2013
 *                 MD5 Checksum         d41d8cd98f00b204e9800998ecf8427e
 *
 * Compiled with:  RDB Utility          combo_header.pl
 *                 RDB Parser           3.0
 *                 unknown              unknown
 *                 Perl Interpreter     5.008008
 *                 Operating System     linux
 *
 * Revision History:
 *
 * $brcm_Log: $
 *
 ***************************************************************************/

#ifndef BCHP_SWITCH_MDIO_H__
#define BCHP_SWITCH_MDIO_H__

/***************************************************************************
 *SWITCH_MDIO
 ***************************************************************************/
#define BCHP_SWITCH_MDIO_MDIO_CMD                0x04e403c0 /* MDIO Command Register */
#define BCHP_SWITCH_MDIO_MDIO_CFG                0x04e403c4 /* MDIO Configuration Register */

/***************************************************************************
 *MDIO_CMD - MDIO Command Register
 ***************************************************************************/
/* SWITCH_MDIO :: MDIO_CMD :: reserved0 [31:30] */
#define BCHP_SWITCH_MDIO_MDIO_CMD_reserved0_MASK                   0xc0000000
#define BCHP_SWITCH_MDIO_MDIO_CMD_reserved0_SHIFT                  30

/* SWITCH_MDIO :: MDIO_CMD :: mdio_busy [29:29] */
#define BCHP_SWITCH_MDIO_MDIO_CMD_mdio_busy_MASK                   0x20000000
#define BCHP_SWITCH_MDIO_MDIO_CMD_mdio_busy_SHIFT                  29
#define BCHP_SWITCH_MDIO_MDIO_CMD_mdio_busy_DEFAULT                0x00000000

/* SWITCH_MDIO :: MDIO_CMD :: fail [28:28] */
#define BCHP_SWITCH_MDIO_MDIO_CMD_fail_MASK                        0x10000000
#define BCHP_SWITCH_MDIO_MDIO_CMD_fail_SHIFT                       28
#define BCHP_SWITCH_MDIO_MDIO_CMD_fail_DEFAULT                     0x00000000

/* SWITCH_MDIO :: MDIO_CMD :: op_code [27:26] */
#define BCHP_SWITCH_MDIO_MDIO_CMD_op_code_MASK                     0x0c000000
#define BCHP_SWITCH_MDIO_MDIO_CMD_op_code_SHIFT                    26
#define BCHP_SWITCH_MDIO_MDIO_CMD_op_code_DEFAULT                  0x00000000

/* SWITCH_MDIO :: MDIO_CMD :: phy_prt_addr [25:21] */
#define BCHP_SWITCH_MDIO_MDIO_CMD_phy_prt_addr_MASK                0x03e00000
#define BCHP_SWITCH_MDIO_MDIO_CMD_phy_prt_addr_SHIFT               21
#define BCHP_SWITCH_MDIO_MDIO_CMD_phy_prt_addr_DEFAULT             0x00000000

/* SWITCH_MDIO :: MDIO_CMD :: reg_dec_addr [20:16] */
#define BCHP_SWITCH_MDIO_MDIO_CMD_reg_dec_addr_MASK                0x001f0000
#define BCHP_SWITCH_MDIO_MDIO_CMD_reg_dec_addr_SHIFT               16
#define BCHP_SWITCH_MDIO_MDIO_CMD_reg_dec_addr_DEFAULT             0x00000000

/* SWITCH_MDIO :: MDIO_CMD :: data_addr [15:00] */
#define BCHP_SWITCH_MDIO_MDIO_CMD_data_addr_MASK                   0x0000ffff
#define BCHP_SWITCH_MDIO_MDIO_CMD_data_addr_SHIFT                  0
#define BCHP_SWITCH_MDIO_MDIO_CMD_data_addr_DEFAULT                0x00000000

/***************************************************************************
 *MDIO_CFG - MDIO Configuration Register
 ***************************************************************************/
/* SWITCH_MDIO :: MDIO_CFG :: reserved0 [31:13] */
#define BCHP_SWITCH_MDIO_MDIO_CFG_reserved0_MASK                   0xffffe000
#define BCHP_SWITCH_MDIO_MDIO_CFG_reserved0_SHIFT                  13

/* SWITCH_MDIO :: MDIO_CFG :: supress_preamble [12:12] */
#define BCHP_SWITCH_MDIO_MDIO_CFG_supress_preamble_MASK            0x00001000
#define BCHP_SWITCH_MDIO_MDIO_CFG_supress_preamble_SHIFT           12
#define BCHP_SWITCH_MDIO_MDIO_CFG_supress_preamble_DEFAULT         0x00000000

/* SWITCH_MDIO :: MDIO_CFG :: reserved1 [11:10] */
#define BCHP_SWITCH_MDIO_MDIO_CFG_reserved1_MASK                   0x00000c00
#define BCHP_SWITCH_MDIO_MDIO_CFG_reserved1_SHIFT                  10

/* SWITCH_MDIO :: MDIO_CFG :: mdio_clk_divider [09:04] */
#define BCHP_SWITCH_MDIO_MDIO_CFG_mdio_clk_divider_MASK            0x000003f0
#define BCHP_SWITCH_MDIO_MDIO_CFG_mdio_clk_divider_SHIFT           4
#define BCHP_SWITCH_MDIO_MDIO_CFG_mdio_clk_divider_DEFAULT         0x00000009

/* SWITCH_MDIO :: MDIO_CFG :: reserved2 [03:01] */
#define BCHP_SWITCH_MDIO_MDIO_CFG_reserved2_MASK                   0x0000000e
#define BCHP_SWITCH_MDIO_MDIO_CFG_reserved2_SHIFT                  1

/* SWITCH_MDIO :: MDIO_CFG :: mdio_clause [00:00] */
#define BCHP_SWITCH_MDIO_MDIO_CFG_mdio_clause_MASK                 0x00000001
#define BCHP_SWITCH_MDIO_MDIO_CFG_mdio_clause_SHIFT                0
#define BCHP_SWITCH_MDIO_MDIO_CFG_mdio_clause_DEFAULT              0x00000001

#endif /* #ifndef BCHP_SWITCH_MDIO_H__ */

/* End of File */
