/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /include/ "dsi-panel-toshiba-720p-video.dtsi" /include/ "msm8974-camera-sensor-mtp.dtsi" /include/ "msm8974-leds.dtsi" &soc { serial@f991e000 { status = "ok"; }; qcom,mdss_dsi_toshiba_720p_video { status = "ok"; qcom,cont-splash-enabled; }; qcom,hdmi_tx@fd922100 { status = "disabled"; }; i2c@f9924000 { atmel_mxt_ts@4a { compatible = "atmel,mxt-ts"; reg = <0x4a>; interrupt-parent = <&msmgpio>; interrupts = <61 0x2>; vdd_ana-supply = <&pm8941_l18>; vcc_i2c-supply = <&pm8941_lvs1>; atmel,reset-gpio = <&msmgpio 60 0x00>; atmel,irq-gpio = <&msmgpio 61 0x00>; atmel,panel-coords = <0 0 760 1424>; atmel,display-coords = <0 0 720 1280>; atmel,i2c-pull-up; atmel,no-force-update; atmel,cfg_1 { atmel,family-id = <0x82>; atmel,variant-id = <0x19>; atmel,version = <0x10>; atmel,build = <0xaa>; atmel,config = [ /* Object 6, Instance = 0 */ 00 00 00 00 00 00 /* Object 38, Instance = 0 */ 15 01 00 03 0A 0C 00 00 /* Object 7, Instance = 0 */ 20 08 32 03 /* Object 8, Instance = 0 */ 0F 00 0A 0A 00 00 0A 0A 00 00 /* Object 9, Instance = 0 */ 83 00 00 18 0E 00 70 46 02 01 00 0A 03 31 04 05 0A 0A 90 05 F8 02 05 F1 F1 0F 00 00 08 2D 12 06 00 00 00 01 /* Object 15, Instance = 0 */ 00 00 00 00 00 00 00 00 00 00 00 /* Object 18, Instance = 0 */ 00 00 /* Object 19, Instance = 0 */ 00 00 00 00 00 00 /* Object 23, Instance = 0 */ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /* Object 25, Instance = 0 */ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /* Object 40, Instance = 0 */ 00 00 00 00 00 /* Object 42, Instance = 0 */ 33 1E 19 10 80 00 00 00 FF 00 /* Object 46, Instance = 0 */ 00 00 10 10 00 00 03 00 00 01 /* Object 47, Instance = 0 */ 08 0A 28 0A 02 0A 00 8C 00 20 00 00 00 /* Object 55, Instance = 0 */ 00 00 00 00 00 00 /* Object 56, Instance = 0 */ 00 00 00 18 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /* Object 57, Instance = 0 */ 00 00 00 /* Object 61, Instance = 0 */ 00 00 00 00 00 /* Object 62, Instance = 0 */ 01 2A 00 16 00 00 00 00 0B 01 02 03 04 08 00 00 08 10 18 05 00 0A 05 05 50 14 19 34 1A 7F 00 00 00 00 00 00 00 00 00 30 05 02 00 01 00 05 00 00 00 00 00 00 00 00 ]; }; }; }; gen-vkeys { compatible = "qcom,gen-vkeys"; label = "atmel_mxt_ts"; qcom,disp-maxx = <720>; qcom,disp-maxy = <1280>; qcom,panel-maxx = <760>; qcom,panel-maxy = <1424>; qcom,key-codes = <158 139 102 217>; }; i2c@f9967000 { isa1200@48 { status = "okay"; reg = <0x48>; vcc_i2c-supply = <&pm8941_s3>; compatible = "imagis,isa1200"; label = "vibrator"; imagis,chip-en; imagis,need-pwm-clk; imagis,ext-clk-en; imagis,hap-en-gpio = <&msmgpio 86 0x00>; imagis,max-timeout = <15000>; imagis,pwm-div = <256>; imagis,mode-ctrl = <2>; imagis,regulator { regulator-name = "vcc_i2c"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-max-microamp = <9360>; }; }; }; gpio_keys { compatible = "gpio-keys"; input-name = "gpio-keys"; camera_snapshot { label = "camera_snapshot"; gpios = <&pm8941_gpios 3 0x1>; linux,input-type = <1>; linux,code = <0x2fe>; gpio-key,wakeup; debounce-interval = <15>; }; camera_focus { label = "camera_focus"; gpios = <&pm8941_gpios 4 0x1>; linux,input-type = <1>; linux,code = <0x210>; gpio-key,wakeup; debounce-interval = <15>; }; vol_up { label = "volume_up"; gpios = <&pm8941_gpios 5 0x1>; linux,input-type = <1>; linux,code = <115>; gpio-key,wakeup; debounce-interval = <15>; }; }; spi@f9923000 { ethernet-switch@2 { compatible = "micrel,ks8851"; reg = <2>; interrupt-parent = <&msmgpio>; interrupts = <94 0>; spi-max-frequency = <4800000>; rst-gpio = <&pm8941_mpps 6 0>; vdd-io-supply = <&spi_eth_vreg>; vdd-phy-supply = <&spi_eth_vreg>; }; }; sound { qcom,model = "msm8974-taiko-mtp-snd-card"; qcom,cdc-micbias2-headset-only; }; }; &spmi_bus { qcom,pm8941@1 { qcom,leds@d800 { status = "okay"; qcom,wled_0 { label = "wled"; linux,name = "wled:backlight"; linux,default-trigger = "bkl-trigger"; qcom,cs-out-en; qcom,op-fdbck = <1>; qcom,default-state = "on"; qcom,max-current = <25>; qcom,ctrl-delay-us = <0>; qcom,boost-curr-lim = <3>; qcom,cp-sel = <0>; qcom,switch-freq = <2>; qcom,ovp-val = <2>; qcom,num-strings = <1>; qcom,id = <0>; }; }; qcom,leds@d900 { status = "disabled"; }; qcom,leds@da00 { status = "disabled"; }; qcom,leds@db00 { status = "disabled"; }; qcom,leds@dc00 { status = "disabled"; }; qcom,leds@dd00 { status = "disabled"; }; qcom,leds@de00 { status = "disabled"; }; qcom,leds@df00 { status = "disabled"; }; qcom,leds@e000 { status = "disabled"; }; qcom,leds@e100 { status = "disabled"; }; }; }; &sdcc1 { status = "disabled"; }; &sdcc2 { #address-cells = <0>; interrupt-parent = <&sdcc2>; interrupts = <0 1 2>; #interrupt-cells = <1>; interrupt-map-mask = <0xffffffff>; interrupt-map = <0 &intc 0 125 0 1 &intc 0 220 0 2 &msmgpio 62 0x3>; interrupt-names = "core_irq", "bam_irq", "status_irq"; cd-gpios = <&msmgpio 62 0x1>; status = "disabled"; }; &sdhc_1 { vdd-supply = <&pm8941_l20>; vdd-io-supply = <&pm8941_s3>; qcom,vdd-always-on; qcom,vdd-lpm-sup; qcom,vdd-voltage-level = <2950000 2950000>; qcom,vdd-current-level = <800 500000>; qcom,vdd-io-always-on; qcom,vdd-io-voltage-level = <1800000 1800000>; qcom,vdd-io-current-level = <250 154000>; qcom,pad-pull-on = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */ qcom,pad-pull-off = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */ qcom,pad-drv-on = <0x4 0x4 0x4>; /* 10mA, 10mA, 10mA */ qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */ qcom,nonremovable; status = "ok"; }; &sdhc_2 { #address-cells = <0>; interrupt-parent = <&sdhc_2>; interrupts = <0 1 2>; #interrupt-cells = <1>; interrupt-map-mask = <0xffffffff>; interrupt-map = <0 &intc 0 125 0 1 &intc 0 221 0 2 &msmgpio 62 0x3>; interrupt-names = "hc_irq", "pwr_irq", "status_irq"; cd-gpios = <&msmgpio 62 0x1>; vdd-supply = <&pm8941_l21>; vdd-io-supply = <&pm8941_l13>; qcom,vdd-voltage-level = <2950000 2950000>; qcom,vdd-current-level = <9000 800000>; qcom,vdd-io-voltage-level = <1800000 2950000>; qcom,vdd-io-current-level = <6 22000>; qcom,pad-pull-on = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */ qcom,pad-pull-off = <0x0 0x3 0x3>; /* no-pull, pull-up, pull-up */ qcom,pad-drv-on = <0x4 0x4 0x4>; /* 10mA, 10mA, 10mA */ qcom,pad-drv-off = <0x0 0x0 0x0>; /* 2mA, 2mA, 2mA */ status = "ok"; }; /* Drive strength recommendations for clock line from hardware team is 10 mA. * But since the driver has been been using the below values from the start * without any problems, continue to use those. */ &sdcc1 { qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */ }; &sdcc2 { qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */ }; &sdhc_1 { qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */ }; &sdhc_2 { qcom,pad-drv-on = <0x7 0x4 0x4>; /* 16mA, 10mA, 10mA */ }; &usb_otg { qcom,hsusb-otg-otg-control = <2>; }; &uart7 { status = "ok"; }; &usb3 { qcom,otg-capability; }; &pm8941_bms { status = "ok"; }; &pm8941_chg { status = "ok"; qcom,charging-disabled; qcom,chgr@1000 { status = "ok"; }; qcom,buck@1100 { status = "ok"; }; qcom,bat-if@1200 { status = "ok"; }; qcom,usb-chgpth@1300 { status = "ok"; }; qcom,dc-chgpth@1400 { status = "ok"; }; qcom,boost@1500 { status = "ok"; }; qcom,chg-misc@1600 { status = "ok"; }; }; &pm8941_gpios { gpio@c000 { /* GPIO 1 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,master-en = <1>; }; gpio@c100 { /* GPIO 2 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,master-en = <1>; }; gpio@c200 { /* GPIO 3 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,vin-sel = <2>; qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */ qcom,master-en = <1>; }; gpio@c300 { /* GPIO 4 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */ qcom,master-en = <1>; }; gpio@c400 { /* GPIO 5 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */ qcom,master-en = <1>; }; gpio@c500 { /* GPIO 6 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,master-en = <1>; }; gpio@c600 { /* GPIO 7 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,master-en = <1>; }; gpio@c700 { /* GPIO 8 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <0>; /* QPNP_PIN_PULL_UP_30 */ qcom,master-en = <1>; }; gpio@c800 { /* GPIO 9 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@c900 { /* GPIO 10 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@ca00 { /* GPIO 11 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@cb00 { /* GPIO 12 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@cc00 { /* GPIO 13 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@cd00 { /* GPIO 14 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@ce00 { /* GPIO 15 */ qcom,mode = <1>; qcom,output-type = <0>; qcom,pull = <5>; qcom,vin-sel = <2>; qcom,out-strength = <1>; qcom,src-sel = <2>; qcom,master-en = <1>; }; gpio@cf00 { /* GPIO 16 */ qcom,mode = <1>; qcom,output-type = <0>; qcom,pull = <5>; qcom,vin-sel = <2>; qcom,out-strength = <3>; qcom,src-sel = <3>; /* QPNP_PIN_SEL_FUNC_2 */ qcom,master-en = <1>; }; gpio@d000 { /* GPIO 17 */ }; gpio@d100 { /* GPIO 18 */ }; gpio@d200 { /* GPIO 19 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */ qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */ qcom,master-en = <1>; }; gpio@d300 { /* GPIO 20 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@d400 { /* GPIO 21 */ }; gpio@d500 { /* GPIO 22 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <4>; /* QPNP_PIN_PULL_DN */ qcom,master-en = <1>; }; gpio@d600 { /* GPIO 23 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@d700 { /* GPIO 24 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@d800 { /* GPIO 25 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@d900 { /* GPIO 26 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@da00 { /* GPIO 27 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <4>; /* QPNP_PIN_PULL_DN */ qcom,master-en = <1>; }; gpio@db00 { /* GPIO 28 */ }; gpio@dc00 { /* GPIO 29 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ qcom,master-en = <1>; }; gpio@dd00 { /* GPIO 30 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <4>; /* QPNP_PIN_PULL_DN */ qcom,master-en = <1>; }; gpio@de00 { /* GPIO 31 */ }; gpio@df00 { /* GPIO 32 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <4>; /* QPNP_PIN_PULL_DN */ qcom,master-en = <1>; }; gpio@e000 { /* GPIO 33 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <4>; /* QPNP_PIN_PULL_DN */ qcom,master-en = <1>; }; gpio@e100 { /* GPIO 34 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <4>; /* QPNP_PIN_PULL_DN */ qcom,master-en = <1>; }; gpio@e200 { /* GPIO 35 */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,pull = <4>; /* QPNP_PIN_PULL_DN */ qcom,master-en = <1>; }; gpio@e300 { /* GPIO 36 */ }; }; &pm8941_mpps { mpp@a000 { /* MPP 1 */ status = "disabled"; }; mpp@a100 { /* MPP 2 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,master-en = <1>; }; mpp@a200 { /* MPP 3 */ }; mpp@a300 { /* MPP 4 */ }; mpp@a400 { /* MPP 5 */ }; mpp@a500 { /* MPP 6 */ /* SPI_ETH_RST config */ qcom,mode = <1>; /* DIG_OUT */ qcom,output-type = <0>; /* CMOS */ qcom,vin-sel = <2>; /* PM8941_S3 1.8V > 1.6V */ qcom,src-sel = <0>; /* CONSTANT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,master-en = <1>; /* ENABLE MPP */ }; mpp@a600 { /* MPP 7 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,master-en = <1>; }; mpp@a700 { /* MPP 8 */ qcom,mode = <1>; /* QPNP_PIN_MODE_DIG_OUT */ qcom,out-strength = <1>; /* QPNP_PIN_OUT_STRENGTH_LOW */ qcom,master-en = <1>; }; }; &pm8841_mpps { mpp@a000 { /* MPP 1 */ }; mpp@a100 { /* MPP 2 */ }; mpp@a200 { /* MPP 3 */ }; mpp@a300 { /* MPP 4 */ }; }; &slim_msm { taiko_codec { qcom,cdc-micbias1-ext-cap; qcom,cdc-micbias2-ext-cap; qcom,cdc-micbias4-ext-cap; }; }; &spi_epm { epm-adc@0 { compatible = "cy,epm-adc-cy8c5568lti-114"; reg = <0>; interrupt-parent = <&msmgpio>; spi-max-frequency = <960000>; qcom,channels = <31>; qcom,gain = <100 100 100 50 100 100 1 100 1 50 1 100 1 100 50 50 50 50 50 50 100 50 100 50 50 50 50 50 50 50 50>; qcom,rsense = <2 2 2 200 20 2 1 2 1 30 1 10 1 30 50 30 500 30 100 30 100 500 20 200 1000 20 1000 1000 70 200 50>; qcom,channel-type = <0x1540>; }; };