Mainstone keypad support
PATCH 2/2 Mainstone keypad support
This is the mainstone II keypad support for alpha numeric keypad. excludes the multiswitch and rotatory switch support Needs "[Patch 1/2][PXA27x] initial keypad support" patch in order to work
- Armin
hw/mainstone.c +1 -0
@@ -78,6 +78,7 @@ static void mainstone_common_init(int ra } mst_irq =mst_irq_init (cpu,MST_FPGA_PHYS ,PXA2XX_PIC_GPIO_0 ); +mst_keyboard_register (cpu->kp);/* MMC/SD host */ pxa2xx_mmci_handlers (cpu->mmc,NULL , mst_irq[MMC_IRQ ]);
hw/mst_kpad.c new file +30 -0
@@ -0,0 +1,30 @@ +/* +* PXA270-based Intel Mainstone Keypad support. +* +* Copyright (c) 2007 by Armin Kuster <[email protected]> or +* <[email protected]> +* +* This code is licensed under the GNU GPL v2. +*/ + + +#include "hw.h" +#include "pxa.h" + +/* main keypad layout */ +int mst_keymap[PXAKBD_MAXROW ][PXAKBD_MAXCOL ] = { + {0x1e ,0x30 ,0x2e ,0x20 ,0x12 ,0x21 ,-1 ,-1 }, + {0x22 ,0x23 ,0x17 ,0x24 ,0x25 ,0x26 ,-1 ,-1 }, + {0x32 ,0x31 ,0x18 ,0x19 ,0x10 ,0x13 ,-1 ,-1 }, + {0x1f ,0x14 ,0x16 ,0x2f ,0x11 ,0x2d ,-1 ,-1 }, + {-1 ,-1 ,0x15 ,0x2c ,-1 ,-1 ,-1 ,-1 }, + {0xc7 ,0x2a ,0x39 ,0x39 ,-1 ,0x1c ,-1 ,-1 }, + {0xc8 ,0xd0 ,0xcb ,0xcd ,-1 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 } +}; + +void mst_keyboard_register (struct pxa2xx_keypad_s *kp) +{ +pxa27_register_keyboard (kp, mst_keymap,sizeof (mst_keymap)); + +}
hw/mainstone.h +1 -1
@@ -34,5 +34,5 @@extern qemu_irq *mst_irq_init (struct pxa2xx_state_s *cpu,uint32_t base,int irq); - +extern void mst_keyboard_register (struct pxa2xx_keypad_s *kp);#endif /* __MAINSTONE_H__ */
Makefile.target +1 -1
@@ -499,7 +499,7 @@ VL_OBJS+= pflash_cfi01.o gumstix.o VL_OBJS+= spitz.o ide.o serial.o nand.o ecc.o VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o omap_i2c.o VL_OBJS+= palm.o tsc210x.o -VL_OBJS+= mst_fpga.o mainstone.o +VL_OBJS+= mst_fpga.o mainstone.o mst_kpad.o CPPFLAGS += -DHAS_AUDIO endif ifeq ($(TARGET_BASE_ARCH), sh4)