안녕하세요.

EZ-S3C2440보드 사용중입니다.

2410 보드용 샘플 소스코드 참조해서 GPIO 디바이스 드라이버 만들고 있는데요.

소스코드에 예로 나온 GPF4 ~ GPF7은 잘 동작하는데 다른 핀으로 해보니 잘 안되네요.

GPF4~GPF7에 연결된 디버그용 LED는 잘 동작 합니다.

같은 소스코드로 GPF0~GPF3을 해봤는데 동작을 안하네요.

이건 샘플에 나온 소스코드이구요

void hw_gpf_init( void )
{
    set_GPIO_IN(  reg_s2410(S3C2410_GPFCON), 4 );
    set_GPIO_IN(  reg_s2410(S3C2410_GPFCON), 5 );
 
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 6 );
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 7 );
 
    // 내부 pull-up disable  7..4
    reg_s2410(S3C2410_GPFUP) |= 0xf0;
 
    // led off
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 6, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 7, 1 );
}

아래는 제가 수정해본 코드입니다.
void hw_gpf_init( void )
{
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 0 );
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 1);
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 2 );
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 3 );
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 4 );
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 5 );
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 6 );
    set_GPIO_OUT( reg_s2410(S3C2410_GPFCON), 7 );
 
    reg_s2410(S3C2410_GPFUP) |= 0xff;
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 0, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 1, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 2, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 3, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 4, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 5, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 6, 1 );
    GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 7, 1 );
}


GPIO 세팅 부분에서 0,1,2,3에 해당하는 코드를 추가하고 8개 모두 출력으로 설정했습니다.

그리고  reg_s2410(S3C2410_GPFUP) |= 0xf0; 에서 0xf0를 0xff로 바꿨습니다.

마지막으로 출력부분
GPIO_OUT( reg_s2410(S3C2410_GPFDAT), 6, 1 );
부분에 1/0을 바꿔가면서 해봐도 출력이 변하지 않네요.

따로 app 코드 작성하지 않고 소스코드 수정, 재컴파일, insmod, rmmod 반복해서 해봤는데
보드의 LED는 켜졌다 꺼졌다 하는데 GPF0~GPF3은 변화가 없습니다.

확인은 80핀 외부 확장 커넥터 오른쪽것에 41~46, 67, 68번 핀에서 했습니다.

소프트웨어나 하드웨어적으로 뭔가 다른 설정이 필요한것인지
아니면 제가 뭔가 잘못한것인지 궁금하네요.

답변 부탁드립니다.  감사합니다~