1 #ifndef CYGONCE_KARO_TX53_H
2 #define CYGONCE_KARO_TX53_H
4 //=============================================================================
6 // Platform specific support (register layout, etc)
8 //=============================================================================
9 //####ECOSGPLCOPYRIGHTBEGIN####
10 // -------------------------------------------
11 // This file is part of eCos, the Embedded Configurable Operating System.
12 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
14 // eCos is free software; you can redistribute it and/or modify it under
15 // the terms of the GNU General Public License as published by the Free
16 // Software Foundation; either version 2 or (at your option) any later version.
18 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
19 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23 // You should have received a copy of the GNU General Public License along
24 // with eCos; if not, write to the Free Software Foundation, Inc.,
25 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
27 // As a special exception, if other files instantiate templates or use macros
28 // or inline functions from this file, or you compile this file and link it
29 // with other works to produce a work based on this file, this file does not
30 // by itself cause the resulting work to be covered by the GNU General Public
31 // License. However the source code for this file must still be made available
32 // in accordance with section (3) of the GNU General Public License.
34 // This exception does not invalidate any other reasons why a work based on
35 // this file might be covered by the GNU General Public License.
37 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
38 // at http://sources.redhat.com/ecos/ecos-license/
39 // -------------------------------------------
40 //####ECOSGPLCOPYRIGHTEND####
41 //===========================================================================
43 #include <cyg/hal/hal_soc.h> // Hardware definitions
44 #include <cyg/hal/mx53_iomux.h>
46 #include CYGHWR_MEMORY_LAYOUT_H
49 #define GPIO_GDIR 0x04
52 #define STK5_LED_MASK (1 << 20)
53 #define STK5_LED_REG_ADDR (GPIO2_BASE_ADDR + GPIO_DR)
57 #define SOC_FEC_MAC_BASE (IIM_BASE_ADDR + 0xc24)
59 #define TX53_SDRAM_SIZE SDRAM_SIZE
61 #define LED_IS_ON(n) ({ \
63 HAL_READ_UINT32(STK5_LED_REG_ADDR, __val); \
64 __val & STK5_LED_MASK; \
67 #define TURN_LED_ON(n) \
70 HAL_READ_UINT32(STK5_LED_REG_ADDR, __val); \
71 __val |= STK5_LED_MASK; \
72 HAL_WRITE_UINT32(STK5_LED_REG_ADDR, __val); \
75 #define TURN_LED_OFF(n) \
78 HAL_READ_UINT32(STK5_LED_REG_ADDR, __val); \
79 __val &= ~STK5_LED_MASK; \
80 HAL_WRITE_UINT32(STK5_LED_REG_ADDR, __val); \
83 #define BOARD_DEBUG_LED(n) \
85 if (n >= 0 && n < LED_MAX_NUM) { \
93 #define BLINK_LED(l, n) \
96 for (_i = 0; _i < (n); _i++) { \
98 HAL_DELAY_US(200000); \
100 HAL_DELAY_US(300000); \
102 HAL_DELAY_US(1000000); \
105 #if !defined(__ASSEMBLER__)
106 extern int tx53_fuse_voltage(int on);
107 #define FUSE_PROG_START() tx53_fuse_voltage(1)
108 #define FUSE_PROG_DONE() tx53_fuse_voltage(0)
110 void mxc_ipu_iomux_config(void);
116 #define gpio_tst_bit(__grp, __gpio) \
118 CYG_ADDRESS addr = MX53_GPIO_ADDR(__grp); \
123 if (__gpio < 0 || __gpio >= GPIO_NUM_PIN) { \
126 HAL_READ_UINT32(addr + GPIO_PSR, val); \
127 return !!(val & (1 << __gpio)); \
130 #define gpio_set_bit(__grp, __gpio) \
133 CYG_ADDRESS addr = MX53_GPIO_ADDR(__grp); \
137 if (__gpio < 0 || __gpio >= GPIO_NUM_PIN) \
140 HAL_READ_UINT32(addr + GPIO_DR, val); \
141 HAL_WRITE_UINT32(addr + GPIO_DR, val | (1 << __gpio)); \
143 HAL_READ_UINT32(addr + GPIO_GDIR, val); \
144 HAL_WRITE_UINT32(addr + GPIO_GDIR, val | (1 << __gpio)); \
147 #define gpio_clr_bit(__grp, __gpio) \
150 CYG_ADDRESS addr = MX53_GPIO_ADDR(__grp); \
154 if (__gpio < 0 || __gpio >= GPIO_NUM_PIN) \
157 HAL_READ_UINT32(addr + GPIO_DR, val); \
158 HAL_WRITE_UINT32(addr + GPIO_DR, val & ~(1 << __gpio)); \
160 HAL_READ_UINT32(addr + GPIO_GDIR, val); \
161 HAL_WRITE_UINT32(addr + GPIO_GDIR, val | (1 << __gpio)); \
164 #endif /* __ASSEMBLER__ */
166 #endif /* CYGONCE_KARO_TX53_H */