linux/arch/arm/boot/dts/exynos4412-smdk4412.dts
Krzysztof Kozlowski 1716af2499 ARM: dts: exynos: Correct S3C RTC bindings in SMDK4412
The S3C RTC requires 32768 Hz clock as input which is provided by PMIC.
However the PMIC is not described in DTS at all so at least add a
workaround to model its clock with fixed-clock and silence dtbs_check
warnings like:

  arch/arm/boot/dts/exynos4412-smdk4412.dt.yaml: rtc@10070000: clocks: [[7, 346]] is too short
  arch/arm/boot/dts/exynos4412-smdk4412.dt.yaml: rtc@10070000: clock-names: ['rtc'] is too short

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200830135200.24304-31-krzk@kernel.org
2020-09-02 17:47:58 +02:00

179 lines
3.2 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0
/*
* Samsung's Exynos4412 based SMDK board device tree source
*
* Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Device tree source file for Samsung's SMDK4412 board which is based on
* Samsung's Exynos4412 SoC.
*/
/dts-v1/;
#include "exynos4412.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ {
model = "Samsung SMDK evaluation board based on Exynos4412";
compatible = "samsung,smdk4412", "samsung,exynos4412", "samsung,exynos4";
memory@40000000 {
device_type = "memory";
reg = <0x40000000 0x40000000>;
};
chosen {
bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial1:115200n8";
};
fixed-rate-clocks {
xxti {
compatible = "samsung,clock-xxti";
clock-frequency = <0>;
};
xusbxti {
compatible = "samsung,clock-xusbxti";
clock-frequency = <24000000>;
};
pmic_ap_clk: pmic-ap-clk {
/* Workaround for missing clock on PMIC */
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
};
};
};
&cpu_thermal {
cooling-maps {
cooling_map0: map0 {
/* Corresponds to 800MHz at freq_table */
cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
<&cpu2 7 7>, <&cpu3 7 7>;
};
cooling_map1: map1 {
/* Corresponds to 200MHz at freq_table */
cooling-device = <&cpu0 13 13>, <&cpu1 13 13>,
<&cpu2 13 13>, <&cpu3 13 13>;
};
};
};
&keypad {
samsung,keypad-num-rows = <3>;
samsung,keypad-num-columns = <8>;
linux,keypad-no-autorepeat;
wakeup-source;
pinctrl-0 = <&keypad_rows &keypad_cols>;
pinctrl-names = "default";
status = "okay";
key_1 {
keypad,row = <1>;
keypad,column = <3>;
linux,code = <2>;
};
key_2 {
keypad,row = <1>;
keypad,column = <4>;
linux,code = <3>;
};
key_3 {
keypad,row = <1>;
keypad,column = <5>;
linux,code = <4>;
};
key_4 {
keypad,row = <1>;
keypad,column = <6>;
linux,code = <5>;
};
key_5 {
keypad,row = <1>;
keypad,column = <7>;
linux,code = <6>;
};
key_A {
keypad,row = <2>;
keypad,column = <6>;
linux,code = <30>;
};
key_B {
keypad,row = <2>;
keypad,column = <7>;
linux,code = <48>;
};
key_C {
keypad,row = <0>;
keypad,column = <5>;
linux,code = <46>;
};
key_D {
keypad,row = <2>;
keypad,column = <5>;
linux,code = <32>;
};
key_E {
keypad,row = <0>;
keypad,column = <7>;
linux,code = <18>;
};
};
&pinctrl_1 {
keypad_rows: keypad-rows {
samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
};
keypad_cols: keypad-cols {
samsung,pins = "gpx1-0", "gpx1-1", "gpx1-2", "gpx1-3",
"gpx1-4", "gpx1-5", "gpx1-6", "gpx1-7";
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
};
};
&rtc {
clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
clock-names = "rtc", "rtc_src";
};
&sdhci_2 {
bus-width = <4>;
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
pinctrl-names = "default";
status = "okay";
};
&serial_0 {
status = "okay";
};
&serial_1 {
status = "okay";
};
&serial_2 {
status = "okay";
};
&serial_3 {
status = "okay";
};