Commit 0941041e375be2d2659470ebcc5b37b67f11c1c7

Authored by balrog
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)