DART-MX8M RTC

From Variscite Wiki
Revision as of 13:44, 8 July 2018 by Admin (talk | contribs) (Created page with "{{PageHeader|RTC}} {{DocImage|category1=Yocto|category2=VAR-SOM-MX6}}Category:DART-6ULCategory:VAR-SOM-MX7 __toc__ = Setting the RTC = To set the RTC first set the dat...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
RTC

Setting the RTC

To set the RTC first set the date from Linux shell, type:

$ date --set="20171231 23:59"

Then set the real time clock from Linux shell, type:

$ hwclock --systohc --utc

Power down your board wait 5 minutes and power up. Check your system with date and the time should be up to date.

Wake-up using the RTC

Wake-up using the RTC requires hardware connection of RTC IRQ pin to a SoC GPIO (on DART-MX8M carrier board this is GPIO1_15).
Configure your kernel and add Dallas DS1307 driver. Device Drivers -> Real Time Clock -> <*> Dallas/Maxim DS1307/37/38/39/40, ST M41T00, EPSON RX-8025, ISL12057.
Edit arch/arm64/boot/dts/variscite/imx8m-var-dart-common.dtsi in Linux kernel source directory

&i2c2 {
	...
	rtc@0x68 {
		status = "okay";
 		compatible = "dallas,ds1337";
		reg = <0x68>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_rtc>;
		interrupt-parent = <&gpio1>;
		interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
        };
        ...
};

&iomuxc {
	...
	imx8mq-evk {
                ...
		 pinctrl_rtc: rtcgrp {
			fsl,pins = <
				MX8MQ_IOMUXC_GPIO1_IO15_GPIO1_IO15 		0xc1
			>;
		};
                ...
};

Follow the "Build Linux from source code" guide to build the kernel and device trees and to copy them to your SD card. Don't forget to also build and install the kernel modules.
For example, to set the RTC to wakeup after 10 seconds type:

$ echo enabled > /sys/class/rtc/rtc0/device/power/wakeup
$ rtcwake -m mem -d rtc0 -s 10

For more options, like waking up at a specific time, run:

$ rtcwake --help