Commit 0941041e375be2d2659470ebcc5b37b67f11c1c7
1 parent
c30bb264
N810 keyboard slide open by default, add more comments.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4491 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
33 additions
and
4 deletions
hw/nseries.c
| @@ -56,11 +56,13 @@ struct n800_s { | @@ -56,11 +56,13 @@ struct n800_s { | ||
| 56 | #define N8X0_TUSB_ENABLE_GPIO 0 | 56 | #define N8X0_TUSB_ENABLE_GPIO 0 |
| 57 | #define N800_MMC2_WP_GPIO 8 | 57 | #define N800_MMC2_WP_GPIO 8 |
| 58 | #define N800_UNKNOWN_GPIO0 9 /* out */ | 58 | #define N800_UNKNOWN_GPIO0 9 /* out */ |
| 59 | +#define N810_MMC2_VIOSD_GPIO 9 | ||
| 59 | #define N800_UNKNOWN_GPIO1 10 /* out */ | 60 | #define N800_UNKNOWN_GPIO1 10 /* out */ |
| 60 | #define N800_CAM_TURN_GPIO 12 | 61 | #define N800_CAM_TURN_GPIO 12 |
| 61 | #define N810_GPS_RESET_GPIO 12 | 62 | #define N810_GPS_RESET_GPIO 12 |
| 62 | #define N800_BLIZZARD_POWERDOWN_GPIO 15 | 63 | #define N800_BLIZZARD_POWERDOWN_GPIO 15 |
| 63 | #define N800_MMC1_WP_GPIO 23 | 64 | #define N800_MMC1_WP_GPIO 23 |
| 65 | +#define N810_MMC2_VSD_GPIO 23 | ||
| 64 | #define N8X0_ONENAND_GPIO 26 | 66 | #define N8X0_ONENAND_GPIO 26 |
| 65 | #define N810_BLIZZARD_RESET_GPIO 30 | 67 | #define N810_BLIZZARD_RESET_GPIO 30 |
| 66 | #define N800_UNKNOWN_GPIO2 53 /* out */ | 68 | #define N800_UNKNOWN_GPIO2 53 /* out */ |
| @@ -799,6 +801,10 @@ static void n8x0_boot_init(void *opaque) | @@ -799,6 +801,10 @@ static void n8x0_boot_init(void *opaque) | ||
| 799 | /* CPU setup */ | 801 | /* CPU setup */ |
| 800 | s->cpu->env->regs[15] = s->cpu->env->boot_info->loader_start; | 802 | s->cpu->env->regs[15] = s->cpu->env->boot_info->loader_start; |
| 801 | s->cpu->env->GE = 0x5; | 803 | s->cpu->env->GE = 0x5; |
| 804 | + | ||
| 805 | + /* If the machine has a slided keyboard, open it */ | ||
| 806 | + if (s->kbd) | ||
| 807 | + qemu_irq_raise(omap2_gpio_in_get(s->cpu->gpif, N810_SLIDE_GPIO)[0]); | ||
| 802 | } | 808 | } |
| 803 | 809 | ||
| 804 | #define OMAP_TAG_NOKIA_BT 0x4e01 | 810 | #define OMAP_TAG_NOKIA_BT 0x4e01 |
| @@ -1057,6 +1063,25 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device, | @@ -1057,6 +1063,25 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device, | ||
| 1057 | 1063 | ||
| 1058 | s->cpu = omap2420_mpu_init(sdram_size, NULL, cpu_model); | 1064 | s->cpu = omap2420_mpu_init(sdram_size, NULL, cpu_model); |
| 1059 | 1065 | ||
| 1066 | + /* Setup peripherals | ||
| 1067 | + * | ||
| 1068 | + * Believed external peripherals layout in the N810: | ||
| 1069 | + * (spi bus 1) | ||
| 1070 | + * tsc2005 | ||
| 1071 | + * lcd_mipid | ||
| 1072 | + * (spi bus 2) | ||
| 1073 | + * Conexant cx3110x (WLAN) | ||
| 1074 | + * optional: pc2400m (WiMAX) | ||
| 1075 | + * (i2c bus 0) | ||
| 1076 | + * TLV320AIC33 (audio codec) | ||
| 1077 | + * TCM825x (camera by Toshiba) | ||
| 1078 | + * lp5521 (clever LEDs) | ||
| 1079 | + * tsl2563 (light sensor, hwmon, model 7, rev. 0) | ||
| 1080 | + * lm8323 (keypad, manf 00, rev 04) | ||
| 1081 | + * (i2c bus 1) | ||
| 1082 | + * tmp105 (temperature sensor, hwmon) | ||
| 1083 | + * menelaus (pm) | ||
| 1084 | + */ | ||
| 1060 | n8x0_gpio_setup(s); | 1085 | n8x0_gpio_setup(s); |
| 1061 | n8x0_nand_setup(s); | 1086 | n8x0_nand_setup(s); |
| 1062 | n8x0_i2c_setup(s); | 1087 | n8x0_i2c_setup(s); |
hw/tsc2005.c
| @@ -197,10 +197,14 @@ static void tsc2005_write(struct tsc2005_state_s *s, int reg, uint16_t data) | @@ -197,10 +197,14 @@ static void tsc2005_write(struct tsc2005_state_s *s, int reg, uint16_t data) | ||
| 197 | 197 | ||
| 198 | case 0xc: /* CFR0 */ | 198 | case 0xc: /* CFR0 */ |
| 199 | s->host_mode = data >> 15; | 199 | s->host_mode = data >> 15; |
| 200 | - s->enabled = !(data & 0x4000); | ||
| 201 | - if (s->busy && !s->enabled) | ||
| 202 | - qemu_del_timer(s->timer); | ||
| 203 | - s->busy &= s->enabled; | 200 | + if (s->enabled != !(data & 0x4000)) { |
| 201 | + s->enabled = !(data & 0x4000); | ||
| 202 | + fprintf(stderr, "%s: touchscreen sense %sabled\n", | ||
| 203 | + __FUNCTION__, s->enabled ? "en" : "dis"); | ||
| 204 | + if (s->busy && !s->enabled) | ||
| 205 | + qemu_del_timer(s->timer); | ||
| 206 | + s->busy &= s->enabled; | ||
| 207 | + } | ||
| 204 | s->nextprecision = (data >> 13) & 1; | 208 | s->nextprecision = (data >> 13) & 1; |
| 205 | s->timing[0] = data & 0x1fff; | 209 | s->timing[0] = data & 0x1fff; |
| 206 | if ((s->timing[0] >> 11) == 3) | 210 | if ((s->timing[0] >> 11) == 3) |