linux-loongson/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
Krzysztof Kozlowski 42873b118a arm64: dts: exynos5433: Align i2c-gpio node names with dtschema
New dtschema v2025.6 enforces different naming on I2C nodes thus new
dtbs_check warnings appeared for I2C GPIO nodes:

  exynos5433-tm2.dtb: i2c-gpio-0 (i2c-gpio):
    $nodename:0: 'i2c-gpio-0' does not match '^i2c(@.+|-[a-z0-9]+)?$'
  exynos5433-tm2.dtb: i2c-gpio-0 (i2c-gpio):
    Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'amplifier@31' were unexpected)

Rename the nodes to a generic i2c-[0-9]+ style with numbers continuing
the SoC I2C controller indexing (3 controllers) for simplicity and
obviousness, even if the SoC I2C controller is not enabled on given
board.  The names anyway would not conflict with SoC ones because of
unit addresses.

Verified with comparing two fdt (after fdtdump).

Reported-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Closes: https://lore.kernel.org/all/aCtD7BH5N_uPGkq7@shikoro/
Link: https://lore.kernel.org/r/20250612095549.77954-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-06-25 16:12:02 +02:00

1379 lines
30 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0
/*
* Samsung Exynos5433 TM2 board device tree source
*
* Copyright (c) 2016 Samsung Electronics Co., Ltd.
*
* Common device tree source file for Samsung's TM2 and TM2E boards
* which are based on Samsung Exynos5433 SoC.
*/
/dts-v1/;
#include "exynos5433.dtsi"
#include <dt-bindings/clock/samsung,s2mps11.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/sound/samsung-i2s.h>
/ {
aliases {
gsc0 = &gsc_0;
gsc1 = &gsc_1;
gsc2 = &gsc_2;
mmc0 = &mshc_0;
mmc2 = &mshc_2;
pinctrl0 = &pinctrl_alive;
pinctrl1 = &pinctrl_aud;
pinctrl2 = &pinctrl_cpif;
pinctrl3 = &pinctrl_ese;
pinctrl4 = &pinctrl_finger;
pinctrl5 = &pinctrl_fsys;
pinctrl6 = &pinctrl_imem;
pinctrl7 = &pinctrl_nfc;
pinctrl8 = &pinctrl_peric;
pinctrl9 = &pinctrl_touch;
serial0 = &serial_0;
serial1 = &serial_1;
serial2 = &serial_2;
serial3 = &serial_3;
spi0 = &spi_0;
spi1 = &spi_1;
spi2 = &spi_2;
spi3 = &spi_3;
spi4 = &spi_4;
};
chosen {
stdout-path = &serial_1;
};
memory@20000000 {
device_type = "memory";
reg = <0x0 0x20000000 0x0 0xc0000000>;
};
gpio-keys {
compatible = "gpio-keys";
power-key {
gpios = <&gpa2 7 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
label = "power key";
debounce-interval = <10>;
};
volume-up-key {
gpios = <&gpa2 0 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
label = "volume-up key";
debounce-interval = <10>;
};
volume-down-key {
gpios = <&gpa2 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
label = "volume-down key";
debounce-interval = <10>;
};
homepage-key {
gpios = <&gpa0 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_MENU>;
label = "homepage key";
debounce-interval = <10>;
};
};
i2c_max98504: i2c-13 {
compatible = "i2c-gpio";
sda-gpios = <&gpd0 1 GPIO_ACTIVE_HIGH>;
scl-gpios = <&gpd0 0 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <2>;
#address-cells = <1>;
#size-cells = <0>;
max98504: amplifier@31 {
compatible = "maxim,max98504";
reg = <0x31>;
DIOVDD-supply = <&ldo3_reg>;
DVDD-supply = <&ldo3_reg>;
PVDD-supply = <&vph_pwr_regulator>;
};
};
vph_pwr_regulator: regulator-vph-pwr {
compatible = "regulator-fixed";
regulator-name = "VPH_PWR";
regulator-min-microvolt = <4200000>;
regulator-max-microvolt = <4200000>;
};
irda_regulator: regulator-irda {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpr3 3 GPIO_ACTIVE_HIGH>;
regulator-name = "irda_regulator";
};
sound {
compatible = "samsung,tm2-audio";
audio-codec = <&wm5110>, <&hdmi>;
i2s-controller = <&i2s0 0>, <&i2s1 0>;
audio-amplifier = <&max98504>;
mic-bias-gpios = <&gpr3 2 GPIO_ACTIVE_HIGH>;
model = "wm5110";
audio-routing = /* Headphone */
"HP", "HPOUT1L",
"HP", "HPOUT1R",
/* Speaker */
"SPK", "SPKOUT",
"SPKOUT", "HPOUT2L",
"SPKOUT", "HPOUT2R",
/* Receiver */
"RCV", "HPOUT3L",
"RCV", "HPOUT3R";
};
};
&adc {
vdd-supply = <&ldo3_reg>;
status = "okay";
thermistor-ap {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 0>;
};
thermistor-battery {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 1>;
#thermal-sensor-cells = <0>;
};
thermistor-charger {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 2>;
};
};
&bus_g2d_400 {
devfreq-events = <&ppmu_event0_d0_general>, <&ppmu_event0_d1_general>;
vdd-supply = <&buck4_reg>;
exynos,saturation-ratio = <10>;
status = "okay";
};
&bus_g2d_266 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_gscl {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_hevc {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_jpeg {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_mfc {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_mscl {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_noc0 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_noc1 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_noc2 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&cmu_aud {
assigned-clocks = <&cmu_aud CLK_MOUT_AUD_PLL_USER>,
<&cmu_aud CLK_MOUT_SCLK_AUD_I2S>,
<&cmu_aud CLK_MOUT_SCLK_AUD_PCM>,
<&cmu_top CLK_MOUT_AUD_PLL>,
<&cmu_top CLK_MOUT_AUD_PLL_USER_T>,
<&cmu_top CLK_MOUT_SCLK_AUDIO0>,
<&cmu_top CLK_MOUT_SCLK_AUDIO1>,
<&cmu_top CLK_MOUT_SCLK_SPDIF>,
<&cmu_aud CLK_DIV_AUD_CA5>,
<&cmu_aud CLK_DIV_ACLK_AUD>,
<&cmu_aud CLK_DIV_PCLK_DBG_AUD>,
<&cmu_aud CLK_DIV_SCLK_AUD_I2S>,
<&cmu_aud CLK_DIV_SCLK_AUD_PCM>,
<&cmu_aud CLK_DIV_SCLK_AUD_SLIMBUS>,
<&cmu_aud CLK_DIV_SCLK_AUD_UART>,
<&cmu_top CLK_DIV_SCLK_AUDIO0>,
<&cmu_top CLK_DIV_SCLK_AUDIO1>,
<&cmu_top CLK_DIV_SCLK_PCM1>,
<&cmu_top CLK_DIV_SCLK_I2S1>;
assigned-clock-parents = <&cmu_top CLK_FOUT_AUD_PLL>,
<&cmu_aud CLK_MOUT_AUD_PLL_USER>,
<&cmu_aud CLK_MOUT_AUD_PLL_USER>,
<&cmu_top CLK_FOUT_AUD_PLL>,
<&cmu_top CLK_MOUT_AUD_PLL>,
<&cmu_top CLK_MOUT_AUD_PLL_USER_T>,
<&cmu_top CLK_MOUT_AUD_PLL_USER_T>,
<&cmu_top CLK_SCLK_AUDIO0>;
assigned-clock-rates = <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>,
<196608001>, <65536001>, <32768001>, <49152001>,
<2048001>, <24576001>, <196608001>,
<24576001>, <98304001>, <2048001>, <49152001>;
};
&cmu_fsys {
assigned-clocks = <&cmu_top CLK_MOUT_SCLK_USBDRD30>,
<&cmu_top CLK_MOUT_SCLK_USBHOST30>,
<&cmu_fsys CLK_MOUT_SCLK_USBDRD30_USER>,
<&cmu_fsys CLK_MOUT_SCLK_USBHOST30_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_USER>,
<&cmu_top CLK_DIV_SCLK_USBDRD30>,
<&cmu_top CLK_DIV_SCLK_USBHOST30>;
assigned-clock-parents = <&cmu_top CLK_MOUT_BUS_PLL_USER>,
<&cmu_top CLK_MOUT_BUS_PLL_USER>,
<&cmu_top CLK_SCLK_USBDRD30_FSYS>,
<&cmu_top CLK_SCLK_USBHOST30_FSYS>,
<&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_PHY>;
assigned-clock-rates = <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>,
<66700000>, <66700000>;
};
&cmu_gscl {
assigned-clocks = <&cmu_gscl CLK_MOUT_ACLK_GSCL_111_USER>,
<&cmu_gscl CLK_MOUT_ACLK_GSCL_333_USER>;
assigned-clock-parents = <&cmu_top CLK_ACLK_GSCL_111>,
<&cmu_top CLK_ACLK_GSCL_333>;
};
&cmu_mfc {
assigned-clocks = <&cmu_mfc CLK_MOUT_ACLK_MFC_400_USER>;
assigned-clock-parents = <&cmu_top CLK_ACLK_MFC_400>;
};
&cmu_mif {
assigned-clocks = <&cmu_mif CLK_MOUT_SCLK_DSD_A>, <&cmu_mif CLK_DIV_SCLK_DSD>;
assigned-clock-parents = <&cmu_mif CLK_MOUT_MFC_PLL_DIV2>;
assigned-clock-rates = <0>, <333000000>;
};
&cmu_mscl {
assigned-clocks = <&cmu_mscl CLK_MOUT_ACLK_MSCL_400_USER>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG>,
<&cmu_top CLK_MOUT_SCLK_JPEG_A>;
assigned-clock-parents = <&cmu_top CLK_ACLK_MSCL_400>,
<&cmu_top CLK_SCLK_JPEG_MSCL>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>,
<&cmu_top CLK_MOUT_BUS_PLL_USER>;
};
&cmu_top {
assigned-clocks = <&cmu_top CLK_FOUT_AUD_PLL>;
assigned-clock-rates = <196608001>;
};
&cpu0 {
cpu-supply = <&buck3_reg>;
};
&cpu4 {
cpu-supply = <&buck2_reg>;
};
&decon {
status = "okay";
};
&decon_tv {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
tv_to_hdmi: endpoint {
remote-endpoint = <&hdmi_to_tv>;
};
};
};
};
&dsi {
status = "okay";
vddcore-supply = <&ldo6_reg>;
vddio-supply = <&ldo7_reg>;
samsung,burst-clock-frequency = <512000000>;
samsung,esc-clock-frequency = <16000000>;
samsung,pll-clock-frequency = <24000000>;
pinctrl-names = "default";
pinctrl-0 = <&te_irq>;
};
&gpu {
mali-supply = <&buck6_reg>;
status = "okay";
};
&hdmi {
hpd-gpios = <&gpa3 0 GPIO_ACTIVE_HIGH>;
status = "okay";
vdd-supply = <&ldo6_reg>;
vdd_osc-supply = <&ldo7_reg>;
vdd_pll-supply = <&ldo6_reg>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
hdmi_to_tv: endpoint {
remote-endpoint = <&tv_to_hdmi>;
};
};
port@1 {
reg = <1>;
hdmi_to_mhl: endpoint {
remote-endpoint = <&mhl_to_hdmi>;
};
};
};
};
&hsi2c_0 {
status = "okay";
clock-frequency = <2500000>;
pmic@66 {
compatible = "samsung,s2mps13-pmic";
interrupt-parent = <&gpa0>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
reg = <0x66>;
samsung,s2mps11-wrstbi-ground;
wakeup-source;
s2mps13_osc: clocks {
compatible = "samsung,s2mps13-clk";
#clock-cells = <1>;
clock-output-names = "s2mps13_ap", "s2mps13_cp",
"s2mps13_bt";
};
regulators {
ldo1_reg: LDO1 {
regulator-name = "VDD_ALIVE_0.9V_AP";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-always-on;
};
ldo2_reg: LDO2 {
regulator-name = "VDDQ_MMC2_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo3_reg: LDO3 {
regulator-name = "VDD1_E_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo4_reg: LDO4 {
regulator-name = "VDD10_MIF_PLL_1.0V_AP";
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo5_reg: LDO5 {
regulator-name = "VDD10_DPLL_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo6_reg: LDO6 {
regulator-name = "VDD10_MIPI2L_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo7_reg: LDO7 {
regulator-name = "VDD18_MIPI2L_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo8_reg: LDO8 {
regulator-name = "VDD18_LLI_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo9_reg: LDO9 {
regulator-name = "VDD18_ABB_ETC_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo10_reg: LDO10 {
regulator-name = "VDD33_USB30_3.0V_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo11_reg: LDO11 {
regulator-name = "VDD_INT_M_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo12_reg: LDO12 {
regulator-name = "VDD_KFC_M_1.1V_AP";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
};
ldo13_reg: LDO13 {
regulator-name = "VDD_G3D_M_0.95V_AP";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <950000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo14_reg: LDO14 {
regulator-name = "VDDQ_M1_LDO_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo15_reg: LDO15 {
regulator-name = "VDDQ_M2_LDO_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo16_reg: LDO16 {
regulator-name = "VDDQ_EFUSE";
regulator-min-microvolt = <1400000>;
regulator-max-microvolt = <3400000>;
regulator-always-on;
};
ldo17_reg: LDO17 {
regulator-name = "V_TFLASH_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo18_reg: LDO18 {
regulator-name = "V_CODEC_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo19_reg: LDO19 {
regulator-name = "VDDA_1.8V_COMP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo20_reg: LDO20 {
regulator-name = "VCC_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo21_reg: LDO21 {
regulator-name = "VT_CAM_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo22_reg: LDO22 {
regulator-name = "CAM_IO_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo23_reg: LDO23 {
regulator-name = "CAM_SEN_CORE_1.05V_AP";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
};
ldo24_reg: LDO24 {
regulator-name = "VT_CAM_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
ldo25_reg: LDO25 {
regulator-name = "UNUSED_LDO25";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo26_reg: LDO26 {
regulator-name = "CAM_AF_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo27_reg: LDO27 {
regulator-name = "VCC_3.0V_LCD_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ldo28_reg: LDO28 {
regulator-name = "VCC_1.8V_LCD_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo29_reg: LDO29 {
regulator-name = "VT_CAM_2.8V";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ldo30_reg: LDO30 {
regulator-name = "TSP_AVDD_3.3V_AP";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo31_reg: LDO31 {
/*
* LDO31 differs from target to target,
* its definition is in the .dts
*/
};
ldo32_reg: LDO32 {
regulator-name = "VTOUCH_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo33_reg: LDO33 {
regulator-name = "VTOUCH_LED_3.3V";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <12500>;
};
ldo34_reg: LDO34 {
regulator-name = "VCC_1.8V_MHL_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <2100000>;
};
ldo35_reg: LDO35 {
regulator-name = "OIS_VM_2.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2800000>;
};
ldo36_reg: LDO36 {
regulator-name = "VSIL_1.0V";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
};
ldo37_reg: LDO37 {
regulator-name = "VF_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo38_reg: LDO38 {
/*
* LDO38 differs from target to target,
* its definition is in the .dts
*/
};
ldo39_reg: LDO39 {
regulator-name = "V_HRM_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo40_reg: LDO40 {
regulator-name = "V_HRM_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
buck1_reg: BUCK1 {
regulator-name = "VDD_MIF_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck2_reg: BUCK2 {
regulator-name = "VDD_EGL_1.0V_AP";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck3_reg: BUCK3 {
regulator-name = "VDD_KFC_1.0V_AP";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck4_reg: BUCK4 {
regulator-name = "VDD_INT_0.95V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck5_reg: BUCK5 {
regulator-name = "VDD_DISP_CAM0_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck6_reg: BUCK6 {
regulator-name = "VDD_G3D_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck7_reg: BUCK7 {
regulator-name = "VDD_MEM1_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
buck8_reg: BUCK8 {
regulator-name = "VDD_LLDO_1.35V_AP";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
buck9_reg: BUCK9 {
regulator-name = "VDD_MLDO_2.0V_AP";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
buck10_reg: BUCK10 {
regulator-name = "vdd_mem2";
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
};
};
};
};
&hsi2c_4 {
status = "okay";
s3fwrn5: nfc@27 {
compatible = "samsung,s3fwrn5-i2c";
reg = <0x27>;
interrupt-parent = <&gpa1>;
interrupts = <3 IRQ_TYPE_EDGE_RISING>;
en-gpios = <&gpf1 4 GPIO_ACTIVE_LOW>;
wake-gpios = <&gpj0 2 GPIO_ACTIVE_HIGH>;
};
};
&hsi2c_5 {
status = "okay";
stmfts: touchscreen@49 {
compatible = "st,stmfts";
reg = <0x49>;
interrupt-parent = <&gpa1>;
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
avdd-supply = <&ldo30_reg>;
vdd-supply = <&ldo31_reg>;
};
};
&hsi2c_7 {
status = "okay";
clock-frequency = <1000000>;
bridge@39 {
reg = <0x39>;
compatible = "sil,sii8620";
cvcc10-supply = <&ldo36_reg>;
iovcc18-supply = <&ldo34_reg>;
interrupt-parent = <&gpf0>;
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
reset-gpios = <&gpv7 0 GPIO_ACTIVE_LOW>;
clocks = <&pmu_system_controller 0>;
clock-names = "xtal";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
mhl_to_hdmi: endpoint {
remote-endpoint = <&hdmi_to_mhl>;
};
};
port@1 {
reg = <1>;
mhl_to_musb_con: endpoint {
remote-endpoint = <&musb_con_to_mhl>;
};
};
};
};
};
&hsi2c_8 {
status = "okay";
pmic@66 {
compatible = "maxim,max77843";
interrupt-parent = <&gpa1>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
reg = <0x66>;
muic: extcon {
compatible = "maxim,max77843-muic";
musb_con: connector {
compatible = "samsung,usb-connector-11pin",
"usb-b-connector";
label = "micro-USB";
type = "micro";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
/*
* TODO: The DTS this is based on does not have
* port@0 which is a required property. The ports
* look incomplete and need fixing.
* Add a disabled port just to satisfy dtschema.
*/
reg = <0>;
status = "disabled";
};
port@3 {
reg = <3>;
musb_con_to_mhl: endpoint {
remote-endpoint = <&mhl_to_musb_con>;
};
};
};
};
ports {
port {
muic_to_usb: endpoint {
remote-endpoint = <&usb_to_muic>;
};
};
};
};
regulators {
compatible = "maxim,max77843-regulator";
safeout1_reg: SAFEOUT1 {
regulator-name = "SAFEOUT1";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <4950000>;
};
safeout2_reg: SAFEOUT2 {
regulator-name = "SAFEOUT2";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <4950000>;
};
charger_reg: CHARGER {
regulator-name = "CHARGER";
regulator-min-microamp = <100000>;
regulator-max-microamp = <3150000>;
};
};
haptic: motor-driver {
compatible = "maxim,max77843-haptic";
haptic-supply = <&ldo38_reg>;
pwms = <&pwm 0 33670 0>;
};
};
};
&hsi2c_11 {
status = "okay";
};
&i2s0 {
status = "okay";
};
&i2s1 {
assigned-clocks = <&i2s1 CLK_I2S_RCLK_SRC>;
assigned-clock-parents = <&cmu_peric CLK_SCLK_I2S1>;
status = "okay";
};
&mshc_0 {
status = "okay";
mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
cap-mmc-highspeed;
non-removable;
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
samsung,dw-mshc-hs400-timing = <0 3>;
samsung,read-strobe-delay = <90>;
fifo-depth = <0x80>;
pinctrl-names = "default";
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4
&sd0_bus8 &sd0_rdqs>;
bus-width = <8>;
assigned-clocks = <&cmu_top CLK_SCLK_MMC0_FSYS>;
assigned-clock-rates = <800000000>;
};
&mshc_2 {
status = "okay";
cap-sd-highspeed;
disable-wp;
cd-gpios = <&gpa2 4 GPIO_ACTIVE_LOW>;
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
fifo-depth = <0x80>;
pinctrl-names = "default";
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4>;
bus-width = <4>;
};
&pcie {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pcie_bus &pcie_wlanen>;
vdd10-supply = <&ldo6_reg>;
vdd18-supply = <&ldo7_reg>;
assigned-clocks = <&cmu_fsys CLK_MOUT_SCLK_PCIE_100_USER>,
<&cmu_top CLK_MOUT_SCLK_PCIE_100>;
assigned-clock-parents = <&cmu_top CLK_SCLK_PCIE_100_FSYS>,
<&cmu_top CLK_MOUT_BUS_PLL_USER>;
assigned-clock-rates = <0>, <100000000>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
};
&pcie_phy {
status = "okay";
};
&ppmu_d0_general {
status = "okay";
events {
ppmu_event0_d0_general: ppmu-event0-d0-general {
event-name = "ppmu-event0-d0-general";
};
};
};
&ppmu_d1_general {
status = "okay";
events {
ppmu_event0_d1_general: ppmu-event0-d1-general {
event-name = "ppmu-event0-d1-general";
};
};
};
&pinctrl_alive {
pinctrl-names = "default";
pinctrl-0 = <&initial_alive>;
initial_alive: initial-state {
PIN_IN(gpa0-0, DOWN, FAST_SR1);
PIN_IN(gpa0-1, NONE, FAST_SR1);
PIN_IN(gpa0-2, DOWN, FAST_SR1);
PIN_IN(gpa0-3, NONE, FAST_SR1);
PIN_IN(gpa0-4, NONE, FAST_SR1);
PIN_IN(gpa0-5, DOWN, FAST_SR1);
PIN_IN(gpa0-6, NONE, FAST_SR1);
PIN_IN(gpa0-7, NONE, FAST_SR1);
PIN_IN(gpa1-0, UP, FAST_SR1);
PIN_IN(gpa1-1, UP, FAST_SR1);
PIN_IN(gpa1-2, NONE, FAST_SR1);
PIN_IN(gpa1-3, DOWN, FAST_SR1);
PIN_IN(gpa1-4, DOWN, FAST_SR1);
PIN_IN(gpa1-5, NONE, FAST_SR1);
PIN_IN(gpa1-6, NONE, FAST_SR1);
PIN_IN(gpa1-7, NONE, FAST_SR1);
PIN_IN(gpa2-0, NONE, FAST_SR1);
PIN_IN(gpa2-1, NONE, FAST_SR1);
PIN_IN(gpa2-2, NONE, FAST_SR1);
PIN_IN(gpa2-3, DOWN, FAST_SR1);
PIN_IN(gpa2-4, NONE, FAST_SR1);
PIN_IN(gpa2-5, DOWN, FAST_SR1);
PIN_IN(gpa2-6, DOWN, FAST_SR1);
PIN_IN(gpa2-7, NONE, FAST_SR1);
PIN_IN(gpa3-0, DOWN, FAST_SR1);
PIN_IN(gpa3-1, DOWN, FAST_SR1);
PIN_IN(gpa3-2, NONE, FAST_SR1);
PIN_IN(gpa3-3, DOWN, FAST_SR1);
PIN_IN(gpa3-4, NONE, FAST_SR1);
PIN_IN(gpa3-5, DOWN, FAST_SR1);
PIN_IN(gpa3-6, DOWN, FAST_SR1);
PIN_IN(gpa3-7, DOWN, FAST_SR1);
PIN_IN(gpf1-0, NONE, FAST_SR1);
PIN_IN(gpf1-1, NONE, FAST_SR1);
PIN_IN(gpf1-2, DOWN, FAST_SR1);
PIN_IN(gpf1-4, UP, FAST_SR1);
PIN_OT(gpf1-5, NONE, FAST_SR1);
PIN_IN(gpf1-6, DOWN, FAST_SR1);
PIN_IN(gpf1-7, DOWN, FAST_SR1);
PIN_IN(gpf2-0, DOWN, FAST_SR1);
PIN_IN(gpf2-1, DOWN, FAST_SR1);
PIN_IN(gpf2-2, DOWN, FAST_SR1);
PIN_IN(gpf2-3, DOWN, FAST_SR1);
PIN_IN(gpf3-0, DOWN, FAST_SR1);
PIN_IN(gpf3-1, DOWN, FAST_SR1);
PIN_IN(gpf3-2, NONE, FAST_SR1);
PIN_IN(gpf3-3, DOWN, FAST_SR1);
PIN_IN(gpf4-0, DOWN, FAST_SR1);
PIN_IN(gpf4-1, DOWN, FAST_SR1);
PIN_IN(gpf4-2, DOWN, FAST_SR1);
PIN_IN(gpf4-3, DOWN, FAST_SR1);
PIN_IN(gpf4-4, DOWN, FAST_SR1);
PIN_IN(gpf4-5, DOWN, FAST_SR1);
PIN_IN(gpf4-6, DOWN, FAST_SR1);
PIN_IN(gpf4-7, DOWN, FAST_SR1);
PIN_IN(gpf5-0, DOWN, FAST_SR1);
PIN_IN(gpf5-1, DOWN, FAST_SR1);
PIN_IN(gpf5-2, DOWN, FAST_SR1);
PIN_IN(gpf5-3, DOWN, FAST_SR1);
PIN_OT(gpf5-4, NONE, FAST_SR1);
PIN_IN(gpf5-5, DOWN, FAST_SR1);
PIN_IN(gpf5-6, DOWN, FAST_SR1);
PIN_IN(gpf5-7, DOWN, FAST_SR1);
};
te_irq: te-irq-pins {
samsung,pins = "gpf1-3";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
};
};
&pinctrl_cpif {
pinctrl-names = "default";
pinctrl-0 = <&initial_cpif>;
initial_cpif: initial-state {
PIN_IN(gpv6-0, DOWN, FAST_SR1);
PIN_IN(gpv6-1, DOWN, FAST_SR1);
};
};
&pinctrl_ese {
pinctrl-names = "default";
pinctrl-0 = <&initial_ese>;
pcie_wlanen: pcie-wlanen-pins {
samsung,pins = "gpj2-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
initial_ese: initial-state {
PIN_IN(gpj2-1, DOWN, FAST_SR1);
PIN_IN(gpj2-2, DOWN, FAST_SR1);
};
};
&pinctrl_fsys {
pinctrl-names = "default";
pinctrl-0 = <&initial_fsys>;
initial_fsys: initial-state {
PIN_IN(gpr3-0, NONE, FAST_SR1);
PIN_IN(gpr3-1, DOWN, FAST_SR1);
PIN_IN(gpr3-2, DOWN, FAST_SR1);
PIN_IN(gpr3-3, DOWN, FAST_SR1);
PIN_IN(gpr3-7, NONE, FAST_SR1);
};
};
&pinctrl_imem {
pinctrl-names = "default";
pinctrl-0 = <&initial_imem>;
initial_imem: initial-state {
PIN_IN(gpf0-0, UP, FAST_SR1);
PIN_IN(gpf0-1, UP, FAST_SR1);
PIN_IN(gpf0-2, DOWN, FAST_SR1);
PIN_IN(gpf0-3, UP, FAST_SR1);
PIN_IN(gpf0-4, DOWN, FAST_SR1);
PIN_IN(gpf0-5, NONE, FAST_SR1);
PIN_IN(gpf0-6, DOWN, FAST_SR1);
PIN_IN(gpf0-7, UP, FAST_SR1);
};
};
&pinctrl_nfc {
pinctrl-names = "default";
pinctrl-0 = <&initial_nfc>;
initial_nfc: initial-state {
PIN_IN(gpj0-2, DOWN, FAST_SR1);
};
};
&pinctrl_peric {
pinctrl-names = "default";
pinctrl-0 = <&initial_peric>;
initial_peric: initial-state {
PIN_IN(gpv7-0, DOWN, FAST_SR1);
PIN_IN(gpv7-1, DOWN, FAST_SR1);
PIN_IN(gpv7-2, NONE, FAST_SR1);
PIN_IN(gpv7-3, DOWN, FAST_SR1);
PIN_IN(gpv7-4, DOWN, FAST_SR1);
PIN_IN(gpv7-5, DOWN, FAST_SR1);
PIN_IN(gpb0-4, DOWN, FAST_SR1);
PIN_IN(gpc0-2, DOWN, FAST_SR1);
PIN_IN(gpc0-5, DOWN, FAST_SR1);
PIN_IN(gpc0-7, DOWN, FAST_SR1);
PIN_IN(gpc1-1, DOWN, FAST_SR1);
PIN_IN(gpc3-4, NONE, FAST_SR1);
PIN_IN(gpc3-5, NONE, FAST_SR1);
PIN_IN(gpc3-6, NONE, FAST_SR1);
PIN_IN(gpc3-7, NONE, FAST_SR1);
PIN_OT(gpg0-0, NONE, FAST_SR1);
PIN_F2(gpg0-1, DOWN, FAST_SR1);
PIN_IN(gpd2-5, DOWN, FAST_SR1);
PIN_IN(gpd4-0, NONE, FAST_SR1);
PIN_IN(gpd4-1, DOWN, FAST_SR1);
PIN_IN(gpd4-2, DOWN, FAST_SR1);
PIN_IN(gpd4-3, DOWN, FAST_SR1);
PIN_IN(gpd4-4, DOWN, FAST_SR1);
PIN_IN(gpd6-3, DOWN, FAST_SR1);
PIN_IN(gpd8-1, UP, FAST_SR1);
PIN_IN(gpg1-0, DOWN, FAST_SR1);
PIN_IN(gpg1-1, DOWN, FAST_SR1);
PIN_IN(gpg1-2, DOWN, FAST_SR1);
PIN_IN(gpg1-3, DOWN, FAST_SR1);
PIN_IN(gpg1-4, DOWN, FAST_SR1);
PIN_IN(gpg2-0, DOWN, FAST_SR1);
PIN_IN(gpg2-1, DOWN, FAST_SR1);
PIN_IN(gpg3-0, DOWN, FAST_SR1);
PIN_IN(gpg3-1, DOWN, FAST_SR1);
PIN_IN(gpg3-5, DOWN, FAST_SR1);
};
};
&pinctrl_touch {
pinctrl-names = "default";
pinctrl-0 = <&initial_touch>;
initial_touch: initial-state {
PIN_IN(gpj1-2, DOWN, FAST_SR1);
};
};
&pwm {
pinctrl-0 = <&pwm0_out>;
pinctrl-names = "default";
status = "okay";
};
&mic {
status = "okay";
};
&pmu_system_controller {
assigned-clocks = <&pmu_system_controller 0>;
assigned-clock-parents = <&xxti>;
};
&serial_1 {
status = "okay";
};
&serial_3 {
status = "okay";
bluetooth {
compatible = "brcm,bcm43438-bt";
max-speed = <3000000>;
shutdown-gpios = <&gpd4 0 GPIO_ACTIVE_HIGH>;
device-wakeup-gpios = <&gpr3 7 GPIO_ACTIVE_HIGH>;
host-wakeup-gpios = <&gpa2 2 GPIO_ACTIVE_HIGH>;
clocks = <&s2mps13_osc S2MPS11_CLK_BT>;
clock-names = "extclk";
};
};
&spi_1 {
cs-gpios = <&gpd6 3 GPIO_ACTIVE_HIGH>;
status = "okay";
wm5110: audio-codec@0 {
compatible = "wlf,wm5110";
reg = <0x0>;
spi-max-frequency = <20000000>;
interrupt-parent = <&gpa0>;
interrupts = <4 IRQ_TYPE_NONE>;
clocks = <&pmu_system_controller 0>,
<&s2mps13_osc S2MPS11_CLK_BT>;
clock-names = "mclk1", "mclk2";
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
wlf,micd-detect-debounce = <300>;
wlf,micd-bias-start-time = <0x1>;
wlf,micd-rate = <0x7>;
wlf,micd-dbtime = <0x2>;
wlf,micd-force-micbias;
wlf,micd-configs = <0x0 1 0>;
wlf,hpdet-channel = <1>;
wlf,gpsw = <0x1>;
wlf,inmode = <2 0 2 0>;
wlf,reset = <&gpc0 7 GPIO_ACTIVE_HIGH>;
wlf,ldoena = <&gpf0 0 GPIO_ACTIVE_HIGH>;
/* core supplies */
AVDD-supply = <&ldo18_reg>;
DBVDD1-supply = <&ldo18_reg>;
CPVDD-supply = <&ldo18_reg>;
DBVDD2-supply = <&ldo18_reg>;
DBVDD3-supply = <&ldo18_reg>;
SPKVDDL-supply = <&vph_pwr_regulator>;
SPKVDDR-supply = <&vph_pwr_regulator>;
controller-data {
samsung,spi-feedback-delay = <0>;
};
};
};
&spi_3 {
status = "okay";
no-cs-readback;
irled@0 {
compatible = "ir-spi-led";
reg = <0x0>;
spi-max-frequency = <5000000>;
power-supply = <&irda_regulator>;
duty-cycle = /bits/ 8 <60>;
led-active-low;
controller-data {
samsung,spi-feedback-delay = <0>;
};
};
};
&timer {
clock-frequency = <24000000>;
};
&tmu_atlas0 {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&tmu_apollo {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&tmu_g3d {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&usbdrd30 {
vdd33-supply = <&ldo10_reg>;
vdd10-supply = <&ldo6_reg>;
status = "okay";
};
&usbdrd_dwc3 {
dr_mode = "otg";
};
&usbdrd30_phy {
vbus-supply = <&safeout1_reg>;
status = "okay";
port {
usb_to_muic: endpoint {
remote-endpoint = <&muic_to_usb>;
};
};
};
&xxti {
clock-frequency = <24000000>;
};