Commit 061ae532 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'samsung-dt-4.15' of...

Merge tag 'samsung-dt-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/soc

Pull "Samsung DTS ARM changes for 4.15" from Krzysztof Kozłowski:

1. Add new board: Hardkernel Odroid HC1.
2. Fix incomplete Odroid-XU3/4 thermal-zones definition leading to
   possible overheat if first pair of A7+A15 cores is idle but rest of
   CPUs are busy.
3. Add capacity-dmips-mhz properties for CPUs of octa-core SoCs.
4. Add power button to Odroid XU3/4.
5. Improvements in Gscaler, HDMI and Mixer blocks on Exynos5.
6. Add suspend quirk to DWC3 USB controller to fix enumeration of
   SuperSpeed devices on Odroid XU4.
7. Add HDMI and MHL to Trats2.
8. Cleanups (redundant properties and nodes).

* tag 'samsung-dt-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  dt-bindings: samsung: Document binding for new Odroid HC1 board
  ARM: dts: exynos: Add HDMI and Sil9234 to Trats2 board
  ARM: dts: exynos: Add support for Hardkernel's Odroid HC1 board
  ARM: dts: exynos: Move audio clocks configuration to odroidxu3-audio.dtsi
  ARM: dts: exynos: Add dwc3 SUSPHY quirk
  ARM: dts: exynos: Add status property to Exynos 542x Mixer nodes
  ARM: dts: exynos: Add status property to Exynos 5250 HDMI and Mixer nodes
  ARM: dts: exynos: Cleanup HDMI DCC definitions on Exynos5250 and Exynos542x boards
  ARM: dts: exynos: Move HDMI PHY node from boards to exynos5250.dtsi
  ARM: dts: exynos: Use specific compatibles for proper Gscaler limits on Exynos5250 and Exynos5420
  ARM: dts: exynos: Remove redundant interrupt properties in gpio-keys on Odroid boards
  ARM: dts: exynos: Add power button for Odroid XU3/4
  ARM: dts: exynos: Remove the display-timing and delay from Rinato
  ARM: dts: exynos: add exynos5422 cpu capacity-dmips-mhz information
  ARM: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information
  ARM: dts: exynos: fix incomplete Odroid-XU3/4 thermal-zones definition
