#include <netdev.h>
#include <mmc.h>
#include <mxcfb.h>
+#include <video_fb.h>
#include <linux/list.h>
#include <linux/fb.h>
#include <asm/io.h>
#define STK5_CAN_XCVR_GPIO MX28_PAD_LCD_D00__GPIO_1_0
+#define ENET_PAD_CTRL (MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_PULLUP)
+#define GPIO_PAD_CTRL (MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_PULLUP)
+#define I2C_PAD_CTRL (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_PULLUP)
+
+#ifndef CONFIG_CONS_INDEX
+struct serial_device *default_serial_console(void)
+{
+ return NULL;
+}
+#endif
+
static const struct gpio tx28_gpios[] = {
{ TX28_USBH_VBUSEN_GPIO, GPIOFLAG_OUTPUT_INIT_LOW, "USBH VBUSEN", },
{ TX28_USBH_OC_GPIO, GPIOFLAG_INPUT, "USBH OC", },
};
static const iomux_cfg_t tx28_pads[] = {
- /* UART pads */
-#if CONFIG_CONS_INDEX == 0
- MX28_PAD_AUART0_RX__DUART_CTS,
- MX28_PAD_AUART0_TX__DUART_RTS,
- MX28_PAD_AUART0_CTS__DUART_RX,
- MX28_PAD_AUART0_RTS__DUART_TX,
-#elif CONFIG_CONS_INDEX == 1
- MX28_PAD_AUART1_RX__AUART1_RX,
- MX28_PAD_AUART1_TX__AUART1_TX,
- MX28_PAD_AUART1_CTS__AUART1_CTS,
- MX28_PAD_AUART1_RTS__AUART1_RTS,
-#elif CONFIG_CONS_INDEX == 2
- MX28_PAD_AUART3_RX__AUART3_RX,
- MX28_PAD_AUART3_TX__AUART3_TX,
- MX28_PAD_AUART3_CTS__AUART3_CTS,
- MX28_PAD_AUART3_RTS__AUART3_RTS,
-#endif
/* I2C bus for internal DS1339, PCA9554 and on DIMM pins 40/41 */
- MX28_PAD_I2C0_SCL__I2C0_SCL,
- MX28_PAD_I2C0_SDA__I2C0_SDA,
+ MX28_PAD_I2C0_SCL__I2C0_SCL | I2C_PAD_CTRL,
+ MX28_PAD_I2C0_SDA__I2C0_SDA | I2C_PAD_CTRL,
/* USBH VBUSEN, OC */
MX28_PAD_SPDIF__GPIO_3_27,
#endif /* CONFIG_GET_FEC_MAC_ADDR_FROM_IIM */
static const iomux_cfg_t tx28_fec_pads[] = {
- MX28_PAD_ENET0_RX_EN__ENET0_RX_EN,
- MX28_PAD_ENET0_RXD0__ENET0_RXD0,
- MX28_PAD_ENET0_RXD1__ENET0_RXD1,
+ MX28_PAD_ENET0_RX_EN__ENET0_RX_EN | ENET_PAD_CTRL,
+ MX28_PAD_ENET0_RXD0__ENET0_RXD0 | ENET_PAD_CTRL,
+ MX28_PAD_ENET0_RXD1__ENET0_RXD1 | ENET_PAD_CTRL,
};
int board_eth_init(bd_t *bis)
LED_STATE_INIT = -1,
LED_STATE_OFF,
LED_STATE_ON,
+ LED_STATE_DISABLED,
};
+static int led_state = LED_STATE_DISABLED;
+
void show_activity(int arg)
{
- static int led_state = LED_STATE_INIT;
static ulong last;
- if (led_state == LED_STATE_INIT) {
+ if (led_state == LED_STATE_DISABLED) {
+ return;
+ } else if (led_state == LED_STATE_INIT) {
last = get_timer(0);
gpio_set_value(TX28_LED_GPIO, 1);
led_state = LED_STATE_ON;
last = get_timer(0);
if (led_state == LED_STATE_ON) {
gpio_set_value(TX28_LED_GPIO, 0);
+ led_state = LED_STATE_OFF;
} else {
gpio_set_value(TX28_LED_GPIO, 1);
+ led_state = LED_STATE_ON;
}
- led_state = 1 - led_state;
}
}
}
static const iomux_cfg_t stk5_pads[] = {
/* SW controlled LED on STK5 baseboard */
- MX28_PAD_ENET0_RXD3__GPIO_4_10,
+ MX28_PAD_ENET0_RXD3__GPIO_4_10 | GPIO_PAD_CTRL,
};
static const struct gpio stk5_gpios[] = {
};
#ifdef CONFIG_LCD
-static ushort tx28_cmap[256];
vidinfo_t panel_info = {
/* set to max. size supported by SoC */
.vl_col = 1600,
.vl_row = 1200,
.vl_bpix = LCD_COLOR32, /* Bits per pixel, 0: 1bpp, 1: 2bpp, 2: 4bpp, 3: 8bpp ... */
- .cmap = tx28_cmap,
};
static struct fb_videomode tx28_fb_modes[] = {
{ TX28_LCD_BACKLIGHT_GPIO, GPIOFLAG_OUTPUT_INIT_HIGH, "LCD BACKLIGHT", },
};
-extern void video_hw_init(void *lcdbase);
-
void lcd_ctrl_init(void *lcdbase)
{
int color_depth = 24;
setenv("videomode", vmode);
debug("Initializing LCD controller\n");
- video_hw_init(lcdbase);
+ video_hw_init();
setenv("videomode", NULL);
} else {
debug("Skipping initialization of LCD controller\n");
static void stk5v3_board_init(void)
{
+ led_state = LED_STATE_INIT;
stk5_board_init();
}