#define PUPD(off)              (0x1C00 + (off) * 8)
 #define ISEL(off)              (0x2C00 + (off) * 8)
 #define NOD(off)               (0x3000 + (off) * 8)
+#define SMT(off)               (0x3400 + (off) * 8)
 #define SD_CH(off, ch)         ((off) + (ch) * 4)
 #define ETH_POC(off, ch)       ((off) + (ch) * 4)
 #define QSPI                   (0x3008)
 #define SR_MASK                        0x01
 #define PUPD_MASK              0x03
 #define NOD_MASK               0x01
+#define SMT_MASK               0x01
 
 #define PM_INPUT               0x1
 #define PM_OUTPUT              0x2
                        return -EINVAL;
                break;
 
+       case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
+               if (!(cfg & PIN_CFG_SMT))
+                       return -EINVAL;
+
+               arg = rzg2l_read_pin_config(pctrl, SMT(off), bit, SMT_MASK);
+               if (!arg)
+                       return -EINVAL;
+               break;
+
        case RENESAS_RZV2H_PIN_CONFIG_OUTPUT_IMPEDANCE:
                if (!(cfg & PIN_CFG_IOLH_RZV2H))
                        return -EINVAL;
                                             param == PIN_CONFIG_DRIVE_OPEN_DRAIN ? 1 : 0);
                        break;
 
+               case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
+                       if (!(cfg & PIN_CFG_SMT))
+                               return -EINVAL;
+
+                       rzg2l_rmw_pin_config(pctrl, SMT(off), bit, SMT_MASK, arg);
+                       break;
+
                case RENESAS_RZV2H_PIN_CONFIG_OUTPUT_IMPEDANCE:
                        if (!(cfg & PIN_CFG_IOLH_RZV2H))
                                return -EINVAL;