SMALL
    | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | [step7 : Keybutton Driver (LDM platform_driver)  ] [1] ~/arch/arm/mach-s5pv210/mach-elv210.c           //cpu//board// /*        tip  *        보드는 누군가의 보드를 보고 만듬, 그래서 참고한 부분이 꼭 존재함  */ /*  *      1단계  */ line 322 :                               [변경 하는 부분] static struct platform_device elv210keybtn_device = {     .name           = "elv210-keybutton",  //파일이름과 같아야함 코드     .id             =  -1, //운영체제에서 자동 할당 }; /*  *      2단계  */ line 362 : //__initdata 역할은 초기화 하고 소멸하고 없어지라는 의미 메모리를 차지하지 말고 free해라 static struct platform_device *elv210_devices[] __initdata = {     &s3c_device_adc,     &s3c_device_cfcon,         ...     &elv210_lcd_lte480wv,     &device_smsc911x, //Added     &hx8526_ts_device, // Added..     &s5pv210_device_nand, // Added     &elv210keybtn_device,  //--> 추가된 부분 }; /*  *               일반 디바이스 드라이버 빌트 인과 같음  *               3단계  : 코드 옮김  */ [2] copy  elv210_keybutton.c  to ~/drivers/input/keyboard/ /*  *      4단계 : Kconfig 수정  */ [3] ~/drivers/input/keyboard/Kconfig line 506: config KEYBOARD_ELV210     tristate "ELV210 keybutton support"     help       GPIO keybutton driver for ELV210 Board...     /*      *      5단계 : Makefile 수정      */ [4] ~/drivers/input/keyboard/Makefile line 50 :    ... obj-$(CONFIG_KEYBOARD_QT2160)        += qt2160.o obj-$(CONFIG_KEYBOARD_SAMSUNG)        += samsung-keypad.o obj-$(CONFIG_KEYBOARD_ELV210)        += elv210_keybutton.o obj-$(CONFIG_KEYBOARD_SH_KEYSC)        += sh_keysc.o    ... [5] - make menuconfig 실행 후 Device drivers->Input device support->[*] Keyboards 를 선택하고 하위메뉴로 들어가서  <*>  ELV210 keybutton support 를 선택해준다 [6] make clean && make zImage [7] reboot [    1.799607] smsc911x smsc911x.0 eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=smsc911x-0:01, irq=-1) [    1.804355] smsc911x smsc911x.0 eth0: MAC Address: fa:c1:6d:76:79:bc [    1.810944] mousedev: PS/2 mouse device common for all mice [    1.816354] eLV210 external key button probe!! [    1.820558] HX8526 Multi-touchscreen driver 2012 [    1.842542] input: hx8526_ts_input as /devices/virtual/input/input0 [    1.971966] (null): dev id = 0x26, 0x0, 0x0 /*  *      옳바르게 등록되어 있는지 확인하는 방법  */ # ls /sys/bus/platform/devices/ alarmtimer        s3c-sdhci.2       s5p-mfc-l         s5pv210-uart.3 arm-pmu           s3c-sdhci.3       s5p-mfc-r         samsung-ac97 dm9000            s3c2410-wdt       s5pv210-fb        samsung-adc-v3 elv210-keybutton  s3c2440-i2c.0     s5pv210-fimc.0    samsung-i2s.0 hx8526-ts.0       s3c2440-i2c.1     s5pv210-fimc.1    samsung-idma i2c-gpio.3        s3c2440-i2c.2     s5pv210-fimc.2    samsung-pwm ... # ls /sys/bus/platform/drivers alarmtimer        platform-lcd      s3c-i2c           samsung-pwm arm-pmu           pwm-backlight     s3c-rtc           samsung-uart elv210-keybutton  s3c-adc           s3c-sdhci         smsc911x i2c-gpio          s3c-fb            s3c2410-wdt | cs | 
LIST
    '학부_대학원 > 임베디드 리눅스' 카테고리의 다른 글
| (임베디드)리눅스 커널 모듈 - IOCTL (0) | 2017.07.14 | 
|---|---|
| (임베디드)리눅스 커널 모듈 - 인터럽트, 플랫폼 디바이스 드라이버 (0) | 2017.07.13 | 
| (임베디드)리눅스 커널 모듈 - User, Kernel 통신 (0) | 2017.07.13 | 
| Mango Board 정리 (0) | 2017.07.12 | 
| (임베디드)리눅스 커널 모듈 - Character Device Driver (0) | 2017.07.12 |