The following pinmux configuration, generated using the pinmux spreadsheet, to set GPIO pins with 3V3 tolerance, worked in JetPack3.0 but no longer in 3.1.
can_gpio3_paa3 {
nvidia,pins = "can_gpio3_paa3";
nvidia,function = "rsvd0";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
};
// HUB_RESETn (3V3)
can_gpio4_paa4 {
nvidia,pins = "can_gpio4_paa4";
nvidia,function = "rsvd0";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
};
can_gpio5_paa5 {
nvidia,pins = "can_gpio5_paa5";
nvidia,function = "rsvd0";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
};
can_gpio6_paa6 {
nvidia,pins = "can_gpio6_paa6";
nvidia,function = "rsvd0";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
};
The kernel throws the error message like this.
[ 0.707437] tegra186-pinctrl 2430000.pinmux: Config param 0007 (nvidia,io-high-voltage) not supported on group can_gpio5_paa5
[ 0.719287] tegra186-pinctrl 2430000.pinmux: pin_config_group_set op failed for group 29
[ 0.727761] tegra186-pinctrl 2430000.pinmux: Error applying setting, reverse things back
[ 0.736263] tegra186-pinctrl 2430000.pinmux: failed to select default state
The TX2 datasheet shows IO voltage of these pins are 3V3 capable, is this a JetPack3.1 specific bug?
GPIO3_PAA.03 C19 CAN1_ERR CAN #1 Error Input CMOS – 3.3V CZ
GPIO3_PAA.04 C20 CAN_WAKE CAN Wake Input CMOS – 3.3V CZ
GPIO3_PAA.05 E18 CAN0_ERR CAN #0 Error Input CMOS – 3.3V CZ
GPIO3_PAA.06 C17 CAN1_STBY CAN #1 Standby Output CMOS – 3.3V CZ