parents b073a899 3991e054
......@@ -57,6 +57,7 @@ Required root node properties:
- "hardkernel,odroid-xu3-lite" - for Exynos5422-based Hardkernel
Odroid XU3 Lite board.
- "hardkernel,odroid-xu4" - for Exynos5422-based Hardkernel Odroid XU4.
- "hardkernel,odroid-hc1" - for Exynos5422-based Hardkernel Odroid HC1.
* Insignal
- "insignal,arndale" - for Exynos5250-based Insignal Arndale board.
......
......@@ -176,6 +176,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
exynos5420-arndale-octa.dtb \
exynos5420-peach-pit.dtb \
exynos5420-smdk5420.dtb \
exynos5422-odroidhc1.dtb \
exynos5422-odroidxu3.dtb \
exynos5422-odroidxu3-lite.dtb \
exynos5422-odroidxu4.dtb \
......
......@@ -227,28 +227,6 @@ panel@0 {
vci-supply = <&ldo20_reg>;
reset-gpios = <&gpe0 1 GPIO_ACTIVE_LOW>;
te-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
power-on-delay= <30>;
power-off-delay= <120>;
reset-delay = <5>;
init-delay = <100>;
flip-horizontal;
flip-vertical;
panel-width-mm = <29>;
panel-height-mm = <29>;
display-timings {
timing-0 {
clock-frequency = <4600000>;
hactive = <320>;
vactive = <320>;
hfront-porch = <1>;
hback-porch = <1>;
hsync-len = <1>;
vfront-porch = <150>;
vback-porch = <1>;
vsync-len = <2>;
};
};
};
};
......
......@@ -31,8 +31,6 @@ gpio_keys {
pinctrl-0 = <&gpio_power_key>;
power_key {
interrupt-parent = <&gpx1>;
interrupts = <3 IRQ_TYPE_NONE>;
gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
label = "power key";
......
......@@ -43,8 +43,6 @@ gpio_keys {
pinctrl-0 = <&gpio_power_key &gpio_home_key>;
home_key {
interrupt-parent = <&gpx2>;
interrupts = <2 IRQ_TYPE_NONE>;
gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
linux,code = <KEY_HOME>;
label = "home key";
......
......@@ -18,6 +18,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/maxim,max77686.h>
#include <dt-bindings/pinctrl/samsung.h>
/ {
model = "Samsung Trats 2 based on Exynos4412";
......@@ -97,6 +98,34 @@ ps_als_reg: voltage-regulator-5 {
gpio = <&gpj0 5 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vsil12: voltage-regulator-6 {
compatible = "regulator-fixed";
regulator-name = "VSIL_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&buck7_reg>;
};
vcc33mhl: voltage-regulator-7 {
compatible = "regulator-fixed";
regulator-name = "VCC_3.3_MHL";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vcc18mhl: voltage-regulator-8 {
compatible = "regulator-fixed";
regulator-name = "VCC_1.8_MHL";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
gpio-keys {
......@@ -229,6 +258,36 @@ cm36651@18 {
};
};
i2c-mhl {
compatible = "i2c-gpio";
gpios = <&gpf0 4 GPIO_ACTIVE_HIGH>, <&gpf0 6 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <100>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&i2c_mhl_bus>;
pinctrl-names = "default";
status = "okay";
sii9234: hdmi-bridge@39 {
compatible = "sil,sii9234";
avcc33-supply = <&vcc33mhl>;
iovcc18-supply = <&vcc18mhl>;
avcc12-supply = <&vsil12>;
cvcc12-supply = <&vsil12>;
reset-gpios = <&gpf3 4 GPIO_ACTIVE_LOW>;
interrupt-parent = <&gpf3>;
interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x39>;
port {
mhl_to_hdmi: endpoint {
remote-endpoint = <&hdmi_to_mhl>;
};
};
};
};
camera: camera {
pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>;
pinctrl-names = "default";
......@@ -501,6 +560,29 @@ &fimd {
status = "okay";
};
&hdmi {
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_hpd>;
vdd-supply = <&ldo3_reg>;
vdd_osc-supply = <&ldo4_reg>;
vdd_pll-supply = <&ldo3_reg>;
ddc = <&i2c_5>;
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
hdmi_to_mhl: endpoint {
remote-endpoint = <&mhl_to_hdmi>;
};
};
};
};
&hsotg {
vusb_d-supply = <&ldo15_reg>;
vusb_a-supply = <&ldo12_reg>;
......@@ -579,6 +661,10 @@ wm1811: wm1811@1a {
};
};
&i2c_5 {
status = "okay";
};
&i2c_7 {
samsung,i2c-sda-delay = <100>;
samsung,i2c-slave-addr = <0x10>;
......@@ -873,12 +959,20 @@ buck9_reg: BUCK9 {
};
};
&i2c_8 {
status = "okay";
};
&i2s0 {
pinctrl-0 = <&i2s0_bus>;
pinctrl-names = "default";
status = "okay";
};
&mixer {
status = "okay";
};
&mshc_0 {
broken-cd;
non-removable;
......@@ -904,6 +998,18 @@ &pinctrl_0 {
pinctrl-names = "default";
pinctrl-0 = <&sleep0>;
mhl_int: mhl-int {
samsung,pins = "gpf3-5";
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
};
i2c_mhl_bus: i2c-mhl-bus {
samsung,pins = "gpf0-4", "gpf0-6";
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
};
sleep0: sleep-states {
PIN_SLP(gpa0-0, INPUT, NONE);
PIN_SLP(gpa0-1, OUT0, NONE);
......@@ -1007,6 +1113,11 @@ &pinctrl_1 {
pinctrl-names = "default";
pinctrl-0 = <&sleep1>;
hdmi_hpd: hdmi-hpd {
samsung,pins = "gpx3-7";
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
};
sleep1: sleep-states {
PIN_SLP(gpk0-0, PREV, NONE);
PIN_SLP(gpk0-1, PREV, NONE);
......
......@@ -152,6 +152,8 @@ &fimd {
};
&hdmi {
status = "okay";
ddc = <&i2c_2>;
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_LOW>;
vdd_osc-supply = <&ldo10_reg>;
vdd_pll-supply = <&ldo8_reg>;
......@@ -455,15 +457,9 @@ buck9_reg: BUCK9 {
&i2c_2 {
status = "okay";
/* used by HDMI DDC */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <66000>;
samsung,i2c-slave-addr = <0x50>;
hdmiddc@50 {
compatible = "samsung,exynos4210-hdmiddc";
reg = <0x50>;
};
};
&i2c_3 {
......@@ -489,15 +485,9 @@ wm1811a@1a {
&i2c_8 {
status = "okay";
/* used by HDMI PHY */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <66000>;
samsung,i2c-slave-addr = <0x38>;
hdmiphy@38 {
compatible = "samsung,exynos4212-hdmiphy";
reg = <0x38>;
};
};
&i2c_9 {
......@@ -516,6 +506,10 @@ &i2s0 {
status = "okay";
};
&mixer {
status = "okay";
};
&mmc_0 {
status = "okay";
broken-cd;
......
......@@ -116,6 +116,8 @@ &fimd {
};
&hdmi {
status = "okay";
ddc = <&i2c_2>;
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
};
......@@ -308,24 +310,16 @@ wm8994: wm8994@1a {
&i2c_2 {
status = "okay";
/* used by HDMI DDC */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <66000>;
hdmiddc@50 {
compatible = "samsung,exynos4210-hdmiddc";
reg = <0x50>;
};
};
&i2c_8 {
status = "okay";
/* used by HDMI PHY */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <66000>;
hdmiphy@38 {
compatible = "samsung,exynos4212-hdmiphy";
reg = <0x38>;
};
};
&i2c_9 {
......@@ -344,6 +338,10 @@ &i2s0 {
status = "okay";
};
&mixer {
status = "okay";
};
&mmc_0 {
status = "okay";
broken-cd;
......
......@@ -261,10 +261,10 @@ &fimd {
};
&hdmi {
status = "okay";
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_hpd_irq>;
phy = <&hdmiphy>;
ddc = <&i2c_2>;
hdmi-en-supply = <&tps65090_fet7>;
vdd-supply = <&ldo8_reg>;
......@@ -450,13 +450,9 @@ &i2c2_bus {
&i2c_2 {
status = "okay";
/* used by HDMI DDC */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <66000>;
hdmiddc@50 {
compatible = "samsung,exynos4210-hdmiddc";
reg = <0x50>;
};
};
&i2c_3 {
......@@ -514,19 +510,19 @@ bridge_in: endpoint {
&i2c_8 {
status = "okay";
/* used by HDMI PHY */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <378000>;
hdmiphy: hdmiphy@38 {
compatible = "samsung,exynos4212-hdmiphy";
reg = <0x38>;
};
};
&i2s0 {
status = "okay";
};
&mixer {
status = "okay";
};
/* eMMC flash */
&mmc_0 {
status = "okay";
......
......@@ -91,10 +91,10 @@ &fimd {
};
&hdmi {
status = "okay";
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_hpd_irq>;
phy = <&hdmiphy>;
ddc = <&i2c_2>;
hdmi-en-supply = <&ldo8_reg>;
vdd-supply = <&ldo8_reg>;
......@@ -362,13 +362,9 @@ &i2c2_bus {
&i2c_2 {
status = "okay";
/* used by HDMI DDC */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <66000>;
hdmiddc@50 {
compatible = "samsung,exynos4210-hdmiddc";
reg = <0x50>;
};
};
&i2c_3 {
......@@ -412,19 +408,19 @@ temperature-sensor@4c {
&i2c_8 {
status = "okay";
/* used by HDMI PHY */
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <378000>;
hdmiphy: hdmiphy@38 {
compatible = "samsung,exynos4212-hdmiphy";
reg = <0x38>;
};
};
&i2s0 {
status = "okay";
};
&mixer {
status = "okay";
};
&mmc_0 {
status = "okay";
broken-cd;
......
......@@ -367,6 +367,11 @@ i2c_8: i2c@12CE0000 {
clocks = <&clock CLK_I2C_HDMI>;
clock-names = "i2c";
status = "disabled";
hdmiphy: hdmiphy@38 {
compatible = "samsung,exynos4212-hdmiphy";
reg = <0x38>;
};
};
i2c_9: i2c@121D0000 {
......@@ -637,7 +642,7 @@ mdma1: mdma@11C10000 {
};
gsc_0: gsc@13e00000 {
compatible = "samsung,exynos5-gsc";
compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
reg = <0x13e00000 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_gsc>;
......@@ -647,7 +652,7 @@ gsc_0: gsc@13e00000 {
};
gsc_1: gsc@13e10000 {
compatible = "samsung,exynos5-gsc";
compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
reg = <0x13e10000 0x1000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_gsc>;
......@@ -657,7 +662,7 @@ gsc_1: gsc@13e10000 {
};
gsc_2: gsc@13e20000 {
compatible = "samsung,exynos5-gsc";
compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
reg = <0x13e20000 0x1000>;
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_gsc>;
......@@ -667,7 +672,7 @@ gsc_2: gsc@13e20000 {
};
gsc_3: gsc@13e30000 {
compatible = "samsung,exynos5-gsc";
compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
reg = <0x13e30000 0x1000>;
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_gsc>;
......@@ -687,6 +692,8 @@ hdmi: hdmi@14530000 {
clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
"sclk_hdmiphy", "mout_hdmi";
samsung,syscon-phandle = <&pmu_system_controller>;
phy = <&hdmiphy>;
status = "disabled";
};
hdmicec: cec@101B0000 {
......@@ -702,7 +709,7 @@ hdmicec: cec@101B0000 {
status = "disabled";
};
mixer@14450000 {
mixer: mixer@14450000 {
compatible = "samsung,exynos5250-mixer";
reg = <0x14450000 0x10000>;
power-domains = <&pd_disp1>;
......@@ -711,6 +718,7 @@ mixer@14450000 {
<&clock CLK_SCLK_HDMI>;
clock-names = "mixer", "hdmi", "sclk_hdmi";
iommus = <&sysmmu_tv>;
status = "disabled";
};
dp_phy: video-phy {
......
......@@ -360,6 +360,10 @@ &i2c_2 {
status = "okay";
};
&mixer {
status = "okay";
};
&mmc_0 {
status = "okay";
broken-cd;
......
......@@ -36,6 +36,7 @@ cpu0: cpu@0 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
cpu1: cpu@1 {
......@@ -48,6 +49,7 @@ cpu1: cpu@1 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
cpu2: cpu@2 {
......@@ -60,6 +62,7 @@ cpu2: cpu@2 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
cpu3: cpu@3 {
......@@ -72,6 +75,7 @@ cpu3: cpu@3 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
cpu4: cpu@100 {
......@@ -85,6 +89,7 @@ cpu4: cpu@100 {
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
cpu5: cpu@101 {
......@@ -97,6 +102,7 @@ cpu5: cpu@101 {
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
cpu6: cpu@102 {
......@@ -109,6 +115,7 @@ cpu6: cpu@102 {
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
cpu7: cpu@103 {
......@@ -121,6 +128,7 @@ cpu7: cpu@103 {
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
};
};
......@@ -696,6 +696,10 @@ &i2s0 {
status = "okay";
};
&mixer {
status = "okay";
};
/* eMMC flash */
&mmc_0 {
status = "okay";
......
......@@ -130,6 +130,7 @@ &fimd {
&hdmi {
status = "okay";
ddc = <&i2c_2>;
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_hpd_irq>;
......@@ -347,12 +348,12 @@ buck10_reg: BUCK10 {
&i2c_2 {
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <66000>;
/* used by HDMI DDC */
status = "okay";
};
hdmiddc@50 {
compatible = "samsung,exynos4210-hdmiddc";
reg = <0x50>;
};
&mixer {
status = "okay";
};
&mmc_0 {
......
......@@ -646,6 +646,7 @@ mixer: mixer@14450000 {
clock-names = "mixer", "hdmi", "sclk_hdmi";
power-domains = <&disp_pd>;
iommus = <&sysmmu_tv>;
status = "disabled";
};
rotator: rotator@11C00000 {
......@@ -658,7 +659,7 @@ rotator: rotator@11C00000 {
};
gsc_0: video-scaler@13e00000 {
compatible = "samsung,exynos5-gsc";
compatible = "samsung,exynos5420-gsc", "samsung,exynos5-gsc";
reg = <0x13e00000 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_GSCL0>;
......@@ -668,7 +669,7 @@ gsc_0: video-scaler@13e00000 {
};
gsc_1: video-scaler@13e10000 {
compatible = "samsung,exynos5-gsc";
compatible = "samsung,exynos5420-gsc", "samsung,exynos5-gsc";
reg = <0x13e10000 0x1000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_GSCL1>;
......
......@@ -35,6 +35,7 @@ cpu0: cpu@100 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
cpu1: cpu@101 {
......@@ -47,6 +48,7 @@ cpu1: cpu@101 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
cpu2: cpu@102 {
......@@ -59,6 +61,7 @@ cpu2: cpu@102 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
cpu3: cpu@103 {
......@@ -71,6 +74,7 @@ cpu3: cpu@103 {
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <539>;
};
cpu4: cpu@0 {
......@@ -84,6 +88,7 @@ cpu4: cpu@0 {
cooling-min-level = <0>;
cooling-max-level = <15>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
cpu5: cpu@1 {
......@@ -96,6 +101,7 @@ cpu5: cpu@1 {
cooling-min-level = <0>;
cooling-max-level = <15>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
cpu6: cpu@2 {
......@@ -108,6 +114,7 @@ cpu6: cpu@2 {
cooling-min-level = <0>;
cooling-max-level = <15>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
cpu7: cpu@3 {
......@@ -120,6 +127,7 @@ cpu7: cpu@3 {
cooling-min-level = <0>;
cooling-max-level = <15>;
#cooling-cells = <2>; /* min followed by max */
capacity-dmips-mhz = <1024>;
};
};
};
/*
* Hardkernel Odroid XU3/XU4/HC1 boards core device tree source
*
* Copyright (c) 2017 Marek Szyprowski
* Copyright (c) 2013-2017 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <dt-bindings/clock/samsung,s2mps11.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>
#include "exynos5800.dtsi"
#include "exynos5422-cpus.dtsi"
/ {
memory@40000000 {
device_type = "memory";
reg = <0x40000000 0x7EA00000>;
};
chosen {
stdout-path = "serial2:115200n8";
};
firmware@02073000 {
compatible = "samsung,secure-firmware";
reg = <0x02073000 0x1000>;
};
fixed-rate-clocks {
oscclk {
compatible = "samsung,exynos5420-oscclk";
clock-frequency = <24000000>;
};
};
};
&bus_wcore {
devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
<&nocp_mem1_0>, <&nocp_mem1_1>;
vdd-supply = <&buck3_reg>;
exynos,saturation-ratio = <100>;
status = "okay";
};
&bus_noc {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_fsys_apb {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_fsys {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_fsys2 {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_mfc {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_gen {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_peri {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_g2d {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_g2d_acp {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_jpeg {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_jpeg_apb {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_disp1_fimd {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_disp1 {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_gscl_scaler {
devfreq = <&bus_wcore>;
status = "okay";
};
&bus_mscl {
devfreq = <&bus_wcore>;
status = "okay";
};
&cpu0 {
cpu-supply = <&buck6_reg>;
};
&cpu4 {
cpu-supply = <&buck2_reg>;
};
&hsi2c_4 {
status = "okay";
s2mps11_pmic@66 {
compatible = "samsung,s2mps11-pmic";
reg = <0x66>;
samsung,s2mps11-acokb-ground;
interrupt-parent = <&gpx0>;
interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&s2mps11_irq>;
s2mps11_osc: clocks {
#clock-cells = <1>;
clock-output-names = "s2mps11_ap",
"s2mps11_cp", "s2mps11_bt";
};
regulators {
ldo1_reg: LDO1 {
regulator-name = "vdd_ldo1";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
ldo3_reg: LDO3 {
regulator-name = "vddq_mmc0";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo4_reg: LDO4 {
regulator-name = "vdd_adc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo5_reg: LDO5 {
regulator-name = "vdd_ldo5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo6_reg: LDO6 {
regulator-name = "vdd_ldo6";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
ldo7_reg: LDO7 {
regulator-name = "vdd_ldo7";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo8_reg: LDO8 {
regulator-name = "vdd_ldo8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo9_reg: LDO9 {
regulator-name = "vdd_ldo9";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-always-on;
};
ldo10_reg: LDO10 {
regulator-name = "vdd_ldo10";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo11_reg: LDO11 {
regulator-name = "vdd_ldo11";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
ldo12_reg: LDO12 {
regulator-name = "vdd_ldo12";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo13_reg: LDO13 {
regulator-name = "vddq_mmc2";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo15_reg: LDO15 {
regulator-name = "vdd_ldo15";
regulator-min-microvolt = <3100000>;
regulator-max-microvolt = <3100000>;
regulator-always-on;
};
ldo16_reg: LDO16 {
regulator-name = "vdd_ldo16";
regulator-min-microvolt = <2200000>;
regulator-max-microvolt = <2200000>;
regulator-always-on;
};
ldo17_reg: LDO17 {
regulator-name = "tsp_avdd";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
ldo18_reg: LDO18 {
regulator-name = "vdd_emmc_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo19_reg: LDO19 {
regulator-name = "vdd_sd";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo24_reg: LDO24 {
regulator-name = "tsp_io";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo26_reg: LDO26 {
regulator-name = "vdd_ldo26";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-always-on;
};
buck1_reg: BUCK1 {
regulator-name = "vdd_mif";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-boot-on;
};
buck2_reg: BUCK2 {
regulator-name = "vdd_arm";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-boot-on;
};
buck3_reg: BUCK3 {
regulator-name = "vdd_int";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
regulator-boot-on;
};
buck4_reg: BUCK4 {
regulator-name = "vdd_g3d";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
regulator-boot-on;
};
buck5_reg: BUCK5 {
regulator-name = "vdd_mem";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
regulator-boot-on;
};
buck6_reg: BUCK6 {
regulator-name = "vdd_kfc";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-boot-on;
};
buck7_reg: BUCK7 {
regulator-name = "vdd_1.0v_ldo";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-boot-on;
};
buck8_reg: BUCK8 {
regulator-name = "vdd_1.8v_ldo";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-boot-on;
};
buck9_reg: BUCK9 {
regulator-name = "vdd_2.8v_ldo";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3750000>;
regulator-always-on;
regulator-boot-on;
};
buck10_reg: BUCK10 {
regulator-name = "vdd_vmem";
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
regulator-always-on;
regulator-boot-on;
};
};
};
};
&mmc_2 {
status = "okay";
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
pinctrl-names = "default";
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
bus-width = <4>;
cap-sd-highspeed;
vmmc-supply = <&ldo19_reg>;
vqmmc-supply = <&ldo13_reg>;
};
&nocp_mem0_0 {
status = "okay";
};
&nocp_mem0_1 {
status = "okay";
};
&nocp_mem1_0 {
status = "okay";
};
&nocp_mem1_1 {
status = "okay";
};
&pinctrl_0 {
s2mps11_irq: s2mps11-irq {
samsung,pins = "gpx0-4";
samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
};
};
&tmu_cpu0 {
vtmu-supply = <&ldo7_reg>;
};
&tmu_cpu1 {
vtmu-supply = <&ldo7_reg>;
};
&tmu_cpu2 {
vtmu-supply = <&ldo7_reg>;
};
&tmu_cpu3 {
vtmu-supply = <&ldo7_reg>;
};
&tmu_gpu {
vtmu-supply = <&ldo7_reg>;
};
&rtc {
status = "okay";
clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
clock-names = "rtc", "rtc_src";
};
&usbdrd_dwc3_0 {
dr_mode = "host";
};
/* usbdrd_dwc3_1 mode customized in each board */
&usbdrd3_0 {
vdd33-supply = <&ldo9_reg>;
vdd10-supply = <&ldo11_reg>;
};
&usbdrd3_1 {
vdd33-supply = <&ldo9_reg>;
vdd10-supply = <&ldo11_reg>;
};
/*
* Hardkernel Odroid HC1 board device tree source
*
* Copyright (c) 2017 Marek Szyprowski
* Copyright (c) 2017 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
#include "exynos5422-odroid-core.dtsi"
/ {
model = "Hardkernel Odroid HC1";
compatible = "hardkernel,odroid-hc1", "samsung,exynos5800", \
"samsung,exynos5";
pwmleds {
compatible = "pwm-leds";
blueled {
label = "blue:heartbeat";
pwms = <&pwm 2 2000000 0>;
pwm-names = "pwm2";
max_brightness = <255>;
linux,default-trigger = "heartbeat";
};
};
thermal-zones {
cpu0_thermal: cpu0-thermal {
thermal-sensors = <&tmu_cpu0 0>;
trips {
cpu0_alert0: cpu-alert-0 {
temperature = <70000>; /* millicelsius */
hysteresis = <10000>; /* millicelsius */
type = "active";
};
cpu0_alert1: cpu-alert-1 {
temperature = <85000>; /* millicelsius */
hysteresis = <10000>; /* millicelsius */
type = "active";
};
cpu0_crit0: cpu-crit-0 {
temperature = <120000>; /* millicelsius */
hysteresis = <0>; /* millicelsius */
type = "critical";
};
};
cooling-maps {
/*
* When reaching cpu0_alert0, reduce CPU
* by 2 steps. On Exynos5422/5800 that would
* be: 1600 MHz and 1100 MHz.
*/
map0 {
trip = <&cpu0_alert0>;
cooling-device = <&cpu0 0 2>;
};
map1 {
trip = <&cpu0_alert0>;
cooling-device = <&cpu4 0 2>;
};
/*
* When reaching cpu0_alert1, reduce CPU
* further, down to 600 MHz (12 steps for big,
* 7 steps for LITTLE).
*/
map2 {
trip = <&cpu0_alert1>;
cooling-device = <&cpu0 3 7>;
};
map3 {
trip = <&cpu0_alert1>;
cooling-device = <&cpu4 3 12>;
};
};
};
cpu1_thermal: cpu1-thermal {
thermal-sensors = <&tmu_cpu1 0>;
trips {
cpu1_alert0: cpu-alert-0 {
temperature = <70000>;
hysteresis = <10000>;
type = "active";
};
cpu1_alert1: cpu-alert-1 {
temperature = <85000>;
hysteresis = <10000>;
type = "active";
};
cpu1_crit0: cpu-crit-0 {
temperature = <120000>;
hysteresis = <0>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&cpu1_alert0>;
cooling-device = <&cpu0 0 2>;
};
map1 {
trip = <&cpu1_alert0>;
cooling-device = <&cpu4 0 2>;
};
map2 {
trip = <&cpu1_alert1>;
cooling-device = <&cpu0 3 7>;
};
map3 {
trip = <&cpu1_alert1>;
cooling-device = <&cpu4 3 12>;
};
};
};
cpu2_thermal: cpu2-thermal {
thermal-sensors = <&tmu_cpu2 0>;
trips {
cpu2_alert0: cpu-alert-0 {
temperature = <70000>;
hysteresis = <10000>;
type = "active";
};
cpu2_alert1: cpu-alert-1 {
temperature = <85000>;
hysteresis = <10000>;
type = "active";
};
cpu2_crit0: cpu-crit-0 {
temperature = <120000>;
hysteresis = <0>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&cpu2_alert0>;
cooling-device = <&cpu0 0 2>;
};
map1 {
trip = <&cpu2_alert0>;
cooling-device = <&cpu4 0 2>;
};
map2 {
trip = <&cpu2_alert1>;
cooling-device = <&cpu0 3 7>;
};
map3 {
trip = <&cpu2_alert1>;
cooling-device = <&cpu4 3 12>;
};
};
};
cpu3_thermal: cpu3-thermal {
thermal-sensors = <&tmu_cpu3 0>;
trips {
cpu3_alert0: cpu-alert-0 {
temperature = <70000>;
hysteresis = <10000>;
type = "active";
};
cpu3_alert1: cpu-alert-1 {
temperature = <85000>;
hysteresis = <10000>;
type = "active";
};
cpu3_crit0: cpu-crit-0 {
temperature = <120000>;
hysteresis = <0>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&cpu3_alert0>;
cooling-device = <&cpu0 0 2>;
};
map1 {
trip = <&cpu3_alert0>;
cooling-device = <&cpu4 0 2>;
};
map2 {
trip = <&cpu3_alert1>;
cooling-device = <&cpu0 3 7>;
};
map3 {
trip = <&cpu3_alert1>;
cooling-device = <&cpu4 3 12>;
};
};
};
};
};
&pwm {
/*
* PWM 2 -- Blue LED
*/
pinctrl-0 = <&pwm2_out>;
pinctrl-names = "default";
samsung,pwm-outputs = <2>;
status = "okay";
};
&usbdrd_dwc3_1 {
dr_mode = "host";
};
......@@ -11,6 +11,8 @@
* published by the Free Software Foundation.
*/
#include <dt-bindings/sound/samsung-i2s.h>
/ {
sound: sound {
compatible = "simple-audio-card";
......@@ -43,6 +45,17 @@ link0_codec: simple-audio-card,codec {
};
};
&clock_audss {
assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
<&clock_audss EXYNOS_MOUT_I2S>,
<&clock_audss EXYNOS_DOUT_AUD_BUS>;
assigned-clock-parents = <&clock CLK_FIN_PLL>,
<&clock_audss EXYNOS_MOUT_AUDSS>;
assigned-clock-rates = <0>,
<0>,
<19200000>;
};
&hsi2c_5 {
status = "okay";
max98090: max98090@10 {
......
......@@ -134,6 +134,7 @@ usbdrd_dwc3_0: dwc3@12000000 {
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
phy-names = "usb2-phy", "usb3-phy";
snps,dis_u3_susphy_quirk;
};
};
......@@ -154,6 +155,7 @@ usbdrd_dwc3_1: dwc3@12400000 {
reg = <0x12400000 0x10000>;
phys = <&usbdrd_phy1 0>, <&usbdrd_phy1 1>;
phy-names = "usb2-phy", "usb3-phy";
snps,dis_u3_susphy_quirk;
};
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment