417 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			417 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0
 | |
| /*
 | |
|  * Hardkernel Odroid XU3 board device tree source
 | |
|  *
 | |
|  * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 | |
|  *		http://www.samsung.com
 | |
|  * Copyright (c) 2014 Collabora Ltd.
 | |
|  * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
 | |
|  *                    Anand Moon <linux.amoon@gmail.com>
 | |
|  */
 | |
| 
 | |
| #include <dt-bindings/input/input.h>
 | |
| #include "exynos5422-odroid-core.dtsi"
 | |
| 
 | |
| / {
 | |
| 	gpio_keys {
 | |
| 		compatible = "gpio-keys";
 | |
| 		pinctrl-names = "default";
 | |
| 		pinctrl-0 = <&power_key>;
 | |
| 
 | |
| 		power_key {
 | |
| 			/*
 | |
| 			 * The power button (SW2) is connected to the PWRON
 | |
| 			 * pin (active high) of the S2MPS11 PMIC, which acts
 | |
| 			 * as a 16ms debouce filter and signal inverter with
 | |
| 			 * output on ONOB pin (active low). ONOB PMIC pin is
 | |
| 			 * then connected to XEINT3 SoC pin.
 | |
| 			 */
 | |
| 			gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
 | |
| 			linux,code = <KEY_POWER>;
 | |
| 			label = "power key";
 | |
| 			debounce-interval = <0>;
 | |
| 			wakeup-source;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	emmc_pwrseq: pwrseq {
 | |
| 		pinctrl-0 = <&emmc_nrst_pin>;
 | |
| 		pinctrl-names = "default";
 | |
| 		compatible = "mmc-pwrseq-emmc";
 | |
| 		reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>;
 | |
| 	};
 | |
| 
 | |
| 	fan0: pwm-fan {
 | |
| 		compatible = "pwm-fan";
 | |
| 		pwms = <&pwm 0 20972 0>;
 | |
| 		cooling-min-state = <0>;
 | |
| 		cooling-max-state = <3>;
 | |
| 		#cooling-cells = <2>;
 | |
| 		cooling-levels = <0 130 170 230>;
 | |
| 	};
 | |
| 
 | |
| 	thermal-zones {
 | |
| 		cpu0_thermal: cpu0-thermal {
 | |
| 			thermal-sensors = <&tmu_cpu0 0>;
 | |
| 			polling-delay-passive = <250>;
 | |
| 			polling-delay = <0>;
 | |
| 			trips {
 | |
| 				cpu0_alert0: cpu-alert-0 {
 | |
| 					temperature = <50000>; /* millicelsius */
 | |
| 					hysteresis = <5000>; /* millicelsius */
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu0_alert1: cpu-alert-1 {
 | |
| 					temperature = <60000>; /* millicelsius */
 | |
| 					hysteresis = <5000>; /* millicelsius */
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu0_alert2: cpu-alert-2 {
 | |
| 					temperature = <70000>; /* millicelsius */
 | |
| 					hysteresis = <5000>; /* millicelsius */
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu0_crit0: cpu-crit-0 {
 | |
| 					temperature = <120000>; /* millicelsius */
 | |
| 					hysteresis = <0>; /* millicelsius */
 | |
| 					type = "critical";
 | |
| 				};
 | |
| 				/*
 | |
| 				 * Exynos542x supports only 4 trip-points
 | |
| 				 * so for these polling mode is required.
 | |
| 				 * Start polling at temperature level of last
 | |
| 				 * interrupt-driven trip: cpu0_alert2
 | |
| 				 */
 | |
| 				cpu0_alert3: cpu-alert-3 {
 | |
| 					temperature = <70000>; /* millicelsius */
 | |
| 					hysteresis = <10000>; /* millicelsius */
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 				cpu0_alert4: cpu-alert-4 {
 | |
| 					temperature = <85000>; /* millicelsius */
 | |
| 					hysteresis = <10000>; /* millicelsius */
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 			cooling-maps {
 | |
| 				map0 {
 | |
| 					trip = <&cpu0_alert0>;
 | |
| 					cooling-device = <&fan0 0 1>;
 | |
| 				};
 | |
| 				map1 {
 | |
| 					trip = <&cpu0_alert1>;
 | |
| 					cooling-device = <&fan0 1 2>;
 | |
| 				};
 | |
| 				map2 {
 | |
| 					trip = <&cpu0_alert2>;
 | |
| 					cooling-device = <&fan0 2 3>;
 | |
| 				};
 | |
| 				/*
 | |
| 				 * When reaching cpu0_alert3, reduce CPU
 | |
| 				 * by 2 steps. On Exynos5422/5800 that would
 | |
| 				 * be: 1600 MHz and 1100 MHz.
 | |
| 				 */
 | |
| 				map3 {
 | |
| 					trip = <&cpu0_alert3>;
 | |
| 					cooling-device = <&cpu0 0 2>;
 | |
| 				};
 | |
| 				map4 {
 | |
| 					trip = <&cpu0_alert3>;
 | |
| 					cooling-device = <&cpu4 0 2>;
 | |
| 				};
 | |
| 				/*
 | |
| 				 * When reaching cpu0_alert4, reduce CPU
 | |
| 				 * further, down to 600 MHz (12 steps for big,
 | |
| 				 * 7 steps for LITTLE).
 | |
| 				 */
 | |
| 				map5 {
 | |
| 					trip = <&cpu0_alert4>;
 | |
| 					cooling-device = <&cpu0 3 7>;
 | |
| 				};
 | |
| 				map6 {
 | |
| 					trip = <&cpu0_alert4>;
 | |
| 					cooling-device = <&cpu4 3 12>;
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 		cpu1_thermal: cpu1-thermal {
 | |
| 			thermal-sensors = <&tmu_cpu1 0>;
 | |
| 			polling-delay-passive = <250>;
 | |
| 			polling-delay = <0>;
 | |
| 			trips {
 | |
| 				cpu1_alert0: cpu-alert-0 {
 | |
| 					temperature = <50000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu1_alert1: cpu-alert-1 {
 | |
| 					temperature = <60000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu1_alert2: cpu-alert-2 {
 | |
| 					temperature = <70000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu1_crit0: cpu-crit-0 {
 | |
| 					temperature = <120000>;
 | |
| 					hysteresis = <0>;
 | |
| 					type = "critical";
 | |
| 				};
 | |
| 				cpu1_alert3: cpu-alert-3 {
 | |
| 					temperature = <70000>;
 | |
| 					hysteresis = <10000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 				cpu1_alert4: cpu-alert-4 {
 | |
| 					temperature = <85000>;
 | |
| 					hysteresis = <10000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 			cooling-maps {
 | |
| 				map0 {
 | |
| 					trip = <&cpu1_alert0>;
 | |
| 					cooling-device = <&fan0 0 1>;
 | |
| 				};
 | |
| 				map1 {
 | |
| 					trip = <&cpu1_alert1>;
 | |
| 					cooling-device = <&fan0 1 2>;
 | |
| 				};
 | |
| 				map2 {
 | |
| 					trip = <&cpu1_alert2>;
 | |
| 					cooling-device = <&fan0 2 3>;
 | |
| 				};
 | |
| 				map3 {
 | |
| 					trip = <&cpu1_alert3>;
 | |
| 					cooling-device = <&cpu0 0 2>;
 | |
| 				};
 | |
| 				map4 {
 | |
| 					trip = <&cpu1_alert3>;
 | |
| 					cooling-device = <&cpu4 0 2>;
 | |
| 				};
 | |
| 				map5 {
 | |
| 					trip = <&cpu1_alert4>;
 | |
| 					cooling-device = <&cpu0 3 7>;
 | |
| 				};
 | |
| 				map6 {
 | |
| 					trip = <&cpu1_alert4>;
 | |
| 					cooling-device = <&cpu4 3 12>;
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 		cpu2_thermal: cpu2-thermal {
 | |
| 			thermal-sensors = <&tmu_cpu2 0>;
 | |
| 			polling-delay-passive = <250>;
 | |
| 			polling-delay = <0>;
 | |
| 			trips {
 | |
| 				cpu2_alert0: cpu-alert-0 {
 | |
| 					temperature = <50000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu2_alert1: cpu-alert-1 {
 | |
| 					temperature = <60000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu2_alert2: cpu-alert-2 {
 | |
| 					temperature = <70000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu2_crit0: cpu-crit-0 {
 | |
| 					temperature = <120000>;
 | |
| 					hysteresis = <0>;
 | |
| 					type = "critical";
 | |
| 				};
 | |
| 				cpu2_alert3: cpu-alert-3 {
 | |
| 					temperature = <70000>;
 | |
| 					hysteresis = <10000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 				cpu2_alert4: cpu-alert-4 {
 | |
| 					temperature = <85000>;
 | |
| 					hysteresis = <10000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 			cooling-maps {
 | |
| 				map0 {
 | |
| 					trip = <&cpu2_alert0>;
 | |
| 					cooling-device = <&fan0 0 1>;
 | |
| 				};
 | |
| 				map1 {
 | |
| 					trip = <&cpu2_alert1>;
 | |
| 					cooling-device = <&fan0 1 2>;
 | |
| 				};
 | |
| 				map2 {
 | |
| 					trip = <&cpu2_alert2>;
 | |
| 					cooling-device = <&fan0 2 3>;
 | |
| 				};
 | |
| 				map3 {
 | |
| 					trip = <&cpu2_alert3>;
 | |
| 					cooling-device = <&cpu0 0 2>;
 | |
| 				};
 | |
| 				map4 {
 | |
| 					trip = <&cpu2_alert3>;
 | |
| 					cooling-device = <&cpu4 0 2>;
 | |
| 				};
 | |
| 				map5 {
 | |
| 					trip = <&cpu2_alert4>;
 | |
| 					cooling-device = <&cpu0 3 7>;
 | |
| 				};
 | |
| 				map6 {
 | |
| 					trip = <&cpu2_alert4>;
 | |
| 					cooling-device = <&cpu4 3 12>;
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 		cpu3_thermal: cpu3-thermal {
 | |
| 			thermal-sensors = <&tmu_cpu3 0>;
 | |
| 			polling-delay-passive = <250>;
 | |
| 			polling-delay = <0>;
 | |
| 			trips {
 | |
| 				cpu3_alert0: cpu-alert-0 {
 | |
| 					temperature = <50000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu3_alert1: cpu-alert-1 {
 | |
| 					temperature = <60000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu3_alert2: cpu-alert-2 {
 | |
| 					temperature = <70000>;
 | |
| 					hysteresis = <5000>;
 | |
| 					type = "active";
 | |
| 				};
 | |
| 				cpu3_crit0: cpu-crit-0 {
 | |
| 					temperature = <120000>;
 | |
| 					hysteresis = <0>;
 | |
| 					type = "critical";
 | |
| 				};
 | |
| 				cpu3_alert3: cpu-alert-3 {
 | |
| 					temperature = <70000>;
 | |
| 					hysteresis = <10000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 				cpu3_alert4: cpu-alert-4 {
 | |
| 					temperature = <85000>;
 | |
| 					hysteresis = <10000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 			cooling-maps {
 | |
| 				map0 {
 | |
| 					trip = <&cpu3_alert0>;
 | |
| 					cooling-device = <&fan0 0 1>;
 | |
| 				};
 | |
| 				map1 {
 | |
| 					trip = <&cpu3_alert1>;
 | |
| 					cooling-device = <&fan0 1 2>;
 | |
| 				};
 | |
| 				map2 {
 | |
| 					trip = <&cpu3_alert2>;
 | |
| 					cooling-device = <&fan0 2 3>;
 | |
| 				};
 | |
| 				map3 {
 | |
| 					trip = <&cpu3_alert3>;
 | |
| 					cooling-device = <&cpu0 0 2>;
 | |
| 				};
 | |
| 				map4 {
 | |
| 					trip = <&cpu3_alert3>;
 | |
| 					cooling-device = <&cpu4 0 2>;
 | |
| 				};
 | |
| 				map5 {
 | |
| 					trip = <&cpu3_alert4>;
 | |
| 					cooling-device = <&cpu0 3 7>;
 | |
| 				};
 | |
| 				map6 {
 | |
| 					trip = <&cpu3_alert4>;
 | |
| 					cooling-device = <&cpu4 3 12>;
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &adc {
 | |
| 	vdd-supply = <&ldo4_reg>;
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &hdmi {
 | |
| 	status = "okay";
 | |
| 	ddc = <&i2c_2>;
 | |
| 	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
 | |
| 	pinctrl-names = "default";
 | |
| 	pinctrl-0 = <&hdmi_hpd_irq>;
 | |
| 
 | |
| 	vdd_osc-supply = <&ldo7_reg>;
 | |
| 	vdd_pll-supply = <&ldo6_reg>;
 | |
| 	vdd-supply = <&ldo6_reg>;
 | |
| };
 | |
| 
 | |
| &hdmicec {
 | |
| 	status = "okay";
 | |
| 	needs-hpd;
 | |
| };
 | |
| 
 | |
| &i2c_2 {
 | |
| 	samsung,i2c-sda-delay = <100>;
 | |
| 	samsung,i2c-max-bus-freq = <66000>;
 | |
| 	/* used by HDMI DDC */
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &mixer {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &mmc_0 {
 | |
| 	status = "okay";
 | |
| 	mmc-pwrseq = <&emmc_pwrseq>;
 | |
| 	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 2>;
 | |
| 	samsung,read-strobe-delay = <90>;
 | |
| 	pinctrl-names = "default";
 | |
| 	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>;
 | |
| 	bus-width = <8>;
 | |
| 	cap-mmc-highspeed;
 | |
| 	mmc-hs200-1_8v;
 | |
| 	mmc-hs400-1_8v;
 | |
| 	vmmc-supply = <&ldo18_reg>;
 | |
| 	vqmmc-supply = <&ldo3_reg>;
 | |
| };
 | |
| 
 | |
| &pinctrl_0 {
 | |
| 	power_key: power-key {
 | |
| 		samsung,pins = "gpx0-3";
 | |
| 		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
 | |
| 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 | |
| 		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
 | |
| 	};
 | |
| 
 | |
| 	hdmi_hpd_irq: hdmi-hpd-irq {
 | |
| 		samsung,pins = "gpx3-7";
 | |
| 		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
 | |
| 		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
 | |
| 		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &pinctrl_1 {
 | |
| 	emmc_nrst_pin: emmc-nrst {
 | |
| 		samsung,pins = "gpd1-0";
 | |
| 		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
 | |
| 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 | |
| 		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
 | |
| 	};
 | |
| };
 | 
