bool hw_rfkill_switch     : 1;
                bool kbd_bl               : 1;
                bool touchpad_ctrl_via_ec : 1;
+               bool ctrl_ps2_aux_port    : 1;
                bool usb_charging         : 1;
        } features;
        struct {
        "Enable driver based updates of the fn-lock LED on fn-lock changes. "
        "If you need this please report this to: platform-driver-x86@vger.kernel.org");
 
+static bool ctrl_ps2_aux_port;
+module_param(ctrl_ps2_aux_port, bool, 0444);
+MODULE_PARM_DESC(ctrl_ps2_aux_port,
+       "Enable driver based PS/2 aux port en-/dis-abling on touchpad on/off toggle. "
+       "If you need this please report this to: platform-driver-x86@vger.kernel.org");
+
 /*
  * shared data
  */
         * touchpad off and on. We send KEY_TOUCHPAD_OFF and
         * KEY_TOUCHPAD_ON to not to get out of sync with LED
         */
-       i8042_command(¶m, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
+       if (priv->features.ctrl_ps2_aux_port)
+               i8042_command(¶m, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
 
        if (send_events) {
                ideapad_input_report(priv, value ? 67 : 66);
        {}
 };
 
+/*
+ * On some models the EC toggles the touchpad muted LED on touchpad toggle
+ * hotkey presses, but the EC does not actually disable the touchpad itself.
+ * On these models the driver needs to explicitly enable/disable the i8042
+ * (PS/2) aux port.
+ */
+static const struct dmi_system_id ctrl_ps2_aux_port_list[] = {
+       {
+       /* Lenovo Ideapad Z570 */
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+               DMI_MATCH(DMI_PRODUCT_VERSION, "Ideapad Z570"),
+               },
+       },
+       {}
+};
+
 static const struct dmi_system_id no_touchpad_switch_list[] = {
        {
        .ident = "Lenovo Yoga 3 Pro 1370",
                set_fn_lock_led || dmi_check_system(set_fn_lock_led_list);
        priv->features.hw_rfkill_switch =
                hw_rfkill_switch || dmi_check_system(hw_rfkill_list);
+       priv->features.ctrl_ps2_aux_port =
+               ctrl_ps2_aux_port || dmi_check_system(ctrl_ps2_aux_port_list);
 
        /* Most ideapads with ELAN0634 touchpad don't use EC touchpad switch */
        if (acpi_dev_present("ELAN0634", NULL, -1))