강좌 & 팁
안녕하세요 판다 이우영입니다.
커널 패치!!
드라이버 작업을 들어가기 전에 현재 falinux에서 배포되고 있는 v210 커널에서
samsung에서 제공하는 pwm 드라이버가 빌드가 되지 않고 있습니다.
그럼 간단하게 몇가지를 추가하여 빌드가 될 수 있도록 수정해 보겠습니다.
먼저 mach 파일을 열어서 platform_device 정보를 추가해 주겠습니다.
arch/arm/mach-s5pv210/mach-ezs5pv210.c |
}; #endif +#ifdef CONFIG_HAVE_PWM +static struct resource wiegand_resources[] = { + [0] = { + .start = 2, + .end = 2, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 3, + .end = 3, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device device_pwm = { + .name = "pwm", + .id = -1, + .num_resources = ARRAY_SIZE(wiegand_resources), + .resource = wiegand_resources, + .dev = { + .platform_data = s3c_device_timer, + }, +}; +#endif + #ifdef CONFIG_SERIAL_8250 //================================================== #include <linux/serial_8250.h> #include <asm/serial.h> ~~ static struct platform_device *ezs5pv210_devices[] __initdata = { ~~ #ifdef CONFIG_AX88796B &device_ax88796, #endif + +#ifdef CONFIG_HAVE_PWM + &s3c_device_timer[2], + &s3c_device_timer[3], + &device_pwm, +#endif + #ifdef CONFIG_SERIAL_8250 &device_serial, #endif |
그리고 Kconfig를 수정해서 커널에서 제공하는 pwm 제어 드라이버를 등록해 주겠습니다.
arch/arm/mach-s5pv210/Kconfig |
config MACH_EZS5PV210 ~~ select S3C_DEV_WDT select HAVE_S3C2410_WATCHDOG select S5PV210_SETUP_SDHCI + select HAVE_PWM help Machine support for the FALinux EZ-S5PV210 ~~ |
그럼 패치 끝~
커널 패치 확인!!
그럼 커널 패치가 잘 되었는지 확인을 해보도록 하겠습니다.
방법은 간단 합니다.
부팅 메시지를통해 우리가 추가한 패치를 확인만 하면됩니다.
전부올리면 너무 많으니 다으 메시지가 나왔는지 확인해 주세요.
커널 부팅 메시지 |
~~ S5PV210: Initializing architecture s3c24xx-pwm s3c24xx-pwm.2: tin at 2779166, tdiv at 2779166, tin=divclk, base 12 s3c24xx-pwm s3c24xx-pwm.3: tin at 2779166, tdiv at 2779166, tin=divclk, base 16 bio: create slab <bio-0> at 0 ~~ |
간단하죠?
오늘도 여기까지!!!
다음시간에는 직접 디바이스 드라이버를 작성해서 pwm 신호가 잔 나오는지 확인해보도록 하겠습니다.
그럼 바이~
pwm 제어(3)은 왜 안올려주시는지...... 궁금합니다...