config VIDEO_SAMSUNG_EXYNOS4_IS
        bool "Samsung S5P/EXYNOS4 SoC series Camera Subsystem driver"
        depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && PLAT_S5P && PM_RUNTIME
-       depends on MFD_SYSCON
        help
          Say Y here to enable camera host interface devices for
          Samsung S5P and EXYNOS SoC series.
        depends on I2C
        select VIDEOBUF2_DMA_CONTIG
        select V4L2_MEM2MEM_DEV
+       select MFD_SYSCON if OF
        help
          This is a V4L2 driver for Samsung S5P and EXYNOS4 SoC camera host
          interface and video postprocessor (FIMC) devices.
 
        spin_lock_init(&fimc->slock);
        mutex_init(&fimc->lock);
 
-       fimc->sysreg = syscon_regmap_lookup_by_phandle(dev->of_node,
-                                               "samsung,sysreg");
+       fimc->sysreg = fimc_get_sysreg_regmap(dev->of_node);
        if (IS_ERR(fimc->sysreg))
                return PTR_ERR(fimc->sysreg);
 
 
 #include <linux/regmap.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
+#include <linux/mfd/syscon.h>
 #include <linux/types.h>
 #include <linux/videodev2.h>
 #include <linux/io.h>
 int fimc_register_driver(void);
 void fimc_unregister_driver(void);
 
+#ifdef CONFIG_MFD_SYSCON
+static inline struct regmap * fimc_get_sysreg_regmap(struct device_node *node)
+{
+       return syscon_regmap_lookup_by_phandle(node, "samsung,sysreg");
+}
+#else
+#define fimc_get_sysreg_regmap(node) (NULL)
+#endif
+
 /* -----------------------------------------------------*/
 /* fimc-m2m.c */
 void fimc_m2m_job_finish(struct fimc_ctx *ctx, int vb_state);
 
        unsigned int mask, val, camblk_cfg;
        int ret;
 
+       if (map == NULL)
+               return 0;
+
        ret = regmap_read(map, SYSREG_CAMBLK, &camblk_cfg);
        if (ret < 0 || ((camblk_cfg & 0x00700000) >> 20 != 0x3))
                return ret;