하드웨어
GPIO를초기화를 하였다면 GPIO를 제어하는 합수에 대해서 알아 보도록 하겠습니다.
1) gpio_set_value(unsigned gpio, int value)
gpio를 High 또는 Low로 설정하는 함수이다. 아래는 gpio_set_value 함수의 흐름이다.
- arch/arm/mach-s3c6400/include/mach/gpio.h
#define gpio_set_value __gpio_set_value
- include/asm-generic/gpio.h
extern void __gpio_set_value(unsigned gpio, int value);
- drivers/gpio/gpiolib.c
void __gpio_set_value(unsigned gpio, int value)
저번 소스에 이어 gpio_set_value 를 IOCTL 함수에 추가하도록 하겠습니다.
Write함수에서 제어해도 상관은 없지만 좀더 유연성을 가지기 위해서 IOCTL 함수를 사용하기로 합니다.
1. gpio.h
#ifndef _DEV_GPIO_H_
/* 모듈관련 -------------------------------------------------------------------*/
#define IOCTL_GPIO_ON _IO ( GPIO_IOCTL_MAGIC, 1 )
#endif // _DEV_GPIO_H_ |
2. gpio.c
#ifndef __KERNEL__ //------------------------------------------------------------------------------ |