add at91 SoC access with c structures
PATCH 3/8 add at91 SoC access with c structures
* add new hardware header files for at91 emac, matrix, mc, pdc, st and tc controller
* add at91rm9200 definitions, need for join at91rm9200 into at91 arch
Signed-off-by Jens Scharsig <[email protected]>
--- include/asm-arm/arch-at91/at91_emac.h | 145 +++++++++++++++++++++++++++++++ include/asm-arm/arch-at91/at91_matrix.h | 125 ++++++++++++++++++++++++++ include/asm-arm/arch-at91/at91_mc.h | 89 +++++++++++++++++++ include/asm-arm/arch-at91/at91_pdc.h | 41 +++++++++ include/asm-arm/arch-at91/at91_st.h | 48 ++++++++++ include/asm-arm/arch-at91/at91_tc.h | 79 +++++++++++++++++ include/asm-arm/arch-at91/at91rm9200.h | 135 ++++++++++++++++++++++++++++ 7 files changed, 662 insertions(+), 0 deletions(-) create mode 100644 include/asm-arm/arch-at91/at91_emac.h create mode 100644 include/asm-arm/arch-at91/at91_matrix.h create mode 100644 include/asm-arm/arch-at91/at91_mc.h create mode 100644 include/asm-arm/arch-at91/at91_pdc.h create mode 100644 include/asm-arm/arch-at91/at91_st.h create mode 100644 include/asm-arm/arch-at91/at91_tc.h create mode 100644 include/asm-arm/arch-at91/at91rm9200.h
include/asm-arm/arch-at91/at91_emac.h new file +145 -0
@@ -0,0 +1,145 @@ +/* +* Memory Setup stuff - taken from blob memsetup.S +* +* Copyright (C) 2009 Jens Scharsig (js_at_ng at scharsoft.de) +* +* based on AT91RM9200 datasheet revision I (36. Ethernet MAC (EMAC)) +* +* See file CREDITS for list of people who contributed to this +* project. +* +* 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 +*/ + +#ifndef AT91_H +#define AT91_H + +typedef struct at91_emac { +u32 ctl; +u32 cfg; +u32 sr; +u32 tar; +u32 tcr; +u32 tsr; +u32 rbqp; +u32 reserved0; +u32 rsr; +u32 isr; +u32 ier; +u32 idr; +u32 imr; +u32 man; +u32 reserved1[2 ]; +u32 fra; +u32 scol; +u32 mocl; +u32 ok; +u32 seqe; +u32 ale; +u32 dte; +u32 lcol; +u32 ecol; +u32 cse; +u32 tue; +u32 cde; +u32 elr; +u32 rjb; +u32 usf; +u32 sqee; +u32 drfc; +u32 reserved2[3 ]; +u32 hsh; +u32 hsl; +u32 sh1l; +u32 sa1h; +u32 sa2l; +u32 sa2h; +u32 sa3l; +u32 sa3h; +u32 sa4l; +u32 sa4h; +}at91_emac_t ; + +#define AT91_EMAC_CTL_LB 0x0001 +#define AT91_EMAC_CTL_LBL 0x0002 +#define AT91_EMAC_CTL_RE 0x0004 +#define AT91_EMAC_CTL_TE 0x0008 +#define AT91_EMAC_CTL_MPE 0x0010 +#define AT91_EMAC_CTL_CSR 0x0020 +#define AT91_EMAC_CTL_ISR 0x0040 +#define AT91_EMAC_CTL_WES 0x0080 +#define AT91_EMAC_CTL_BP 0x1000 + +#define AT91_EMAC_CFG_SPD 0x0001 +#define AT91_EMAC_CFG_FD 0x0002 +#define AT91_EMAC_CFG_BR 0x0004 +#define AT91_EMAC_CFG_CAF 0x0010 +#define AT91_EMAC_CFG_NBC 0x0020 +#define AT91_EMAC_CFG_MTI 0x0040 +#define AT91_EMAC_CFG_UNI 0x0080 +#define AT91_EMAC_CFG_BIG 0x0100 +#define AT91_EMAC_CFG_EAE 0x0200 +#define AT91_EMAC_CFG_CLK_MASK 0xFFFFF3FF +#define AT91_EMAC_CFG_MCLK_8 0x0000 +#define AT91_EMAC_CFG_MCLK_16 0x0400 +#define AT91_EMAC_CFG_MCLK_32 0x0800 +#define AT91_EMAC_CFG_MCLK_64 0x0C00 +#define AT91_EMAC_CFG_RTY 0x1000 +#define AT91_EMAC_CFG_RMII 0x2000 + +#define AT91_EMAC_SR_LINK 0x0001 +#define AT91_EMAC_SR_MDIO 0x0002 +#define AT91_EMAC_SR_IDLE 0x0004 + +#define AT91_EMAC_TCR_LEN (x) (x & 0x7FF) +#define AT91_EMAC_TCR_NCRC 0x8000 + +#define AT91_EMAC_TSR_OVR 0x0001 +#define AT91_EMAC_TSR_COL 0x0002 +#define AT91_EMAC_TSR_RLE 0x0004 +#define AT91_EMAC_TSR_TXIDLE 0x0008 +#define AT91_EMAC_TSR_BNQ 0x0010 +#define AT91_EMAC_TSR_COMP 0x0020 +#define AT91_EMAC_TSR_UND 0x0040 + +#define AT91_EMAC_RSR_BNA 0x0001 +#define AT91_EMAC_RSR_REC 0x0002 +#define AT91_EMAC_RSR_OVR 0x0004 + +/* ISR, IER, IDR, IMR use the same bits */ +#define AT91_EMAC_IxR_DONE 0x0001 +#define AT91_EMAC_IxR_RCOM 0x0002 +#define AT91_EMAC_IxR_RBNA 0x0004 +#define AT91_EMAC_IxR_TOVR 0x0008 +#define AT91_EMAC_IxR_TUND 0x0010 +#define AT91_EMAC_IxR_RTRY 0x0020 +#define AT91_EMAC_IxR_TBRE 0x0040 +#define AT91_EMAC_IxR_TCOM 0x0080 +#define AT91_EMAC_IxR_TIDLE 0x0100 +#define AT91_EMAC_IxR_LINK 0x0200 +#define AT91_EMAC_IxR_ROVR 0x0400 +#define AT91_EMAC_IxR_HRESP 0x0800 + +#define AT91_EMAC_MAN_DATA_MASK 0xFFFF +#define AT91_EMAC_MAN_CODE_802_3 0x00020000 +#define AT91_EMAC_MAN_REGA (reg) ((reg & 0x1F) << 18) +#define AT91_EMAC_MAN_PHYA (phy) ((phy & 0x1F) << 23) +#define AT91_EMAC_MAN_RW_R 0x20000000 +#define AT91_EMAC_MAN_RW_W 0x10000000 +#define AT91_EMAC_MAN_HIGH 0x40000000 +#define AT91_EMAC_MAN_LOW 0x80000000 + +#endif
include/asm-arm/arch-at91/at91_matrix.h new file +125 -0
126 lines not on this page · raw message
include/asm-arm/arch-at91/at91_mc.h new file +89 -0
90 lines not on this page · raw message
include/asm-arm/arch-at91/at91_pdc.h new file +41 -0
41 lines not on this page · raw message
include/asm-arm/arch-at91/at91_st.h new file +48 -0
49 lines not on this page · raw message
include/asm-arm/arch-at91/at91_tc.h new file +79 -0
79 lines not on this page · raw message
include/asm-arm/arch-at91/at91rm9200.h new file +135 -0
135 lines not on this page · raw message
Signature · 1 line
1.6.0.2