}
 }
 
+/* Fan speed read function */
+static int oxp_pwm_fan_speed(long *val)
+{
+       switch (board) {
+       case orange_pi_neo:
+               return read_from_ec(ORANGEPI_SENSOR_FAN_REG, 2, val);
+       case oxp_2:
+       case oxp_x1:
+               return read_from_ec(OXP_2_SENSOR_FAN_REG, 2, val);
+       case aok_zoe_a1:
+       case aya_neo_2:
+       case aya_neo_air:
+       case aya_neo_air_1s:
+       case aya_neo_air_plus_mendo:
+       case aya_neo_air_pro:
+       case aya_neo_flip:
+       case aya_neo_geek:
+       case aya_neo_kun:
+       case oxp_fly:
+       case oxp_mini_amd:
+       case oxp_mini_amd_a07:
+       case oxp_mini_amd_pro:
+               return read_from_ec(OXP_SENSOR_FAN_REG, 2, val);
+       default:
+               return -EOPNOTSUPP;
+       }
+}
+
 /* PWM input read/write functions */
 static int oxp_pwm_input_write(long val)
 {
        case hwmon_fan:
                switch (attr) {
                case hwmon_fan_input:
-                       switch (board) {
-                       case orange_pi_neo:
-                               return read_from_ec(ORANGEPI_SENSOR_FAN_REG, 2, val);
-                       case oxp_2:
-                       case oxp_x1:
-                               return read_from_ec(OXP_2_SENSOR_FAN_REG, 2, val);
-                       case aok_zoe_a1:
-                       case aya_neo_2:
-                       case aya_neo_air:
-                       case aya_neo_air_1s:
-                       case aya_neo_air_plus_mendo:
-                       case aya_neo_air_pro:
-                       case aya_neo_flip:
-                       case aya_neo_geek:
-                       case aya_neo_kun:
-                       case oxp_fly:
-                       case oxp_mini_amd:
-                       case oxp_mini_amd_a07:
-                       case oxp_mini_amd_pro:
-                               return read_from_ec(OXP_SENSOR_FAN_REG, 2, val);
-                       default:
-                               break;
-                       }
-                       break;
+                       return oxp_pwm_fan_speed(val);
                default:
                        break;
                }