IMX RTC: Difference between revisions

From Variscite Wiki
No edit summary
Line 18: Line 18:
The kernel configuration item is available in Device Drivers -> Real Time Clock  -> <*> Intersil ISL12057.<br>
The kernel configuration item is available in Device Drivers -> Real Time Clock  -> <*> Intersil ISL12057.<br>
{{#ifeq: {{#var:SOC}} | mx6 |
{{#ifeq: {{#var:SOC}} | mx6 |
For VAR-SOM-SOLO/VAR-SOM-DUAL/VAR-SOM-MX6 on MX6CustomBoard, SoloCustomBoard and SymphonyBoard, RTC IRQ#2 pin is not available: RTC has no wakeup capabilities.<br>
For VAR-SOM-SOLO/VAR-SOM-DUAL/VAR-SOM-MX6 on MX6CustomBoard, SoloCustomBoard and SymphonyBoard, RTC IRQ#2 pin is not connected: RTC has no wakeup capabilities.<br>
For DART-MX6 on DT6CustomBoard, RTC IRQ#2 pin is not available: RTC has no wakeup capabilities.
For DART-MX6 on DT6CustomBoard, RTC IRQ#2 pin is not connected: RTC has no wakeup capabilities.
|}}
|}}
{{#ifeq: {{#var:SOC}} | mx6ul |
{{#ifeq: {{#var:SOC}} | mx6ul |
For DART-6UL, the file arch/arm/boot/dts/imx6ul-imx6ull-var-dart-6ulcustomboard.dtsi already propose
For DART-6UL on 6ULCustomBoard, RTC IRQ#2 pin is already connected to GPIO5_IO07, as declared in the file arch/arm/boot/dts/imx6ul-imx6ull-var-dart-6ulcustomboard.dtsi
<pre>
<pre>
rtc@0x68 {
rtc@0x68 {
Line 33: Line 33:
};
};
</pre>
</pre>
For VAR-SOM-6UL on ConcertoBoard, connect pins J14.8 & J14.10 and edit arch/arm/boot/dts/imx6ul-imx6ull-var-som-concerto-board.dtsi to declare GPIO1_IO10 as IRQ#2 pin.
For VAR-SOM-6UL on ConcertoBoard, you can short pins J14.8 & J14.10 and edit arch/arm/boot/dts/imx6ul-imx6ull-var-som-concerto-board.dtsi to declare GPIO1_IO10 as IRQ#2 pin.
<pre>
<pre>
rtc@0x68 {
rtc@0x68 {
Line 44: Line 44:
};
};
</pre>
</pre>
For VAR-SOM-6UL on SymphonyBoard, RTC IRQ#2 pin is not available: RTC has no wakeup capabilities.
For VAR-SOM-6UL on SymphonyBoard, RTC IRQ#2 pin is not connected: RTC has no wakeup capabilities.
|}}
|}}
{{#ifeq: {{#var:SOC}} | mx7 |
{{#ifeq: {{#var:SOC}} | mx7 |
For VAR-SOM-MX7 on MX7CustomBoard, RTC IRQ#2 pin is not available: RTC has no wakeup capabilities.
For VAR-SOM-MX7 on MX7CustomBoard, RTC IRQ#2 pin is not connected: RTC has no wakeup capabilities.
|}}
|}}
{{#ifeq: {{#var:SOC_SERIES}} | imx8 |
{{#ifeq: {{#var:SOC_SERIES}} | imx8 |
For {{#var:HARDWARE_NAME}} on SymphonyBoard, RTC IRQ#2 pin is not available: RTC has no wakeup capabilities.<br>
{{#ifeq: {{#var:SOC}} | mx8mq | |
For {{#replace:{{#var:HARDWARE_NAME}} | DART | VAR-SOM }} on SymphonyBoard, RTC IRQ#2 pin is not connected: RTC has no wakeup capabilities.<br>
}}
|}}
|}}



Revision as of 18:06, 28 March 2021

DART-6UL - Real Time Clock (RTC)

Setting the RTC

First set the system date & time:

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

Then set the HW RTC using the system date & time:

# hwclock --systohc --utc

Power down your board, wait 5 minutes and power up again, then check you system date & time and verify it is correct:

# date

Wakeup using the RTC

All Variscite EVKs mount RTC ISL12057, however wakeup using the RTC requires hardware connection of ISL12057 IRQ2# pin to a SoC GPIO.
By default, the defconfig of latest kernels already enable the Intersil ISL12057 driver.
The kernel configuration item is available in Device Drivers -> Real Time Clock -> <*> Intersil ISL12057.

For DART-6UL on 6ULCustomBoard, RTC IRQ#2 pin is already connected to GPIO5_IO07, as declared in the file arch/arm/boot/dts/imx6ul-imx6ull-var-dart-6ulcustomboard.dtsi

rtc@0x68 {
	compatible = "dallas,ds1337";
	reg = <0x68>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rtc>;
	interrupt-parent = <&gpio5>;
	interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
};

For VAR-SOM-6UL on ConcertoBoard, you can short pins J14.8 & J14.10 and edit arch/arm/boot/dts/imx6ul-imx6ull-var-som-concerto-board.dtsi to declare GPIO1_IO10 as IRQ#2 pin.

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

For VAR-SOM-6UL on SymphonyBoard, RTC IRQ#2 pin is not connected: RTC has no wakeup capabilities.


Using rtcwake command

Assuming the your board has wakeup capabilities, 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