[PATCH] ARM: dts: Add Exynos5250 Snow Rev5+ support

Mauro Carvalho Chehab mchehab at osg.samsung.com
Tue Sep 29 05:10:49 PDT 2015


Em Tue, 29 Sep 2015 13:57:35 +0200
Javier Martinez Canillas <javier at osg.samsung.com> escreveu:

> There are 2 revisions of the Exynos5250 Snow Chromebook that were shipped:
> Rev4 and Rev5. The only difference between these 2 revisions is the codec,
> Rev4 has a max98095 codec while Rev5 has a max98090.
> 
> Mainline only supports Rev4 so this patch moves the common device nodes to
> a DTSI file and adds a DTS for the Exynos5250 Snow Rev5.
> 
> The Snow Rev5 DTS is based on the DTS found in the ChromiumOS 3.8 tree.
> 
> Signed-off-by: Javier Martinez Canillas <javier at osg.samsung.com>


Tested-by: Mauro Carvalho Chehab <mchehab at osg.samsung.com>

Tested on my Chromebook snow revision 5, with the following its file:

/dts-v1/;

/ {
    description = "Chrome OS kernel image with one or more FDT blobs";
    #address-cells = <1>;
    images {
        kernel at 1{
	    description = "kernel";
            data = /incbin/("arch/arm/boot/zImage");
            type = "kernel_noload";
            arch = "arm";
            os = "linux";
            compression = "none";
            load = <0>;
            entry = <0>;
        };
        fdt at 1{
            description = "exynos5250-snow.dtb";
            data = /incbin/("arch/arm/boot/dts/exynos5250-snow.dtb");
            type = "flat_dt";
            arch = "arm";
            compression = "none";
            hash at 1{
                algo = "sha1";
            };
        };
        fdt at 2{
            description = "exynos5800-peach-pi.dtb";
            data = /incbin/("arch/arm/boot/dts/exynos5800-peach-pi.dtb");
            type = "flat_dt";
            arch = "arm";
            compression = "none";
            hash at 1{
                algo = "sha1";
            };
        };
        fdt at 3{
            description = "exynos5250-snow-rev5.dtb";
            data = /incbin/("arch/arm/boot/dts/exynos5250-snow-rev5.dtb");
            type = "flat_dt";
            arch = "arm";
            compression = "none";
            hash at 1{
                algo = "sha1";
            };
        };
    };
    configurations {
        default = "conf at 1";
        conf at 1{
            kernel = "kernel at 1";
            fdt = "fdt at 1";
        };
        conf at 2{
            kernel = "kernel at 1";
            fdt = "fdt at 2";
        };
        conf at 3{
            kernel = "kernel at 1";
            fdt = "fdt at 3";
        };
    };
};


After this patch, is is now properly detecting the audio chipset:

[    0.897587] max98090 7-0010: MAX98090 REVID=0x43
[    0.900135] max98090 7-0010: use default 2.8v micbias

