* If frequency scaling from low to high, adjust voltage first.
         * If frequency scaling from high to low, adjust frequency first.
         */
-       if (old_clk_rate < target_rate) {
+       if (old_clk_rate < target_rate && pfdev->regulator) {
                err = regulator_set_voltage(pfdev->regulator, target_volt,
                                            target_volt);
                if (err) {
                return err;
        }
 
-       if (old_clk_rate > target_rate) {
+       if (old_clk_rate > target_rate && pfdev->regulator) {
                err = regulator_set_voltage(pfdev->regulator, target_volt,
                                            target_volt);
                if (err)
        int ret;
        struct dev_pm_opp *opp;
 
-       if (!pfdev->regulator)
-               return 0;
-
        ret = dev_pm_opp_of_add_table(&pfdev->pdev->dev);
        if (ret == -ENODEV) /* Optional, continue without devfreq */
                return 0;