/* * Copyright (c) 2015-2016, 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. */ &soc { tlmm: pinctrl@1000000 { compatible = "qcom,msmgold-pinctrl"; reg = <0x1000000 0x300000>; interrupts = <0 208 0>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; #include "msmgold-camera-pinctrl.dtsi" /* add pingrp for touchscreen */ pmx_ts_int_active { ts_int_active: ts_int_active { mux { pins = "gpio65"; function = "gpio"; }; config { pins = "gpio65"; drive-strength = <8>; bias-pull-up; }; }; }; pmx_ts_int_suspend { ts_int_suspend: ts_int_suspend { mux { pins = "gpio65"; function = "gpio"; }; config { pins = "gpio65"; drive-strength = <2>; bias-pull-down; }; }; }; pmx_ts_reset_active { ts_reset_active: ts_reset_active { mux { pins = "gpio64"; function = "gpio"; }; config { pins = "gpio64"; drive-strength = <8>; bias-pull-up; }; }; }; pmx_ts_reset_suspend { ts_reset_suspend: ts_reset_suspend { mux { pins = "gpio64"; function = "gpio"; }; config { pins = "gpio64"; drive-strength = <2>; bias-pull-down; }; }; }; pmx_ts_release { ts_release: ts_release { mux { pins = "gpio65", "gpio64"; function = "gpio"; }; config { pins = "gpio65", "gpio64"; drive-strength = <2>; bias-pull-down; }; }; }; pmx-uartconsole { uart_console_active: uart_console_active { mux { pins = "gpio4", "gpio5"; function = "blsp_uart2"; }; config { pins = "gpio4", "gpio5"; drive-strength = <2>; bias-disable; }; }; uart_console_sleep: uart_console_sleep { mux { pins = "gpio4", "gpio5"; function = "blsp_uart2"; }; config { pins = "gpio4", "gpio5"; drive-strength = <2>; bias-pull-down; }; }; }; wcnss_pmux_5wire { /* Active configuration of bus pins */ wcnss_default: wcnss_default { wcss_wlan2 { pins = "gpio76"; function = "wcss_wlan2"; }; wcss_wlan1 { pins = "gpio77"; function = "wcss_wlan1"; }; wcss_wlan0 { pins = "gpio78"; function = "wcss_wlan0"; }; wcss_wlan { pins = "gpio79", "gpio80"; function = "wcss_wlan"; }; config { pins = "gpio76", "gpio77", "gpio78", "gpio79", "gpio80"; drive-strength = <6>; /* 6 MA */ bias-pull-up; /* PULL UP */ }; }; wcnss_sleep: wcnss_sleep { wcss_wlan2 { pins = "gpio76"; function = "wcss_wlan2"; }; wcss_wlan1 { pins = "gpio77"; function = "wcss_wlan1"; }; wcss_wlan0 { pins = "gpio78"; function = "wcss_wlan0"; }; wcss_wlan { pins = "gpio79", "gpio80"; function = "wcss_wlan"; }; config { pins = "gpio76", "gpio77", "gpio78", "gpio79", "gpio80"; drive-strength = <2>; /* 2 MA */ bias-pull-down; /* PULL Down */ }; }; }; wcnss_pmux_gpio: wcnss_pmux_gpio { wcnss_gpio_default: wcnss_gpio_default { /* Active configuration of bus pins */ mux { /* Uses general purpose pins */ pins = "gpio76", "gpio77", "gpio78", "gpio79", "gpio80"; function = "gpio"; }; config { pins = "gpio76", "gpio77", "gpio78", "gpio79", "gpio80"; drive-strength = <6>; /* 6 MA */ bias-pull-up; /* PULL UP */ }; }; }; pmx_mdss: pmx_mdss { mdss_dsi_active: mdss_dsi_active { mux { pins = "gpio60", "gpio98"; function = "gpio"; }; config { pins = "gpio60", "gpio98"; drive-strength = <8>; /* 8 mA */ bias-disable = <0>; /* no pull */ output-high; }; }; mdss_dsi_suspend: mdss_dsi_suspend { mux { pins = "gpio60", "gpio98"; function = "gpio"; }; config { pins = "gpio60", "gpio98"; drive-strength = <2>; /* 2 mA */ bias-pull-down; /* pull down */ }; }; }; pmx_mdss_te { mdss_te_active: mdss_te_active { mux { pins = "gpio24"; function = "mdp_vsync"; }; config { pins = "gpio24"; drive-strength = <2>; /* 8 mA */ bias-pull-down; /* pull down*/ }; }; mdss_te_suspend: mdss_te_suspend { mux { pins = "gpio24"; function = "mdp_vsync"; }; config { pins = "gpio24"; drive-strength = <2>; /* 2 mA */ bias-pull-down; /* pull down */ }; }; }; pmx_qdsd_clk { qdsd_clk_sdcard: clk_sdcard { config { pins = "qdsd_clk"; bias-disable; /* NO pull */ drive-strength = <16>; /* 16 MA */ }; }; qdsd_clk_trace: clk_trace { config { pins = "qdsd_clk"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_clk_swdtrc: clk_swdtrc { config { pins = "qdsd_clk"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_clk_spmi: clk_spmi { config { pins = "qdsd_clk"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; }; pmx_qdsd_cmd { qdsd_cmd_sdcard: cmd_sdcard { config { pins = "qdsd_cmd"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_cmd_trace: cmd_trace { config { pins = "qdsd_cmd"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_cmd_swduart: cmd_uart { config { pins = "qdsd_cmd"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_cmd_swdtrc: cmd_swdtrc { config { pins = "qdsd_cmd"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_cmd_jtag: cmd_jtag { config { pins = "qdsd_cmd"; bias-disable; /* NO pull */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_cmd_spmi: cmd_spmi { config { pins = "qdsd_cmd"; bias-pull-down; /* pull down */ drive-strength = <10>; /* 10 MA */ }; }; }; pmx_qdsd_data0 { qdsd_data0_sdcard: data0_sdcard { config { pins = "qdsd_data0"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data0_trace: data0_trace { config { pins = "qdsd_data0"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data0_swduart: data0_uart { config { pins = "qdsd_data0"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data0_swdtrc: data0_swdtrc { config { pins = "qdsd_data0"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data0_jtag: data0_jtag { config { pins = "qdsd_data0"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data0_spmi: data0_spmi { config { pins = "qdsd_data0"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; }; pmx_qdsd_data1 { qdsd_data1_sdcard: data1_sdcard { config { pins = "qdsd_data1"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data1_trace: data1_trace { config { pins = "qdsd_data1"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data1_swduart: data1_uart { config { pins = "qdsd_data1"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data1_swdtrc: data1_swdtrc { config { pins = "qdsd_data1"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data1_jtag: data1_jtag { config { pins = "qdsd_data1"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; }; pmx_qdsd_data2 { qdsd_data2_sdcard: data2_sdcard { config { pins = "qdsd_data2"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data2_trace: data2_trace { config { pins = "qdsd_data2"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data2_swduart: data2_uart { config { pins = "qdsd_data2"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data2_swdtrc: data2_swdtrc { config { pins = "qdsd_data2"; bias-pull-down; /* pull down */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data2_jtag: data2_jtag { config { pins = "qdsd_data2"; bias-pull-up; /* pull up */ drive-strength = <8>; /* 8 MA */ }; }; }; pmx_qdsd_data3 { qdsd_data3_sdcard: data3_sdcard { config { pins = "qdsd_data3"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data3_trace: data3_trace { config { pins = "qdsd_data3"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; qdsd_data3_swduart: data3_uart { config { pins = "qdsd_data3"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data3_swdtrc: data3_swdtrc { config { pins = "qdsd_data3"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data3_jtag: data3_jtag { config { pins = "qdsd_data3"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; qdsd_data3_spmi: data3_spmi { config { pins = "qdsd_data3"; bias-pull-down; /* pull down */ drive-strength = <8>; /* 8 MA */ }; }; }; cdc-pdm-2-lines { cdc_pdm_lines_2_act: pdm_lines_2_on { mux { pins = "gpio70", "gpio71", "gpio72"; function = "cdc_pdm0"; }; config { pins = "gpio70", "gpio71", "gpio72"; drive-strength = <8>; }; }; cdc_pdm_lines_2_sus: pdm_lines_2_off { mux { pins = "gpio70", "gpio71", "gpio72"; function = "cdc_pdm0"; }; config { pins = "gpio70", "gpio71", "gpio72"; drive-strength = <2>; bias-disable; }; }; }; cdc-pdm-lines { cdc_pdm_lines_act: pdm_lines_on { mux { pins = "gpio69", "gpio73", "gpio74"; function = "cdc_pdm0"; }; config { pins = "gpio69", "gpio73", "gpio74"; drive-strength = <8>; }; }; cdc_pdm_lines_sus: pdm_lines_off { mux { pins = "gpio69", "gpio73", "gpio74"; function = "cdc_pdm0"; }; config { pins = "gpio69", "gpio73", "gpio74"; drive-strength = <2>; bias-disable; }; }; }; cross-conn-det { cross_conn_det_act: lines_on { mux { pins = "gpio63"; function = "gpio"; }; config { pins = "gpio63"; drive-strength = <8>; output-low; bias-pull-down; }; }; cross_conn_det_sus: lines_off { mux { pins = "gpio63"; function = "gpio"; }; config { pins = "gpio63"; drive-strength = <2>; bias-pull-down; }; }; }; /* WSA VI sense */ wsa-vi { wsa_vi_on: wsa_vi_on { mux { pins = "gpio94", "gpio95"; function = "wsa_io"; }; config { pins = "gpio94", "gpio95"; drive-strength = <8>; /* 8 MA */ bias-disable; /* NO pull */ }; }; wsa_vi_off: wsa_vi_off { mux { pins = "gpio94", "gpio95"; function = "wsa_io"; }; config { pins = "gpio94", "gpio95"; drive-strength = <2>; /* 2 MA */ bias-pull-down; }; }; }; /* WSA Reset */ wsa_reset { wsa_reset_on: wsa_reset_on { mux { pins = "gpio96"; function = "gpio"; }; config { pins = "gpio96"; drive-strength = <2>; /* 2 MA */ output-high; }; }; wsa_reset_off: wsa_reset_off { mux { pins = "gpio96"; function = "gpio"; }; config { pins = "gpio96"; drive-strength = <2>; /* 2 MA */ output-low; }; }; }; /* WSA CLK */ wsa_clk { wsa_clk_on: wsa_clk_on { mux { pins = "gpio25"; function = "pri_mi2s_mclk_a"; }; config { pins = "gpio25"; drive-strength = <8>; /* 8 MA */ output-high; }; }; wsa_clk_off: wsa_clk_off { mux { pins = "gpio25"; function = "pri_mi2s_mclk_a"; }; config { pins = "gpio25"; drive-strength = <2>; /* 2 MA */ output-low; bias-pull-down; }; }; }; spi3 { spi3_default: spi3_default { /* active state */ mux { /* MOSI, MISO, CLK */ pins = "gpio8", "gpio9", "gpio11"; function = "blsp_spi3"; }; config { pins = "gpio8", "gpio9", "gpio11"; drive-strength = <12>; /* 12 MA */ bias-disable = <0>; /* No PULL */ }; }; spi3_sleep: spi3_sleep { /* suspended state */ mux { /* MOSI, MISO, CLK */ pins = "gpio8", "gpio9", "gpio11"; function = "gpio"; }; config { pins = "gpio8", "gpio9", "gpio11"; drive-strength = <2>; /* 2 MA */ bias-pull-down; /* PULL Down */ }; }; spi3_cs0_active: cs0_active { /* CS */ mux { pins = "gpio10"; function = "blsp_spi3"; }; config { pins = "gpio10"; drive-strength = <2>; bias-disable = <0>; }; }; spi3_cs0_sleep: cs0_sleep { /* CS */ mux { pins = "gpio10"; function = "gpio"; }; config { pins = "gpio10"; drive-strength = <2>; bias-disable = <0>; }; }; }; i2c_2 { i2c_2_active: i2c_2_active { /* active state */ mux { pins = "gpio6", "gpio7"; function = "blsp_i2c2"; }; config { pins = "gpio6", "gpio7"; drive-strength = <2>; bias-disable; }; }; i2c_2_sleep: i2c_2_sleep { /* suspended state */ mux { pins = "gpio6", "gpio7"; function = "gpio"; }; config { pins = "gpio6", "gpio7"; drive-strength = <2>; bias-pull-down; }; }; }; i2c_3 { i2c_3_active: i2c_3_active { /* active state */ mux { pins = "gpio10", "gpio11"; function = "blsp_i2c3"; }; config { pins = "gpio10", "gpio11"; drive-strength = <2>; bias-disable; }; }; i2c_3_sleep: i2c_3_sleep { /* suspended state */ mux { pins = "gpio10", "gpio11"; function = "gpio"; }; config { pins = "gpio10", "gpio11"; drive-strength = <2>; bias-pull-down; }; }; }; i2c_5 { i2c_5_active: i2c_5_active { /* active state */ mux { pins = "gpio18", "gpio19"; function = "blsp_i2c5"; }; config { pins = "gpio18", "gpio19"; drive-strength = <2>; bias-disable; }; }; i2c_5_sleep: i2c_5_sleep { /* suspended state */ mux { pins = "gpio18", "gpio19"; function = "gpio"; }; config { pins = "gpio18", "gpio19"; drive-strength = <2>; bias-pull-down; }; }; }; tlmm_gpio_key { gpio_key_active: gpio_key_active { mux { pins = "gpio91", "gpio127", "gpio128"; drive-strength = <2>; bias-pull-up; }; }; gpio_key_suspend: gpio_key_suspend { mux { pins = "gpio91", "gpio127", "gpio128"; drive-strength = <2>; bias-pull-up; }; }; }; tlmm_pmi_flash_led { rear_flash_led_enable: rear_flash_led_enable { mux { pins = "gpio33"; function = "gpio"; }; config { pins = "gpio33"; drive-strength = <16>; output-high; }; }; rear_flash_led_disable: rear_flash_led_disable { mux { pins = "gpio33"; function = "gpio"; }; config { pins = "gpio33"; drive-strength = <2>; output-low; }; }; front_flash_led_enable: front_flash_led_enable { mux { pins = "gpio50"; function = "gpio"; }; config { pins = "gpio50"; drive-strength = <16>; output-high; }; }; front_flash_led_disable: front_flash_led_disable { mux { pins = "gpio50"; function = "gpio"; }; config { pins = "gpio50"; drive-strength = <2>; output-low; }; }; }; }; };