2009년 12월 20일 일요일

EZ-X5 Kernel 2.6 Touchpannel Setting (진행중)

---=====  작업 환경 =====---

작업 OS : Fedora 8
EZ-X5 : Kernel 2.6
C/C : arm-linux-3.3.4
Source : kernel 2.6 MK712 source(platform device 기반)
Applications : QT  4.5.2, Tslib  1.0


①  linux-2.6.21\arch\arm\mach-pxa\falinux_ez-x5.c에  아래와 같이 mk712 리소스 부분을 등록.

// mk712 touch [AlProgS] -----------------------------------------------
static struct resource mk712_resources[] = {
        [0] = {
        .name = "mk712_int",
        .start = IRQ_GPIO(22),
        .end = IRQ_GPIO(22),
        .flags = IORESOURCE_IRQ,
        },
};

static struct platform_device mk712_device = {
        .name = "mk712_touchscreen",
        .id = -1,
        .num_resources = ARRAY_SIZE(mk712_resources),
        .resource = mk712_resources,
};
//-----------------------------------------------------------------------


② platform_device 구조체 안에 &mk712_device;  추가.


③ map_desc 구조체 안에 아래와 같이 추가.

{ // nCS1 MK712        -- fast RD/WR
        .virtual  =  0xf1300000,
        .pfn    = __phys_to_pfn(PXA_CS1_PHYS+0x400000),
        .length   =  0x00100000,
        .type   = MT_DEVICE
},


④ 커널 2.4의 mk712.c를 커널 2.6의 커널에 올리기 위해 모듈 컴파일 도중,  컴파일 에러 잡기위해 아래와 같이 수정.

    #include <asm/irq.h>   ->   #include <linux/irq.h>
    #include <asm/io.h>    ->   #include <linux/io.h>

 

⑤ io = 0xf1300000, irq = IRQ_GPIO(22), gpio_irp = 22 로 수정.


⑥ mk712_init 펑션에 다음과 같이 수정.
   -> set_irq_type (MK712_DEFAULT_IRQ, IRQT_RISING);

댓글 없음:

댓글 쓰기