/* Copyright (c) 2015, 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_pinmux: pinctrl@1000000 { compatible = "qcom,mdmcalifornium-pinctrl"; reg = <0x1000000 0x300000>; interrupts = <0 208 0>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; uart2_console_active: uart2_console_active { mux { pins = "gpio4", "gpio5"; function = "blsp_uart2"; }; config { pins = "gpio4", "gpio5"; drive-strength = <2>; bias-disable; }; }; uart3_console_active: uart3_console_active { mux { pins = "gpio8", "gpio9"; function = "blsp_uart3"; }; config { pins = "gpio8", "gpio9"; drive-strength = <2>; bias-disable; }; }; /* I2C CONFIGURATION */ i2c_1 { i2c_1_active: i2c_1_active { mux { pins = "gpio2", "gpio3"; function = "blsp_i2c1"; }; config { pins = "gpio2", "gpio3"; drive-strength = <2>; bias-disable; }; }; i2c_1_sleep: i2c_1_sleep { mux { pins = "gpio2", "gpio3"; function = "blsp_i2c1"; }; config { pins = "gpio2", "gpio3"; drive-strength = <2>; bias-pull-up; }; }; }; i2c_2 { i2c_2_active: i2c_2_active { mux { pins = "gpio6", "gpio7"; function = "blsp_i2c2"; }; config { pins = "gpio6", "gpio7"; drive-strength = <2>; bias-disable; }; }; i2c_2_sleep: i2c_2_sleep { mux { pins = "gpio6", "gpio7"; function = "blsp_i2c2"; }; config { pins = "gpio6", "gpio7"; drive-strength = <2>; bias-pull-up; }; }; }; i2c_3 { i2c_3_active: i2c_3_active { mux { pins = "gpio10", "gpio11"; function = "blsp_i2c3"; }; config { pins = "gpio10", "gpio11"; drive-strength = <2>; bias-disable; }; }; i2c_3_sleep: i2c_3_sleep { mux { pins = "gpio10", "gpio11"; function = "blsp_i2c3"; }; config { pins = "gpio10", "gpio11"; drive-strength = <2>; bias-pull-up; }; }; }; i2c_4 { i2c_4_active: i2c_4_active { mux { pins = "gpio14", "gpio15"; function = "blsp_i2c4"; }; config { pins = "gpio14", "gpio15"; drive-strength = <2>; bias-disable; }; }; i2c_4_sleep: i2c_4_sleep { mux { pins = "gpio14", "gpio15"; function = "blsp_i2c4"; }; config { pins = "gpio14", "gpio15"; drive-strength = <2>; bias-pull-up; }; }; }; cnss_pins { cnss_default: cnss_default { mux { pins = "gpio95"; function = "gpio"; }; config { pins = "gpio95"; drive-strength = <16>; bias-pull-down; }; }; }; /* SPI CONFIGURATION */ spi_1 { spi_1_active: spi_1_active { mux { pins = "gpio0", "gpio1", "gpio3"; function = "blsp_spi1"; }; config { pins = "gpio0", "gpio1", "gpio3"; drive-strength = <6>; bias-disable; }; }; spi_1_sleep: spi_1_sleep { mux { pins = "gpio0", "gpio1", "gpio3"; function = "blsp_spi1"; }; config { pins = "gpio0", "gpio1", "gpio3"; drive-strength = <6>; bias-disable; }; }; }; spi_2 { spi_2_active: spi_2_active { mux { pins = "gpio4", "gpio5", "gpio7"; function = "blsp_spi2"; }; config { pins = "gpio4", "gpio5", "gpio7"; drive-strength = <6>; bias-disable; }; }; spi_2_sleep: spi_2_sleep { mux { pins = "gpio4", "gpio5", "gpio7"; function = "blsp_spi2"; }; config { pins = "gpio4", "gpio5", "gpio7"; drive-strength = <6>; bias-disable; }; }; }; spi_3 { spi_3_active: spi_3_active { mux { pins = "gpio8", "gpio9", "gpio11"; function = "blsp_spi3"; }; config { pins = "gpio8", "gpio9", "gpio11"; drive-strength = <6>; bias-disable; }; }; spi_3_sleep: spi_3_sleep { mux { pins = "gpio8", "gpio9", "gpio11"; function = "blsp_spi3"; }; config { pins = "gpio8", "gpio9", "gpio11"; drive-strength = <6>; bias-disable; }; }; }; spi_4 { spi_4_active: spi_4_active { mux { pins = "gpio16", "gpio17", "gpio19"; function = "blsp_spi4"; }; config { pins = "gpio16", "gpio17", "gpio19"; drive-strength = <6>; bias-disable; }; }; spi_4_sleep: spi_4_sleep { mux { pins = "gpio16", "gpio17", "gpio19"; function = "blsp_spi4"; }; config { pins = "gpio16", "gpio17", "gpio19"; drive-strength = <6>; bias-disable; }; }; }; /* SMB CONFIGURATION */ pmx_smb_stat { smb_stat_active: smb_stat_active { mux { pins = "gpio83"; function = "gpio"; }; config { pins = "gpio83"; drive-strength = <2>; bias-disable; }; }; }; pcie0 { pcie0_clkreq_default: pcie0_clkreq_default { mux { pins = "gpio64"; function = "pcie_clkreq"; }; config { pins = "gpio64"; drive-strength = <2>; bias-pull-up; }; }; pcie0_perst_default: pcie0_perst_default { mux { pins = "gpio60"; function = "gpio"; }; config { pins = "gpio60"; drive-strength = <2>; bias-pull-down; }; }; pcie0_wake_default: pcie0_wake_default { mux { pins = "gpio65"; function = "gpio"; }; config { pins = "gpio65"; drive-strength = <2>; bias-pull-down; }; }; pcie0_mdm2apstatus_default: pcie0_mdm2apstatus_default { mux { pins = "gpio16"; function = "gpio"; }; config { pins = "gpio16"; drive-strength = <2>; bias-pull-down; }; }; }; /* UART HS CONFIGURATION */ blsp1_uart1_active: blsp1_uart1_active { mux { pins = "gpio0", "gpio1", "gpio2", "gpio3"; function = "blsp_uart1"; }; config { pins = "gpio0", "gpio1", "gpio2", "gpio3"; drive-strength = <2>; bias-disable; }; }; blsp1_uart1_sleep: blsp1_uart1_sleep { mux { pins = "gpio0", "gpio1", "gpio2", "gpio3"; function = "gpio"; }; config { pins = "gpio0", "gpio1", "gpio2", "gpio3"; drive-strength = <2>; bias-disable; }; }; blsp1_uart2_active: blsp1_uart2_active { mux { pins = "gpio4", "gpio5", "gpio6", "gpio7"; function = "blsp_uart2"; }; config { pins = "gpio4", "gpio5", "gpio6", "gpio7"; drive-strength = <2>; bias-disable; }; }; blsp1_uart2_sleep: blsp1_uart2_sleep { mux { pins = "gpio4", "gpio5", "gpio6", "gpio7"; function = "gpio"; }; config { pins = "gpio4", "gpio5", "gpio6", "gpio7"; drive-strength = <2>; bias-disable; }; }; blsp1_uart3_active: blsp1_uart3_active { mux { pins = "gpio8", "gpio9", "gpio10", "gpio11"; function = "blsp_uart3"; }; config { pins = "gpio8", "gpio9", "gpio10", "gpio11"; drive-strength = <2>; bias-disable; }; }; blsp1_uart3_sleep: blsp1_uart3_sleep { mux { pins = "gpio8", "gpio9", "gpio10", "gpio11"; function = "gpio"; }; config { pins = "gpio8", "gpio9", "gpio10", "gpio11"; drive-strength = <2>; bias-disable; }; }; blsp1_uart4_active: blsp1_uart4_active { mux { pins = "gpio12", "gpio13", "gpio14", "gpio15"; function = "blsp_uart4"; }; config { pins = "gpio12", "gpio13", "gpio14", "gpio15"; drive-strength = <2>; bias-disable; }; }; blsp1_uart4_sleep: blsp1_uart4_sleep { mux { pins = "gpio12", "gpio13", "gpio14", "gpio15"; function = "gpio"; }; config { pins = "gpio12", "gpio13", "gpio14", "gpio15"; drive-strength = <2>; bias-disable; }; }; mdss_cs_active: mdss_cs_active { mux { pins = "gpio21"; function = "ebi2_lcd"; }; config { pins = "gpio21"; drive-strength = <10>; /* 10 mA */ bias-disable; /* NO pull */ }; }; mdss_cs_sleep: mdss_cs_sleep { mux { pins = "gpio21"; function = "ebi2_lcd"; }; config { pins = "gpio21"; drive-strength = <2>; /* 2 mA */ bias-disable; /* NO pull */ }; }; mdss_te_active: mdss_te_active { mux { pins = "gpio22"; function = "ebi2_lcd"; }; config { pins = "gpio22"; drive-strength = <10>; /* 10 mA */ bias-disable; /* NO pull */ }; }; mdss_te_sleep: mdss_te_sleep { mux { pins = "gpio22"; function = "ebi2_lcd"; }; config { pins = "gpio22"; drive-strength = <2>; /* 2 mA */ bias-disable; /* NO pull */ }; }; mdss_rs_active: mdss_rs_active { mux { pins = "gpio23"; function = "ebi2_lcd"; }; config { pins = "gpio23"; drive-strength = <10>; /* 10 mA */ bias-disable; /* NO pull */ }; }; mdss_rs_sleep: mdss_rs_sleep { mux { pins = "gpio23"; function = "ebi2_lcd"; }; config { pins = "gpio23"; drive-strength = <2>; /* 2 mA */ bias-disable; /* NO pull */ }; }; mdss_ad_active: mdss_ad_active { mux { pins = "gpio20"; function = "ebi2_a"; }; config { pins = "gpio20"; drive-strength = <10>; /* 10 mA */ bias-disable; /* NO pull */ }; }; mdss_ad_sleep: mdss_ad_sleep { mux { pins = "gpio20"; function = "ebi2_a"; }; config { pins = "gpio20"; drive-strength = <2>; /* 2 mA */ bias-disable; /* NO pull */ }; }; mdss_bl_active: mdss_bl_active { mux { pins = "gpio68"; function = "gpio"; }; config { pins = "gpio68"; drive-strength = <10>; /* 10 mA */ bias-disable; /* NO pull */ output-high; }; }; mdss_bl_sleep: mdss_bl_sleep { mux { pins = "gpio68"; function = "gpio"; }; config { pins = "gpio68"; drive-strength = <2>; /* 2 mA */ bias-disable; /* NO pull */ output-low; }; }; i2s_mclk { i2s_mclk_sleep: i2s_mclk_sleep { mux { pins = "gpio71"; function = "i2s_mclk"; }; config { pins = "gpio71"; drive-strength = <2>; /* 2 mA */ bias-pull-down; /* PULL DOWN */ }; }; i2s_mclk_active: i2s_mclk_active { mux { pins = "gpio71"; function = "i2s_mclk"; }; config { pins = "gpio71"; drive-strength = <8>; /* 8 mA */ bias-disable; /* NO PULL*/ output-high; }; }; }; pmx_pri_mi2s_dout { pri_mi2s_ws_sleep: pri_mi2s_ws_sleep { mux { pins = "gpio12"; function = "pri_mi2s_ws_a"; }; config { pins = "gpio12"; drive-strength = <2>; /* 2 mA */ bias-pull-down; /* PULL DOWN */ }; }; pri_mi2s_sck_sleep: pri_mi2s_sck_sleep { mux { pins = "gpio15"; function = "pri_mi2s_sck_a"; }; config { pins = "gpio15"; drive-strength = <2>; /* 2 mA */ bias-pull-down; /* PULL DOWN */ }; }; pri_mi2s_dout_sleep: pri_mi2s_dout_sleep { mux { pins = "gpio14"; function = "pri_mi2s_data1_a"; }; config { pins = "gpio14"; drive-strength = <2>; /* 2 mA */ bias-pull-down; /* PULL DOWN */ }; }; pri_mi2s_ws_active: pri_mi2s_ws_active { mux { pins = "gpio12"; function = "pri_mi2s_ws_a"; }; config { pins = "gpio12"; drive-strength = <8>; /* 8 mA */ bias-disable; /* NO PULL*/ output-high; }; }; pri_mi2s_sck_active: pri_mi2s_sck_active { mux { pins = "gpio15"; function = "pri_mi2s_sck_a"; }; config { pins = "gpio15"; drive-strength = <8>; /* 8 mA */ bias-disable; /* NO PULL*/ output-high; }; }; pri_mi2s_dout_active: pri_mi2s_dout_active { mux { pins = "gpio14"; function = "pri_mi2s_data1_a"; }; config { pins = "gpio14"; drive-strength = <8>; /* 8 mA */ bias-disable; /* NO PULL*/ output-high; }; }; }; pmx_pri_mi2s_din { pri_mi2s_din_sleep: pri_mi2s_din_sleep { mux { pins = "gpio13"; function = "pri_mi2s_data0_a"; }; config { pins = "gpio13"; drive-strength = <2>; /* 2 mA */ bias-pull-down; /* PULL DOWN */ }; }; pri_mi2s_din_active: pri_mi2s_din_active { mux { pins = "gpio13"; function = "pri_mi2s_data0_a"; }; config { pins = "gpio13"; drive-strength = <8>; /* 8 mA */ bias-disable; /* NO PULL */ }; }; }; sdc1_clk_on: sdc1_clk_on { config { pins = "sdc1_clk"; bias-disable; /* NO pull */ drive-strength = <16>; /* 16 MA */ }; }; sdc1_clk_off: sdc1_clk_off { config { pins = "sdc1_clk"; bias-disable; /* NO pull */ drive-strength = <2>; /* 2 MA */ }; }; sdc1_cmd_on: sdc1_cmd_on { config { pins = "sdc1_cmd"; bias-pull-up; /* pull up */ drive-strength = <10>; /* 10 MA */ }; }; sdc1_cmd_off: sdc1_cmd_off { config { pins = "sdc1_cmd"; num-grp-pins = <1>; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; sdc1_data_on: sdc1_data_on { config { pins = "sdc1_data"; bias-pull-up; /* pull up */ drive-strength = <10>; /* 10 MA */ }; }; sdc1_data_off: sdc1_data_off { config { pins = "sdc1_data"; bias-pull-up; /* pull up */ drive-strength = <2>; /* 2 MA */ }; }; }; };