int base = 0;
        int ret;
 
-       /* Only allow one set() and one set_multiple(). */
-       if ((gc->set && gc->set_rv) ||
-           (gc->set_multiple && gc->set_multiple_rv))
-               return -EINVAL;
-
        /*
         * First: allocate and populate the internal stat container, and
         * set up the struct device.
 
        lockdep_assert_held(&gc->gpiodev->srcu);
 
-       if (WARN_ON(unlikely(!gc->set && !gc->set_rv)))
+       if (WARN_ON(unlikely(!gc->set_rv)))
                return -EOPNOTSUPP;
 
-       if (gc->set_rv) {
-               ret = gc->set_rv(gc, offset, value);
-               if (ret > 0)
-                       ret = -EBADE;
-
-               return ret;
-       }
+       ret = gc->set_rv(gc, offset, value);
+       if (ret > 0)
+               ret = -EBADE;
 
-       gc->set(gc, offset, value);
-       return 0;
+       return ret;
 }
 
 static int gpiod_direction_output_raw_commit(struct gpio_desc *desc, int value)
         * output-only, but if there is then not even a .set() operation it
         * is pretty tricky to drive the output line.
         */
-       if (!guard.gc->set && !guard.gc->set_rv && !guard.gc->direction_output) {
+       if (!guard.gc->set_rv && !guard.gc->direction_output) {
                gpiod_warn(desc,
                           "%s: missing set() and direction_output() operations\n",
                           __func__);
                return ret;
        }
 
-       if (gc->set_multiple) {
-               gc->set_multiple(gc, mask, bits);
-               return 0;
-       }
-
        /* set outputs if the corresponding mask bit is set */
        for_each_set_bit(i, mask, gc->ngpio) {
                ret = gpiochip_set(gc, i, test_bit(i, bits));
 
  * @get: returns value for signal "offset", 0=low, 1=high, or negative error
  * @get_multiple: reads values for multiple signals defined by "mask" and
  *     stores them in "bits", returns 0 on success or negative error
- * @set: **DEPRECATED** - please use set_rv() instead
- * @set_multiple: **DEPRECATED** - please use set_multiple_rv() instead
  * @set_rv: assigns output value for signal "offset", returns 0 on success or
  *          negative error value
  * @set_multiple_rv: assigns output values for multiple signals defined by
        int                     (*get_multiple)(struct gpio_chip *gc,
                                                unsigned long *mask,
                                                unsigned long *bits);
-       void                    (*set)(struct gpio_chip *gc,
-                                               unsigned int offset, int value);
-       void                    (*set_multiple)(struct gpio_chip *gc,
-                                               unsigned long *mask,
-                                               unsigned long *bits);
        int                     (*set_rv)(struct gpio_chip *gc,
                                          unsigned int offset,
                                          int value);