> 
> ---
> 
> The DTS in the vendor ChromeOS tree are called exynos5250-snow-rev{4,5}.dtb
> but I decided to leave Rev4 as exynos5250-snow.dtb to avoid breaking u-boot
> that has CONFIG_DEFAULT_DEVICE_TREE="exynos5250-snow" in snow_defconfig.
> 
> Also, ChromiumOS Rev4 DTS has "google,snow-rev4" in its compatible string
> but was not added in mainline since Rev4 firmware fallbacks to "google,snow"
> and Rev5 searches for "google,snow-rev5". That way the compatible string
> could be consistent with the DTS naming and still be able to pack both Rev4
> and Rev5 FDT in the same FIT image and let the firmware pick the correct FDT.
> 
>  arch/arm/boot/dts/Makefile                    |   1 +
>  arch/arm/boot/dts/exynos5250-snow-common.dtsi | 684 ++++++++++++++++++++++++++
>  arch/arm/boot/dts/exynos5250-snow-rev5.dts    |  47 ++
>  arch/arm/boot/dts/exynos5250-snow.dts         | 666 +------------------------
>  4 files changed, 733 insertions(+), 665 deletions(-)
>  create mode 100644 arch/arm/boot/dts/exynos5250-snow-common.dtsi
>  create mode 100644 arch/arm/boot/dts/exynos5250-snow-rev5.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 5436ad479b08..a2408a63b341 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -115,6 +115,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
>  	exynos5250-arndale.dtb \
>  	exynos5250-smdk5250.dtb \
>  	exynos5250-snow.dtb \
> +	exynos5250-snow-rev5.dtb \
>  	exynos5250-spring.dtb \
>  	exynos5260-xyref5260.dtb \
>  	exynos5410-smdk5410.dtb \
> diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
> new file mode 100644
> index 000000000000..0a7f408824d8
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
> @@ -0,0 +1,684 @@
> +/*
> + * Google Snow board device tree source
> + *
> + * Copyright (c) 2012 Google, Inc
> + *
> + * 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/gpio/gpio.h>
> +#include <dt-bindings/clock/maxim,max77686.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/input/input.h>
> +#include "exynos5250.dtsi"
> +
> +/ {
> +	aliases {
> +		i2c104 = &i2c_104;
> +	};
> +
> +	memory {
> +		reg = <0x40000000 0x80000000>;
> +	};
> +
> +	chosen {
> +		bootargs = "console=tty1";
> +		stdout-path = "serial3:115200n8";
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&power_key_irq &lid_irq>;
> +
> +		power {
> +			label = "Power";
> +			gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
> +			gpio-key,wakeup;
> +		};
> +
> +		lid-switch {
> +			label = "Lid";
> +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
> +			linux,input-type = <5>; /* EV_SW */
> +			linux,code = <0>; /* SW_LID */
> +			debounce-interval = <1>;
> +			gpio-key,wakeup;
> +		};
> +	};
> +
> +	vbat: vbat-fixed-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vbat-supply";
> +		regulator-boot-on;
> +	};
> +
> +	i2c-arbitrator {
> +		compatible = "i2c-arb-gpio-challenge";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		i2c-parent = <&{/i2c at 12CA0000}>;
> +
> +		our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
> +		their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
> +		slew-delay-us = <10>;
> +		wait-retry-us = <3000>;
> +		wait-free-us = <50000>;
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&arb_our_claim &arb_their_claim>;
> +
> +		/* Use ID 104 as a hint that we're on physical bus 4 */
> +		i2c_104: i2c at 0 {
> +			reg = <0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			battery: sbs-battery at b {
> +				compatible = "sbs,sbs-battery";
> +				reg = <0xb>;
> +				sbs,poll-retry-count = <1>;
> +			};
> +
> +			cros_ec: embedded-controller {
> +				compatible = "google,cros-ec-i2c";
> +				reg = <0x1e>;
> +				interrupts = <6 IRQ_TYPE_NONE>;
> +				interrupt-parent = <&gpx1>;
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&ec_irq>;
> +				wakeup-source;
> +			};
> +
> +			power-regulator {
> +				compatible = "ti,tps65090";
> +				reg = <0x48>;
> +
> +				/*
> +				 * Config irq to disable internal pulls
> +				 * even though we run in polling mode.
> +				 */
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&tps65090_irq>;
> +
> +				vsys1-supply = <&vbat>;
> +				vsys2-supply = <&vbat>;
> +				vsys3-supply = <&vbat>;
> +				infet1-supply = <&vbat>;
> +				infet2-supply = <&vbat>;
> +				infet3-supply = <&vbat>;
> +				infet4-supply = <&vbat>;
> +				infet5-supply = <&vbat>;
> +				infet6-supply = <&vbat>;
> +				infet7-supply = <&vbat>;
> +				vsys-l1-supply = <&vbat>;
> +				vsys-l2-supply = <&vbat>;
> +
> +				regulators {
> +					dcdc1 {
> +						ti,enable-ext-control;
> +					};
> +					dcdc2 {
> +						ti,enable-ext-control;
> +					};
> +					dcdc3 {
> +						ti,enable-ext-control;
> +					};
> +					fet1: fet1 {
> +						regulator-name = "vcd_led";
> +						ti,overcurrent-wait = <3>;
> +					};
> +					tps65090_fet2: fet2 {
> +						regulator-name = "video_mid";
> +						regulator-always-on;
> +						ti,overcurrent-wait = <3>;
> +					};
> +					fet3 {
> +						regulator-name = "wwan_r";
> +						regulator-always-on;
> +						ti,overcurrent-wait = <3>;
> +					};
> +					fet4 {
> +						regulator-name = "sdcard";
> +						ti,overcurrent-wait = <3>;
> +					};
> +					fet5 {
> +						regulator-name = "camout";
> +						regulator-always-on;
> +						ti,overcurrent-wait = <3>;
> +					};
> +					fet6: fet6 {
> +						regulator-name = "lcd_vdd";
> +						ti,overcurrent-wait = <3>;
> +					};
> +					tps65090_fet7: fet7 {
> +						regulator-name = "video_mid_1a";
> +						regulator-always-on;
> +						ti,overcurrent-wait = <3>;
> +					};
> +					ldo1 {
> +					};
> +					ldo2 {
> +					};
> +				};
> +
> +				charger {
> +					compatible = "ti,tps65090-charger";
> +				};
> +			};
> +		};
> +	};
> +
> +	sound {
> +		samsung,i2s-controller = <&i2s0>;
> +	};
> +
> +	usb3_vbus_reg: regulator-usb3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "P5.0V_USB3CON";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		gpio = <&gpx2 7 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&usb3_vbus_en>;
> +		enable-active-high;
> +	};
> +
> +	fixed-rate-clocks {
> +		xxti {
> +			compatible = "samsung,clock-xxti";
> +			clock-frequency = <24000000>;
> +		};
> +	};
> +
> +	backlight: backlight {
> +		compatible = "pwm-backlight";
> +		pwms = <&pwm 0 1000000 0>;
> +		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
> +		default-brightness-level = <7>;
> +		enable-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
> +		power-supply = <&fet1>;
> +		pinctrl-0 = <&pwm0_out>;
> +		pinctrl-names = "default";
> +	};
> +
> +	panel: panel {
> +		compatible = "auo,b116xw03";
> +		power-supply = <&fet6>;
> +		backlight = <&backlight>;
> +
> +		port {
> +			panel_in: endpoint {
> +				remote-endpoint = <&bridge_out>;
> +			};
> +		};
> +	};
> +
> +	mmc3_pwrseq: mmc3_pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&gpx0 2 GPIO_ACTIVE_LOW>, /* WIFI_RSTn */
> +			      <&gpx0 1 GPIO_ACTIVE_LOW>; /* WIFI_EN */
> +		clocks = <&max77686 MAX77686_CLK_PMIC>;
> +		clock-names = "ext_clock";
> +	};
> +};
> +
> +&cpu0 {
> +	cpu0-supply = <&buck2_reg>;
> +};
> +
> +&dp {
> +	status = "okay";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&dp_hpd>;
> +	samsung,color-space = <0>;
> +	samsung,dynamic-range = <0>;
> +	samsung,ycbcr-coeff = <0>;
> +	samsung,color-depth = <1>;
> +	samsung,link-rate = <0x0a>;
> +	samsung,lane-count = <2>;
> +	samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
> +
> +	ports {
> +		port at 0 {
> +			dp_out: endpoint {
> +				remote-endpoint = <&bridge_in>;
> +			};
> +		};
> +	};
> +};
> +
> +&ehci {
> +	samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
> +};
> +
> +&fimd {
> +	status = "okay";
> +	samsung,invert-vclk;
> +};
> +
> +&hdmi {
> +	hpd-gpio = <&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>;
> +	vdd_osc-supply = <&ldo10_reg>;
> +	vdd_pll-supply = <&ldo8_reg>;
> +};
> +
> +&i2c_0 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <378000>;
> +
> +	max77686: max77686 at 09 {
> +		compatible = "maxim,max77686";
> +		interrupt-parent = <&gpx3>;
> +		interrupts = <2 IRQ_TYPE_NONE>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&max77686_irq>;
> +		wakeup-source;
> +		reg = <0x09>;
> +		#clock-cells = <1>;
> +
> +		voltage-regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "P1.0V_LDO_OUT1";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "P1.8V_LDO_OUT2";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo3_reg: LDO3 {
> +				regulator-name = "P1.8V_LDO_OUT3";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo7_reg: LDO7 {
> +				regulator-name = "P1.1V_LDO_OUT7";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo8_reg: LDO8 {
> +				regulator-name = "P1.0V_LDO_OUT8";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo10_reg: LDO10 {
> +				regulator-name = "P1.8V_LDO_OUT10";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo12_reg: LDO12 {
> +				regulator-name = "P3.0V_LDO_OUT12";
> +				regulator-min-microvolt = <3000000>;
> +				regulator-max-microvolt = <3000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo14_reg: LDO14 {
> +				regulator-name = "P1.8V_LDO_OUT14";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo15_reg: LDO15 {
> +				regulator-name = "P1.0V_LDO_OUT15";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo16_reg: LDO16 {
> +				regulator-name = "P1.8V_LDO_OUT16";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1300000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <850000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck3_reg: BUCK3 {
> +				regulator-name = "vdd_int";
> +				regulator-min-microvolt = <900000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck4_reg: BUCK4 {
> +				regulator-name = "vdd_g3d";
> +				regulator-min-microvolt = <850000>;
> +				regulator-max-microvolt = <1300000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck5_reg: BUCK5 {
> +				regulator-name = "P1.8V_BUCK_OUT5";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck6_reg: BUCK6 {
> +				regulator-name = "P1.35V_BUCK_OUT6";
> +				regulator-min-microvolt = <1350000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +			};
> +
> +			buck7_reg: BUCK7 {
> +				regulator-name = "P2.0V_BUCK_OUT7";
> +				regulator-min-microvolt = <2000000>;
> +				regulator-max-microvolt = <2000000>;
> +				regulator-always-on;
> +			};
> +
> +			buck8_reg: BUCK8 {
> +				regulator-name = "P2.85V_BUCK_OUT8";
> +				regulator-min-microvolt = <2850000>;
> +				regulator-max-microvolt = <2850000>;
> +				regulator-always-on;
> +			};
> +		};
> +	};
> +};
> +
> +&i2c_1 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <378000>;
> +
> +	trackpad {
> +		reg = <0x67>;
> +		compatible = "cypress,cyapa";
> +		interrupts = <2 IRQ_TYPE_NONE>;
> +		interrupt-parent = <&gpx1>;
> +		wakeup-source;
> +	};
> +};
> +
> +/*
> + * Disabled pullups since external part has its own pullups and
> + * double-pulling gets us out of spec in some cases.
> + */
> +&i2c2_bus {
> +	samsung,pin-pud = <0>;
> +};
> +
> +&i2c_2 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <66000>;
> +
> +	hdmiddc at 50 {
> +		compatible = "samsung,exynos4210-hdmiddc";
> +		reg = <0x50>;
> +	};
> +};
> +
> +&i2c_3 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <66000>;
> +};
> +
> +&i2c_4 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <66000>;
> +};
> +
> +&i2c_5 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <66000>;
> +};
> +
> +&i2c_7 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <66000>;
> +
> +	ptn3460: lvds-bridge at 20 {
> +		compatible = "nxp,ptn3460";
> +		reg = <0x20>;
> +		powerdown-gpios = <&gpy2 5 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpx1 5 GPIO_ACTIVE_HIGH>;
> +		edid-emulation = <5>;
> +
> +		ports {
> +			port at 0 {
> +				bridge_out: endpoint {
> +					remote-endpoint = <&panel_in>;
> +				};
> +			};
> +
> +			port at 1 {
> +				bridge_in: endpoint {
> +					remote-endpoint = <&dp_out>;
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +&i2c_8 {
> +	status = "okay";
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <378000>;
> +
> +	hdmiphy: hdmiphy at 38 {
> +		compatible = "samsung,exynos4212-hdmiphy";
> +		reg = <0x38>;
> +	};
> +};
> +
> +&i2s0 {
> +	status = "okay";
> +};
> +
> +&mmc_0 {
> +	status = "okay";
> +	num-slots = <1>;
> +	broken-cd;
> +	card-detect-delay = <200>;
> +	samsung,dw-mshc-ciu-div = <3>;
> +	samsung,dw-mshc-sdr-timing = <2 3>;
> +	samsung,dw-mshc-ddr-timing = <1 2>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
> +	bus-width = <8>;
> +	cap-mmc-highspeed;
> +};
> +
> +&mmc_2 {
> +	status = "okay";
> +	num-slots = <1>;
> +	card-detect-delay = <200>;
> +	samsung,dw-mshc-ciu-div = <3>;
> +	samsung,dw-mshc-sdr-timing = <2 3>;
> +	samsung,dw-mshc-ddr-timing = <1 2>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
> +	bus-width = <4>;
> +	wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>;
> +	cap-sd-highspeed;
> +};
> +
> +/*
> + * On Snow we've got SIP WiFi and so can keep drive strengths low to
> + * reduce EMI.
> + */
> +&mmc_3 {
> +	status = "okay";
> +	num-slots = <1>;
> +	broken-cd;
> +	cap-sdio-irq;
> +	keep-power-in-suspend;
> +	card-detect-delay = <200>;
> +	samsung,dw-mshc-ciu-div = <3>;
> +	samsung,dw-mshc-sdr-timing = <2 3>;
> +	samsung,dw-mshc-ddr-timing = <1 2>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4 &wifi_en &wifi_rst>;
> +	bus-width = <4>;
> +	cap-sd-highspeed;
> +	mmc-pwrseq = <&mmc3_pwrseq>;
> +};
> +
> +&pinctrl_0 {
> +	wifi_en: wifi-en {
> +		samsung,pins = "gpx0-1";
> +		samsung,pin-function = <1>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	wifi_rst: wifi-rst {
> +		samsung,pins = "gpx0-2";
> +		samsung,pin-function = <1>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	power_key_irq: power-key-irq {
> +		samsung,pins = "gpx1-3";
> +		samsung,pin-function = <0xf>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	ec_irq: ec-irq {
> +		samsung,pins = "gpx1-6";
> +		samsung,pin-function = <0>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	tps65090_irq: tps65090-irq {
> +		samsung,pins = "gpx2-6";
> +		samsung,pin-function = <0>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	usb3_vbus_en: usb3-vbus-en {
> +		samsung,pins = "gpx2-7";
> +		samsung,pin-function = <1>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	max77686_irq: max77686-irq {
> +		samsung,pins = "gpx3-2";
> +		samsung,pin-function = <0>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	lid_irq: lid-irq {
> +		samsung,pins = "gpx3-5";
> +		samsung,pin-function = <0xf>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	hdmi_hpd_irq: hdmi-hpd-irq {
> +		samsung,pins = "gpx3-7";
> +		samsung,pin-function = <0>;
> +		samsung,pin-pud = <1>;
> +		samsung,pin-drv = <0>;
> +	};
> +};
> +
> +&pinctrl_1 {
> +	arb_their_claim: arb-their-claim {
> +		samsung,pins = "gpe0-4";
> +		samsung,pin-function = <0>;
> +		samsung,pin-pud = <3>;
> +		samsung,pin-drv = <0>;
> +	};
> +
> +	arb_our_claim: arb-our-claim {
> +		samsung,pins = "gpf0-3";
> +		samsung,pin-function = <1>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +};
> +
> +&rtc {
> +	status = "okay";
> +	clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
> +	clock-names = "rtc", "rtc_src";
> +};
> +
> +&sd3_bus4 {
> +	samsung,pin-drv = <0>;
> +};
> +
> +&sd3_clk {
> +	samsung,pin-drv = <0>;
> +};
> +
> +&sd3_cmd {
> +	samsung,pin-pud = <3>;
> +	samsung,pin-drv = <0>;
> +};
> +
> +&spi_1 {
> +	status = "okay";
> +	samsung,spi-src-clk = <0>;
> +	num-cs = <1>;
> +	cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>;
> +};
> +
> +&usbdrd_dwc3 {
> +	dr_mode = "host";
> +};
> +
> +&usbdrd_phy {
> +	vbus-supply = <&usb3_vbus_reg>;
> +};
> +
> +#include "cros-ec-keyboard.dtsi"
> diff --git a/arch/arm/boot/dts/exynos5250-snow-rev5.dts b/arch/arm/boot/dts/exynos5250-snow-rev5.dts
> new file mode 100644
> index 000000000000..ce5374547c3f
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos5250-snow-rev5.dts
> @@ -0,0 +1,47 @@
> +/*
> + * Google Snow Rev 5+ board device tree source
> + *
> + * Copyright (c) 2012 Google, Inc
> + * Copyright (c) 2015 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 "exynos5250-snow-common.dtsi"
> +
> +/ {
> +	model = "Google Snow Rev 5+";
> +	compatible = "google,snow-rev5", "samsung,exynos5250", "samsung,exynos5";
> +
> +	sound {
> +		compatible = "google,snow-audio-max98090";
> +
> +		samsung,model = "Snow-I2S-MAX98090";
> +		samsung,audio-codec = <&max98090>;
> +	};
> +};
> +
> +&i2c_7 {
> +	max98090: codec at 10 {
> +		compatible = "maxim,max98090";
> +		reg = <0x10>;
> +		interrupts = <4 IRQ_TYPE_NONE>;
> +		interrupt-parent = <&gpx0>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&max98090_irq>;
> +	};
> +};
> +
> +&pinctrl_0 {
> +	max98090_irq: max98090-irq {
> +		samsung,pins = "gpx0-4";
> +		samsung,pin-function = <0>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +};
> +
> diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts
> index 0720caab5511..99c4d2a9fcf9 100644
> --- a/arch/arm/boot/dts/exynos5250-snow.dts
> +++ b/arch/arm/boot/dts/exynos5250-snow.dts
> @@ -9,506 +9,21 @@
>   */
>  
>  /dts-v1/;
> -#include <dt-bindings/gpio/gpio.h>
> -#include <dt-bindings/clock/maxim,max77686.h>
> -#include <dt-bindings/interrupt-controller/irq.h>
> -#include <dt-bindings/input/input.h>
> -#include "exynos5250.dtsi"
> +#include "exynos5250-snow-common.dtsi"
>  
>  / {
>  	model = "Google Snow";
>  	compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5";
>  
> -	aliases {
> -		i2c104 = &i2c_104;
> -	};
> -
> -	memory {
> -		reg = <0x40000000 0x80000000>;
> -	};
> -
> -	chosen {
> -		bootargs = "console=tty1";
> -		stdout-path = "serial3:115200n8";
> -	};
> -
> -	gpio-keys {
> -		compatible = "gpio-keys";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&power_key_irq &lid_irq>;
> -
> -		power {
> -			label = "Power";
> -			gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
> -			linux,code = <KEY_POWER>;
> -			gpio-key,wakeup;
> -		};
> -
> -		lid-switch {
> -			label = "Lid";
> -			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
> -			linux,input-type = <5>; /* EV_SW */
> -			linux,code = <0>; /* SW_LID */
> -			debounce-interval = <1>;
> -			gpio-key,wakeup;
> -		};
> -	};
> -
> -	vbat: vbat-fixed-regulator {
> -		compatible = "regulator-fixed";
> -		regulator-name = "vbat-supply";
> -		regulator-boot-on;
> -	};
> -
> -	i2c-arbitrator {
> -		compatible = "i2c-arb-gpio-challenge";
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		i2c-parent = <&{/i2c at 12CA0000}>;
> -
> -		our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
> -		their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
> -		slew-delay-us = <10>;
> -		wait-retry-us = <3000>;
> -		wait-free-us = <50000>;
> -
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&arb_our_claim &arb_their_claim>;
> -
> -		/* Use ID 104 as a hint that we're on physical bus 4 */
> -		i2c_104: i2c at 0 {
> -			reg = <0>;
> -			#address-cells = <1>;
> -			#size-cells = <0>;
> -
> -			battery: sbs-battery at b {
> -				compatible = "sbs,sbs-battery";
> -				reg = <0xb>;
> -				sbs,poll-retry-count = <1>;
> -			};
> -
> -			cros_ec: embedded-controller {
> -				compatible = "google,cros-ec-i2c";
> -				reg = <0x1e>;
> -				interrupts = <6 IRQ_TYPE_NONE>;
> -				interrupt-parent = <&gpx1>;
> -				pinctrl-names = "default";
> -				pinctrl-0 = <&ec_irq>;
> -				wakeup-source;
> -			};
> -
> -			power-regulator {
> -				compatible = "ti,tps65090";
> -				reg = <0x48>;
> -
> -				/*
> -				 * Config irq to disable internal pulls
> -				 * even though we run in polling mode.
> -				 */
> -				pinctrl-names = "default";
> -				pinctrl-0 = <&tps65090_irq>;
> -
> -				vsys1-supply = <&vbat>;
> -				vsys2-supply = <&vbat>;
> -				vsys3-supply = <&vbat>;
> -				infet1-supply = <&vbat>;
> -				infet2-supply = <&vbat>;
> -				infet3-supply = <&vbat>;
> -				infet4-supply = <&vbat>;
> -				infet5-supply = <&vbat>;
> -				infet6-supply = <&vbat>;
> -				infet7-supply = <&vbat>;
> -				vsys-l1-supply = <&vbat>;
> -				vsys-l2-supply = <&vbat>;
> -
> -				regulators {
> -					dcdc1 {
> -						ti,enable-ext-control;
> -					};
> -					dcdc2 {
> -						ti,enable-ext-control;
> -					};
> -					dcdc3 {
> -						ti,enable-ext-control;
> -					};
> -					fet1: fet1 {
> -						regulator-name = "vcd_led";
> -						ti,overcurrent-wait = <3>;
> -					};
> -					tps65090_fet2: fet2 {
> -						regulator-name = "video_mid";
> -						regulator-always-on;
> -						ti,overcurrent-wait = <3>;
> -					};
> -					fet3 {
> -						regulator-name = "wwan_r";
> -						regulator-always-on;
> -						ti,overcurrent-wait = <3>;
> -					};
> -					fet4 {
> -						regulator-name = "sdcard";
> -						ti,overcurrent-wait = <3>;
> -					};
> -					fet5 {
> -						regulator-name = "camout";
> -						regulator-always-on;
> -						ti,overcurrent-wait = <3>;
> -					};
> -					fet6: fet6 {
> -						regulator-name = "lcd_vdd";
> -						ti,overcurrent-wait = <3>;
> -					};
> -					tps65090_fet7: fet7 {
> -						regulator-name = "video_mid_1a";
> -						regulator-always-on;
> -						ti,overcurrent-wait = <3>;
> -					};
> -					ldo1 {
> -					};
> -					ldo2 {
> -					};
> -				};
> -
> -				charger {
> -					compatible = "ti,tps65090-charger";
> -				};
> -			};
> -		};
> -	};
> -
>  	sound {
>  		compatible = "google,snow-audio-max98095";
>  
>  		samsung,model = "Snow-I2S-MAX98095";
> -		samsung,i2s-controller = <&i2s0>;
>  		samsung,audio-codec = <&max98095>;
>  	};
> -
> -	usb3_vbus_reg: regulator-usb3 {
> -		compatible = "regulator-fixed";
> -		regulator-name = "P5.0V_USB3CON";
> -		regulator-min-microvolt = <5000000>;
> -		regulator-max-microvolt = <5000000>;
> -		gpio = <&gpx2 7 GPIO_ACTIVE_HIGH>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&usb3_vbus_en>;
> -		enable-active-high;
> -	};
> -
> -	fixed-rate-clocks {
> -		xxti {
> -			compatible = "samsung,clock-xxti";
> -			clock-frequency = <24000000>;
> -		};
> -	};
> -
> -	backlight: backlight {
> -		compatible = "pwm-backlight";
> -		pwms = <&pwm 0 1000000 0>;
> -		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
> -		default-brightness-level = <7>;
> -		enable-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
> -		power-supply = <&fet1>;
> -		pinctrl-0 = <&pwm0_out>;
> -		pinctrl-names = "default";
> -	};
> -
> -	panel: panel {
> -		compatible = "auo,b116xw03";
> -		power-supply = <&fet6>;
> -		backlight = <&backlight>;
> -
> -		port {
> -			panel_in: endpoint {
> -				remote-endpoint = <&bridge_out>;
> -			};
> -		};
> -	};
> -
> -	mmc3_pwrseq: mmc3_pwrseq {
> -		compatible = "mmc-pwrseq-simple";
> -		reset-gpios = <&gpx0 2 GPIO_ACTIVE_LOW>, /* WIFI_RSTn */
> -			      <&gpx0 1 GPIO_ACTIVE_LOW>; /* WIFI_EN */
> -		clocks = <&max77686 MAX77686_CLK_PMIC>;
> -		clock-names = "ext_clock";
> -	};
> -};
> -
> -&cpu0 {
> -	cpu0-supply = <&buck2_reg>;
> -};
> -
> -&dp {
> -	status = "okay";
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&dp_hpd>;
> -	samsung,color-space = <0>;
> -	samsung,dynamic-range = <0>;
> -	samsung,ycbcr-coeff = <0>;
> -	samsung,color-depth = <1>;
> -	samsung,link-rate = <0x0a>;
> -	samsung,lane-count = <2>;
> -	samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
> -
> -	ports {
> -		port at 0 {
> -			dp_out: endpoint {
> -				remote-endpoint = <&bridge_in>;
> -			};
> -		};
> -	};
> -};
> -
> -&ehci {
> -	samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
> -};
> -
> -&fimd {
> -	status = "okay";
> -	samsung,invert-vclk;
> -};
> -
> -&hdmi {
> -	hpd-gpio = <&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>;
> -	vdd_osc-supply = <&ldo10_reg>;
> -	vdd_pll-supply = <&ldo8_reg>;
> -};
> -
> -&i2c_0 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <378000>;
> -
> -	max77686: max77686 at 09 {
> -		compatible = "maxim,max77686";
> -		interrupt-parent = <&gpx3>;
> -		interrupts = <2 IRQ_TYPE_NONE>;
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&max77686_irq>;
> -		wakeup-source;
> -		reg = <0x09>;
> -		#clock-cells = <1>;
> -
> -		voltage-regulators {
> -			ldo1_reg: LDO1 {
> -				regulator-name = "P1.0V_LDO_OUT1";
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1000000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo2_reg: LDO2 {
> -				regulator-name = "P1.8V_LDO_OUT2";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo3_reg: LDO3 {
> -				regulator-name = "P1.8V_LDO_OUT3";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo7_reg: LDO7 {
> -				regulator-name = "P1.1V_LDO_OUT7";
> -				regulator-min-microvolt = <1100000>;
> -				regulator-max-microvolt = <1100000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo8_reg: LDO8 {
> -				regulator-name = "P1.0V_LDO_OUT8";
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1000000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo10_reg: LDO10 {
> -				regulator-name = "P1.8V_LDO_OUT10";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo12_reg: LDO12 {
> -				regulator-name = "P3.0V_LDO_OUT12";
> -				regulator-min-microvolt = <3000000>;
> -				regulator-max-microvolt = <3000000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo14_reg: LDO14 {
> -				regulator-name = "P1.8V_LDO_OUT14";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo15_reg: LDO15 {
> -				regulator-name = "P1.0V_LDO_OUT15";
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1000000>;
> -				regulator-always-on;
> -			};
> -
> -			ldo16_reg: LDO16 {
> -				regulator-name = "P1.8V_LDO_OUT16";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -			};
> -
> -			buck1_reg: BUCK1 {
> -				regulator-name = "vdd_mif";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1300000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck2_reg: BUCK2 {
> -				regulator-name = "vdd_arm";
> -				regulator-min-microvolt = <850000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck3_reg: BUCK3 {
> -				regulator-name = "vdd_int";
> -				regulator-min-microvolt = <900000>;
> -				regulator-max-microvolt = <1200000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck4_reg: BUCK4 {
> -				regulator-name = "vdd_g3d";
> -				regulator-min-microvolt = <850000>;
> -				regulator-max-microvolt = <1300000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck5_reg: BUCK5 {
> -				regulator-name = "P1.8V_BUCK_OUT5";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck6_reg: BUCK6 {
> -				regulator-name = "P1.35V_BUCK_OUT6";
> -				regulator-min-microvolt = <1350000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -			};
> -
> -			buck7_reg: BUCK7 {
> -				regulator-name = "P2.0V_BUCK_OUT7";
> -				regulator-min-microvolt = <2000000>;
> -				regulator-max-microvolt = <2000000>;
> -				regulator-always-on;
> -			};
> -
> -			buck8_reg: BUCK8 {
> -				regulator-name = "P2.85V_BUCK_OUT8";
> -				regulator-min-microvolt = <2850000>;
> -				regulator-max-microvolt = <2850000>;
> -				regulator-always-on;
> -			};
> -		};
> -	};
> -};
> -
> -&i2c_1 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <378000>;
> -
> -	trackpad {
> -		reg = <0x67>;
> -		compatible = "cypress,cyapa";
> -		interrupts = <2 IRQ_TYPE_NONE>;
> -		interrupt-parent = <&gpx1>;
> -		wakeup-source;
> -	};
> -};
> -
> -/*
> - * Disabled pullups since external part has its own pullups and
> - * double-pulling gets us out of spec in some cases.
> - */
> -&i2c2_bus {
> -	samsung,pin-pud = <0>;
> -};
> -
> -&i2c_2 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <66000>;
> -
> -	hdmiddc at 50 {
> -		compatible = "samsung,exynos4210-hdmiddc";
> -		reg = <0x50>;
> -	};
> -};
> -
> -&i2c_3 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <66000>;
> -};
> -
> -&i2c_4 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <66000>;
> -};
> -
> -&i2c_5 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <66000>;
>  };
>  
>  &i2c_7 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <66000>;
> -
> -	ptn3460: lvds-bridge at 20 {
> -		compatible = "nxp,ptn3460";
> -		reg = <0x20>;
> -		powerdown-gpios = <&gpy2 5 GPIO_ACTIVE_HIGH>;
> -		reset-gpios = <&gpx1 5 GPIO_ACTIVE_HIGH>;
> -		edid-emulation = <5>;
> -
> -		ports {
> -			port at 0 {
> -				bridge_out: endpoint {
> -					remote-endpoint = <&panel_in>;
> -				};
> -			};
> -
> -			port at 1 {
> -				bridge_in: endpoint {
> -					remote-endpoint = <&dp_out>;
> -				};
> -			};
> -		};
> -	};
> -
>  	max98095: codec at 11 {
>  		compatible = "maxim,max98095";
>  		reg = <0x11>;
> @@ -517,190 +32,11 @@
>  	};
>  };
>  
> -&i2c_8 {
> -	status = "okay";
> -	samsung,i2c-sda-delay = <100>;
> -	samsung,i2c-max-bus-freq = <378000>;
> -
> -	hdmiphy: hdmiphy at 38 {
> -		compatible = "samsung,exynos4212-hdmiphy";
> -		reg = <0x38>;
> -	};
> -};
> -
> -&i2s0 {
> -	status = "okay";
> -};
> -
> -&mmc_0 {
> -	status = "okay";
> -	num-slots = <1>;
> -	broken-cd;
> -	card-detect-delay = <200>;
> -	samsung,dw-mshc-ciu-div = <3>;
> -	samsung,dw-mshc-sdr-timing = <2 3>;
> -	samsung,dw-mshc-ddr-timing = <1 2>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
> -	bus-width = <8>;
> -	cap-mmc-highspeed;
> -};
> -
> -&mmc_2 {
> -	status = "okay";
> -	num-slots = <1>;
> -	card-detect-delay = <200>;
> -	samsung,dw-mshc-ciu-div = <3>;
> -	samsung,dw-mshc-sdr-timing = <2 3>;
> -	samsung,dw-mshc-ddr-timing = <1 2>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
> -	bus-width = <4>;
> -	wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>;
> -	cap-sd-highspeed;
> -};
> -
> -/*
> - * On Snow we've got SIP WiFi and so can keep drive strengths low to
> - * reduce EMI.
> - */
> -&mmc_3 {
> -	status = "okay";
> -	num-slots = <1>;
> -	broken-cd;
> -	cap-sdio-irq;
> -	keep-power-in-suspend;
> -	card-detect-delay = <200>;
> -	samsung,dw-mshc-ciu-div = <3>;
> -	samsung,dw-mshc-sdr-timing = <2 3>;
> -	samsung,dw-mshc-ddr-timing = <1 2>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4 &wifi_en &wifi_rst>;
> -	bus-width = <4>;
> -	cap-sd-highspeed;
> -	mmc-pwrseq = <&mmc3_pwrseq>;
> -};
> -
>  &pinctrl_0 {
> -	wifi_en: wifi-en {
> -		samsung,pins = "gpx0-1";
> -		samsung,pin-function = <1>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	wifi_rst: wifi-rst {
> -		samsung,pins = "gpx0-2";
> -		samsung,pin-function = <1>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	power_key_irq: power-key-irq {
> -		samsung,pins = "gpx1-3";
> -		samsung,pin-function = <0xf>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	ec_irq: ec-irq {
> -		samsung,pins = "gpx1-6";
> -		samsung,pin-function = <0>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
>  	max98095_en: max98095-en {
>  		samsung,pins = "gpx1-7";
>  		samsung,pin-function = <0>;
>  		samsung,pin-pud = <3>;
>  		samsung,pin-drv = <0>;
>  	};
> -
> -	tps65090_irq: tps65090-irq {
> -		samsung,pins = "gpx2-6";
> -		samsung,pin-function = <0>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	usb3_vbus_en: usb3-vbus-en {
> -		samsung,pins = "gpx2-7";
> -		samsung,pin-function = <1>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	max77686_irq: max77686-irq {
> -		samsung,pins = "gpx3-2";
> -		samsung,pin-function = <0>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	lid_irq: lid-irq {
> -		samsung,pins = "gpx3-5";
> -		samsung,pin-function = <0xf>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	hdmi_hpd_irq: hdmi-hpd-irq {
> -		samsung,pins = "gpx3-7";
> -		samsung,pin-function = <0>;
> -		samsung,pin-pud = <1>;
> -		samsung,pin-drv = <0>;
> -	};
>  };
> -
> -&pinctrl_1 {
> -	arb_their_claim: arb-their-claim {
> -		samsung,pins = "gpe0-4";
> -		samsung,pin-function = <0>;
> -		samsung,pin-pud = <3>;
> -		samsung,pin-drv = <0>;
> -	};
> -
> -	arb_our_claim: arb-our-claim {
> -		samsung,pins = "gpf0-3";
> -		samsung,pin-function = <1>;
> -		samsung,pin-pud = <0>;
> -		samsung,pin-drv = <0>;
> -	};
> -};
> -
> -&rtc {
> -	status = "okay";
> -	clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
> -	clock-names = "rtc", "rtc_src";
> -};
> -
> -&sd3_bus4 {
> -	samsung,pin-drv = <0>;
> -};
> -
> -&sd3_clk {
> -	samsung,pin-drv = <0>;
> -};
> -
> -&sd3_cmd {
> -	samsung,pin-pud = <3>;
> -	samsung,pin-drv = <0>;
> -};
> -
> -&spi_1 {
> -	status = "okay";
> -	samsung,spi-src-clk = <0>;
> -	num-cs = <1>;
> -	cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>;
> -};
> -
> -&usbdrd_dwc3 {
> -	dr_mode = "host";
> -};
> -
> -&usbdrd_phy {
> -	vbus-supply = <&usb3_vbus_reg>;
> -};
> -
> -#include "cros-ec-keyboard.dtsi"



More information about the linux-arm-kernel mailing list