mp2530f에서는 테스트 못했습니다.
하지만, u-boot에서 테스트했던 코드를 가지고 pollux로 포팅을 한 것이니
동작에는 문제가 없을 것으로 보여집니다.
한가지 문제가 있는데, /dev/rtc0로 잡히는 통에 좀 골치입니다...ㅠ.ㅠ
/dev/rtc가 생겨버리기 때문에, /dev/rtc0로 접근을 하지 않더군요....hwclock명령어에서
udev와 커널의 진화에 따라 busybox도 바꿔줘야 하는데, 제가 그 부분까지 신경쓸 여력이
없어서 현재는 땜빵 처리 했습니다.
일단 간단한 하우투를 올리겠습니다.
=================================
1. arch/arm/mach-mp2530/devs.c에 다음과 같은 platform device를 추가합니다.
//===============================================================
// RTC
//===============================================================
struct platform_device pollux_rtc_device = {
.name = "pollux-rtc",
.id = 0,
};
EXPORT_SYMBOL(pollux_rtc_device);
2. arch/arm/mach-mp2530/devs.h에도 추가
// RTC
extern struct platform_device pollux_rtc_device;
3. aesop platform 파일(2530의 경우는 arch/arm/mach-mp2530/mach-aesop2530.c)
static struct platform_device *aesop2530_devices[] __initdata = {
&ohci_hcd_mp2530f_device,
&mp2530f_fb_device,
&mp2530_device_sdi,
&smc91x_device,
&pollux_rtc_device, // RTC device 추가
};
4. include/asm-arm/arch-mp2530/regs-rtc.h에 첨부되는 파일을 가져다 놓고
5. drivers/rtc/rtc-pollux.c 로 첨부되는 파일을 넣습니다.
6. drivers/rtc의 Kconfig/Makefile를 다음과 같이 추가해 주시고요.
- Kconfig
config RTC_DRV_POLLUX
tristate "Pollux RTC"
depends on RTC_CLASS && ARCH_MP2530
help
RTC driver for Magic Eyes POLLUX
- Makefile
obj-$(CONFIG_RTC_DRV_POLLUX) += rtc-pollux.o
7. make menuconfig 하신 후.....RTC 드라이버 설정
8. 컴파일..
9. rtc test...
위에서 언급한 /dev의 node문제때문에 약간 노가다를 해야하는데
부팅 후
cd /dev
rm rtc
ln -s rtc0 rtc
하신 후
hwclock --systohc
해서 RTC로 세팅하신후(시스템 clock을)
hwclock --hctosys
해서 보시면 RTC에 기록된 내용을 제대로 확인하실 수 있을겁니다.
====================================
요즘 일이 산더미라 도저히 mp2530f에 포팅할 생각이 나지 않아서
여러가지로 고민중에 있습니다.
나중에 mp2530f랑 pollux랑 통합된 커널을 내 놓던지 해야겠습니다...ㅎㅎ
그럼....