| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | *  linux/include/asm-arm/arch-omap/board.h | 
|  | 3 | * | 
|  | 4 | *  Information structures for board-specific data | 
|  | 5 | * | 
|  | 6 | *  Copyright (C) 2004	Nokia Corporation | 
| John Anthony Kazos Jr | 121e70b | 2007-05-09 08:30:57 +0200 | [diff] [blame] | 7 | *  Written by Juha Yrjölä <juha.yrjola@nokia.com> | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 8 | */ | 
|  | 9 |  | 
|  | 10 | #ifndef _OMAP_BOARD_H | 
|  | 11 | #define _OMAP_BOARD_H | 
|  | 12 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 13 | #include <linux/types.h> | 
|  | 14 |  | 
| Tony Lindgren | f4e4c32 | 2006-12-07 13:57:38 -0800 | [diff] [blame] | 15 | #include <asm/arch/gpio-switch.h> | 
|  | 16 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 17 | /* Different peripheral ids */ | 
|  | 18 | #define OMAP_TAG_CLOCK		0x4f01 | 
|  | 19 | #define OMAP_TAG_MMC		0x4f02 | 
| Tony Lindgren | af973d2 | 2005-07-10 19:58:06 +0100 | [diff] [blame] | 20 | #define OMAP_TAG_SERIAL_CONSOLE 0x4f03 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 21 | #define OMAP_TAG_USB		0x4f04 | 
|  | 22 | #define OMAP_TAG_LCD		0x4f05 | 
|  | 23 | #define OMAP_TAG_GPIO_SWITCH	0x4f06 | 
| Tony Lindgren | af973d2 | 2005-07-10 19:58:06 +0100 | [diff] [blame] | 24 | #define OMAP_TAG_UART		0x4f07 | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 25 | #define OMAP_TAG_FBMEM		0x4f08 | 
|  | 26 | #define OMAP_TAG_STI_CONSOLE	0x4f09 | 
| Samuel Ortiz | c6e5980 | 2006-06-26 16:16:19 -0700 | [diff] [blame] | 27 | #define OMAP_TAG_CAMERA_SENSOR	0x4f0a | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 28 |  | 
|  | 29 | #define OMAP_TAG_BOOT_REASON    0x4f80 | 
|  | 30 | #define OMAP_TAG_FLASH_PART	0x4f81 | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 31 | #define OMAP_TAG_VERSION_STR	0x4f82 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 32 |  | 
|  | 33 | struct omap_clock_config { | 
|  | 34 | /* 0 for 12 MHz, 1 for 13 MHz and 2 for 19.2 MHz */ | 
|  | 35 | u8 system_clock_type; | 
|  | 36 | }; | 
|  | 37 |  | 
| Tony Lindgren | 9839c6b | 2005-09-07 17:20:27 +0100 | [diff] [blame] | 38 | struct omap_mmc_conf { | 
|  | 39 | unsigned enabled:1; | 
|  | 40 | /* nomux means "standard" muxing is wrong on this board, and that | 
|  | 41 | * board-specific code handled it before common init logic. | 
|  | 42 | */ | 
|  | 43 | unsigned nomux:1; | 
|  | 44 | /* switch pin can be for card detect (default) or card cover */ | 
|  | 45 | unsigned cover:1; | 
|  | 46 | /* 4 wire signaling is optional, and is only used for SD/SDIO */ | 
|  | 47 | unsigned wire4:1; | 
|  | 48 | s16 power_pin; | 
|  | 49 | s16 switch_pin; | 
|  | 50 | s16 wp_pin; | 
|  | 51 | }; | 
|  | 52 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 53 | struct omap_mmc_config { | 
| Tony Lindgren | 9839c6b | 2005-09-07 17:20:27 +0100 | [diff] [blame] | 54 | struct omap_mmc_conf mmc[2]; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 55 | }; | 
|  | 56 |  | 
| Tony Lindgren | af973d2 | 2005-07-10 19:58:06 +0100 | [diff] [blame] | 57 | struct omap_serial_console_config { | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 58 | u8 console_uart; | 
|  | 59 | u32 console_speed; | 
|  | 60 | }; | 
|  | 61 |  | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 62 | struct omap_sti_console_config { | 
|  | 63 | unsigned enable:1; | 
|  | 64 | u8 channel; | 
|  | 65 | }; | 
|  | 66 |  | 
| Samuel Ortiz | c6e5980 | 2006-06-26 16:16:19 -0700 | [diff] [blame] | 67 | struct omap_camera_sensor_config { | 
|  | 68 | u16 reset_gpio; | 
|  | 69 | int (*power_on)(void * data); | 
|  | 70 | int (*power_off)(void * data); | 
|  | 71 | }; | 
|  | 72 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 73 | struct omap_usb_config { | 
|  | 74 | /* Configure drivers according to the connectors on your board: | 
|  | 75 | *  - "A" connector (rectagular) | 
|  | 76 | *	... for host/OHCI use, set "register_host". | 
|  | 77 | *  - "B" connector (squarish) or "Mini-B" | 
|  | 78 | *	... for device/gadget use, set "register_dev". | 
|  | 79 | *  - "Mini-AB" connector (very similar to Mini-B) | 
|  | 80 | *	... for OTG use as device OR host, initialize "otg" | 
|  | 81 | */ | 
|  | 82 | unsigned	register_host:1; | 
|  | 83 | unsigned	register_dev:1; | 
|  | 84 | u8		otg;	/* port number, 1-based:  usb1 == 2 */ | 
|  | 85 |  | 
|  | 86 | u8		hmc_mode; | 
|  | 87 |  | 
|  | 88 | /* implicitly true if otg:  host supports remote wakeup? */ | 
|  | 89 | u8		rwc; | 
|  | 90 |  | 
|  | 91 | /* signaling pins used to talk to transceiver on usbN: | 
|  | 92 | *  0 == usbN unused | 
|  | 93 | *  2 == usb0-only, using internal transceiver | 
|  | 94 | *  3 == 3 wire bidirectional | 
|  | 95 | *  4 == 4 wire bidirectional | 
|  | 96 | *  6 == 6 wire unidirectional (or TLL) | 
|  | 97 | */ | 
|  | 98 | u8		pins[3]; | 
|  | 99 | }; | 
|  | 100 |  | 
|  | 101 | struct omap_lcd_config { | 
|  | 102 | char panel_name[16]; | 
|  | 103 | char ctrl_name[16]; | 
| Tony Lindgren | f4e4c32 | 2006-12-07 13:57:38 -0800 | [diff] [blame] | 104 | s16  nreset_gpio; | 
|  | 105 | u8   data_lines; | 
|  | 106 | }; | 
|  | 107 |  | 
|  | 108 | struct device; | 
|  | 109 | struct fb_info; | 
|  | 110 | struct omap_backlight_config { | 
|  | 111 | int default_intensity; | 
|  | 112 | int (*set_power)(struct device *dev, int state); | 
|  | 113 | int (*check_fb)(struct fb_info *fb); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 114 | }; | 
|  | 115 |  | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 116 | struct omap_fbmem_config { | 
| Tony Lindgren | f4e4c32 | 2006-12-07 13:57:38 -0800 | [diff] [blame] | 117 | u32 start; | 
|  | 118 | u32 size; | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 119 | }; | 
|  | 120 |  | 
| Tony Lindgren | f4e4c32 | 2006-12-07 13:57:38 -0800 | [diff] [blame] | 121 | struct omap_pwm_led_platform_data { | 
|  | 122 | const char *name; | 
|  | 123 | int intensity_timer; | 
|  | 124 | int blink_timer; | 
|  | 125 | void (*set_power)(struct omap_pwm_led_platform_data *self, int on_off); | 
|  | 126 | }; | 
|  | 127 |  | 
|  | 128 | /* See include/asm-arm/arch-omap/gpio-switch.h for definitions */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 129 | struct omap_gpio_switch_config { | 
|  | 130 | char name[12]; | 
|  | 131 | u16 gpio; | 
|  | 132 | int flags:4; | 
|  | 133 | int type:4; | 
|  | 134 | int key_code:24; /* Linux key code */ | 
|  | 135 | }; | 
|  | 136 |  | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 137 | struct omap_uart_config { | 
|  | 138 | /* Bit field of UARTs present; bit 0 --> UART1 */ | 
|  | 139 | unsigned int enabled_uarts; | 
|  | 140 | }; | 
|  | 141 |  | 
|  | 142 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 143 | struct omap_flash_part_config { | 
|  | 144 | char part_table[0]; | 
|  | 145 | }; | 
|  | 146 |  | 
|  | 147 | struct omap_boot_reason_config { | 
|  | 148 | char reason_str[12]; | 
|  | 149 | }; | 
|  | 150 |  | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 151 | struct omap_version_config { | 
|  | 152 | char component[12]; | 
|  | 153 | char version[12]; | 
| Tony Lindgren | af973d2 | 2005-07-10 19:58:06 +0100 | [diff] [blame] | 154 | }; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 155 |  | 
| Tony Lindgren | 9b6553c | 2006-04-02 17:46:30 +0100 | [diff] [blame] | 156 |  | 
|  | 157 | #include <asm-arm/arch-omap/board-nokia.h> | 
|  | 158 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 159 | struct omap_board_config_entry { | 
|  | 160 | u16 tag; | 
|  | 161 | u16 len; | 
|  | 162 | u8  data[0]; | 
|  | 163 | }; | 
|  | 164 |  | 
|  | 165 | struct omap_board_config_kernel { | 
|  | 166 | u16 tag; | 
|  | 167 | const void *data; | 
|  | 168 | }; | 
|  | 169 |  | 
|  | 170 | extern const void *__omap_get_config(u16 tag, size_t len, int nr); | 
|  | 171 |  | 
|  | 172 | #define omap_get_config(tag, type) \ | 
|  | 173 | ((const type *) __omap_get_config((tag), sizeof(type), 0)) | 
|  | 174 | #define omap_get_nr_config(tag, type, nr) \ | 
|  | 175 | ((const type *) __omap_get_config((tag), sizeof(type), (nr))) | 
|  | 176 |  | 
|  | 177 | extern const void *omap_get_var_config(u16 tag, size_t *len); | 
|  | 178 |  | 
|  | 179 | extern struct omap_board_config_kernel *omap_board_config; | 
|  | 180 | extern int omap_board_config_size; | 
|  | 181 |  | 
| David Brownell | f604931 | 2006-12-06 17:14:03 -0800 | [diff] [blame] | 182 |  | 
|  | 183 | /* for TI reference platforms sharing the same debug card */ | 
|  | 184 | extern int debug_card_init(u32 addr, unsigned gpio); | 
|  | 185 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 186 | #endif |