
도와주세요!!
s3c6410에서 16c554를 통한 시리얼 확장문제
ez s3c6410 보드를 사용중이며 em-s3c6410모듈을 사용하여 16채널 시리얼포트을 사용하려고 합니다.
질문드립니다..
1.현재사용중인 4채널외에 16c554 x 4 개로 16채널로 확장하려고 하는데 가능한지요?
플랫폼 디바이스에 serial8250 형태의 커널에서 지원하는 플랫폼으로 잡히도록 설정을 하려고한다면
./arch/arm/mach-s3c6410/mach-ezs3c6410.c 에 다음 설정이 있는데
static struct plat_serial8250_port serial_platform_data[] = {
#if defined(CONFIG_MACH_SIB_R300) | defined(CONFIG_MACH_SIB_C420)
UART_SETUP( S3C64XX_CS4 + 0x000, IRQ_EINT(6), 2 ),
UART_SETUP( S3C64XX_CS4 + 0x100, IRQ_EINT(6), 2 ),
UART_SETUP( S3C64XX_CS4 + 0x200, IRQ_EINT(6), 2 ),
UART_SETUP( S3C64XX_CS4 + 0x300, IRQ_EINT(6), 2 ),
#endif
{(struct plat_serial8250_port *)NULL}
};
2. 위의 UART_SETUP 하는 부분에 mapbase와 IRQ 등록하는 부분에만 추가하면 될런지요?
예를들어 IRQ번호를 1,2,3,4,5.. 16으로 정한다면
UART_SETUP( S3C64XX_CS4 + 0x000, IRQ_EINT(1), 2 ),
UART_SETUP( S3C64XX_CS4 + 0x100, IRQ_EINT(2), 2 ),
UART_SETUP( S3C64XX_CS4 + 0x200, IRQ_EINT(3), 2 ),
UART_SETUP( S3C64XX_CS4 + 0x300, IRQ_EINT(4), 2 ),
....
UART_SETUP( S3C64XX_CS4 + 0xf000, IRQ_EINT(16), 2 ),
3. 만약 irq16개를 사용하여 확장하는것이 불가하다면 다른 대안이 있나요?
답변이 늦었지만..
위와 같이 주소와 인터럽트를 설정하면 됩니다.
추가하여 해당 gpio 를 인터럽트로 사용할수 있도록 재정의 가 필요합니다.
같은 소스에 있으니 참고하세요