/* 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/ "dsi-panel-orise-720p-video.dtsi" /include/ "msm8974-leds.dtsi" /include/ "msm8974-camera-sensor-cdp.dtsi" &soc { serial@f991e000 { status = "ok"; }; qcom,mdss_dsi_toshiba_720p_video { status = "ok"; qcom,cont-splash-enabled; }; qcom,mdss_dsi_orise_720p_video { status = "disable"; }; qcom,hdmi_tx@fd922100 { status = "ok"; }; 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,smart-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-cdp-snd-card"; qcom,hdmi-audio-rx; qcom,us-euro-gpios = <&pm8941_gpios 20 0>; qcom,cdc-micbias2-headset-only; }; usb2_otg_sw: regulator-tpd4s214 { compatible = "regulator-fixed"; regulator-name = "usb2_otg_sw"; gpio = <&pm8941_gpios 18 0>; parent-supply = <&pm8941_boost>; startup-delay-us = <17000>; enable-active-high; }; hsic_host: hsic@f9a00000 { compatible = "qcom,hsic-host"; reg = <0xf9a00000 0x400>; #address-cells = <0>; interrupt-parent = <&hsic_host>; interrupts = <0 1 2>; #interrupt-cells = <1>; interrupt-map-mask = <0xffffffff>; interrupt-map = <0 &intc 0 136 0 1 &intc 0 148 0 2 &msmgpio 144 0x8>; interrupt-names = "core_irq", "async_irq", "wakeup"; HSIC_VDDCX-supply = <&pm8841_s2>; HSIC_GDSC-supply = <&gdsc_usb_hsic>; hsic,strobe-gpio = <&msmgpio 144 0x00>; hsic,data-gpio = <&msmgpio 145 0x00>; hsic,resume-gpio = <&msmgpio 80 0x00>; hsic,ignore-cal-pad-config; hsic,strobe-pad-offset = <0x2050>; hsic,data-pad-offset = <0x2054>; qcom,msm-bus,name = "hsic"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,num-paths = <1>; qcom,msm-bus,vectors-KBps = <85 512 0 0>, <85 512 40000 160000>; }; wlan0: qca,wlan { compatible = "qca,ar6004-hsic"; qcom,msm-bus,name = "wlan"; qcom,msm-bus,num-cases = <5>; qcom,msm-bus,active-only = <0>; qcom,msm-bus,num-paths = <1>; qcom,msm-bus,vectors-KBps = <85 512 0 0>, <85 512 40000 160000>, <85 512 40000 320000>, <85 512 40000 480000>, <85 512 40000 800000>; }; }; &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>; wp-gpios = <&pm8941_gpios 29 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 */ }; &uart7 { status = "ok"; qcom,tx-gpio = <&msmgpio 41 0x00>; qcom,rx-gpio = <&msmgpio 42 0x00>; qcom,cts-gpio = <&msmgpio 43 0x00>; qcom,rfr-gpio = <&msmgpio 44 0x00>; }; &usb3 { qcom,otg-capability; }; &pm8941_chg { status = "ok"; qcom,chgr@1000 { status = "ok"; }; qcom,buck@1100 { 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 */ }; gpio@c100 { /* GPIO 2 */ }; gpio@c200 { /* GPIO 3 */ qcom,mode = <0>; qcom,pull = <0>; qcom,vin-sel = <2>; qcom,src-sel = <0>; }; gpio@c300 { /* GPIO 4 */ qcom,mode = <0>; qcom,pull = <0>; qcom,vin-sel = <2>; qcom,src-sel = <0>; }; gpio@c400 { /* GPIO 5 */ qcom,mode = <0>; qcom,pull = <0>; qcom,vin-sel = <2>; qcom,src-sel = <0>; }; gpio@c500 { /* GPIO 6 */ }; gpio@c600 { /* GPIO 7 */ }; gpio@c700 { /* GPIO 8 */ }; gpio@c800 { /* GPIO 9 */ }; gpio@c900 { /* GPIO 10 */ }; gpio@ca00 { /* GPIO 11 */ }; gpio@cb00 { /* GPIO 12 */ }; gpio@cc00 { /* GPIO 13 */ }; gpio@cd00 { /* GPIO 14 */ }; 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 = <2>; qcom,vin-sel = <2>; qcom,out-strength = <2>; qcom,src-sel = <2>; qcom,master-en = <1>; }; gpio@d000 { /* GPIO 17 */ }; gpio@d100 { /* GPIO 18 */ /* usb2_otg_sw regulator enable */ qcom,mode = <1>; /* Digital output */ qcom,output-type = <0>; /* CMOS logic */ qcom,invert = <0>; /* Output low initially */ qcom,vin-sel = <2>; /* PM8941 S3 = 1.8 V */ qcom,src-sel = <0>; /* Constant */ qcom,out-strength = <2>; /* Medium drive strength */ qcom,master-en = <1>; /* Enable GPIO */ }; 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 = <2>; /* QPNP_PIN_OUT_STRENGTH_MED */ 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,output-type = <0>; /* QPNP_PIN_OUT_BUF_CMOS */ qcom,invert = <0>; /* Output low initially */ qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ qcom,out-strength = <2>; /* QPNP_PIN_OUT_STRENGTH_MED */ qcom,src-sel = <0>; /* QPNP_PIN_SEL_FUNC_CONSTANT */ qcom,master-en = <1>; }; gpio@d400 { /* GPIO 21 */ }; gpio@d500 { /* GPIO 22 */ }; gpio@d600 { /* GPIO 23 */ }; gpio@d700 { /* GPIO 24 */ }; gpio@d800 { /* GPIO 25 */ }; gpio@d900 { /* GPIO 26 */ }; gpio@da00 { /* GPIO 27 */ }; gpio@db00 { /* GPIO 28 */ }; gpio@dc00 { /* GPIO 29 */ qcom,pull = <0>; /* set to default pull */ qcom,master-en = <1>; qcom,vin-sel = <2>; /* select 1.8 V source */ }; gpio@dd00 { /* GPIO 30 */ }; gpio@de00 { /* GPIO 31 */ }; gpio@df00 { /* GPIO 32 */ }; gpio@e000 { /* GPIO 33 */ }; gpio@e100 { /* GPIO 34 */ }; gpio@e200 { /* GPIO 35 */ }; gpio@e300 { /* GPIO 36 */ 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 = <3>; /* QPNP_PIN_OUT_STRENGTH_HIGH */ qcom,src-sel = <3>; /* QPNP_PIN_SEL_FUNC_2 */ qcom,master-en = <1>; }; }; &pm8941_mpps { mpp@a000 { /* MPP 1 */ status = "disabled"; }; mpp@a100 { /* MPP 2 */ }; mpp@a200 { /* MPP 3 */ }; mpp@a300 { /* MPP 4 */ }; mpp@a400 { /* MPP 5 */ /* SPI_ETH 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,master-en = <1>; /* ENABLE MPP */ }; 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,master-en = <1>; /* ENABLE MPP */ }; mpp@a600 { /* MPP 7 */ }; mpp@a700 { /* MPP 8 */ }; }; &pm8841_mpps { mpp@a000 { /* MPP 1 */ }; mpp@a100 { /* MPP 2 */ }; mpp@a200 { /* MPP 3 */ }; mpp@a300 { /* MPP 4 */ }; }; /* CoreSight */ &tpiu { qcom,seta-gpios = <&msmgpio 31 0>, <&msmgpio 32 0>, <&msmgpio 33 0>, <&msmgpio 34 0>, <&msmgpio 35 0>, <&msmgpio 36 0>, <&msmgpio 37 0>, <&msmgpio 38 0>, <&msmgpio 39 0>, <&msmgpio 40 0>, <&msmgpio 41 0>, <&msmgpio 42 0>, <&msmgpio 43 0>, <&msmgpio 44 0>, <&msmgpio 45 0>, <&msmgpio 46 0>, <&msmgpio 47 0>, <&msmgpio 48 0>; qcom,seta-gpios-func = <4 4 4 3 4 4 4 3 4 3 5 5 5 5 4 4 5 5>; qcom,seta-gpios-drv = <7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7>; qcom,seta-gpios-pull = <0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>; qcom,seta-gpios-dir = <2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2>; qcom,setb-gpios = <&msmgpio 15 0>, <&msmgpio 16 0>, <&msmgpio 17 0>, <&msmgpio 18 0>, <&msmgpio 19 0>, <&msmgpio 20 0>, <&msmgpio 21 0>, <&msmgpio 22 0>, <&msmgpio 23 0>, <&msmgpio 24 0>, <&msmgpio 25 0>, <&msmgpio 26 0>, <&msmgpio 27 0>, <&msmgpio 28 0>, <&msmgpio 89 0>, <&msmgpio 90 0>, <&msmgpio 91 0>, <&msmgpio 92 0>; qcom,setb-gpios-func = <2 2 2 2 5 5 5 5 6 6 6 7 7 5 2 3 3 3>; qcom,setb-gpios-drv = <7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7>; qcom,setb-gpios-pull = <0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>; qcom,setb-gpios-dir = <2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2>; }; &slim_msm { taiko_codec { qcom,cdc-micbias1-ext-cap; qcom,cdc-micbias3-ext-cap; qcom,cdc-micbias4-ext-cap; /* If boot isn't available, vph_pwr_vreg can be used instead */ cdc-vdd-spkdrv-supply = <&pm8941_boost>; qcom,cdc-vdd-spkdrv-voltage = <5000000 5000000>; qcom,cdc-vdd-spkdrv-current = <1250000>; qcom,cdc-on-demand-supplies = "cdc-vdd-spkdrv"; }; };