struct adv7343_state {
        struct v4l2_subdev sd;
        struct v4l2_ctrl_handler hdl;
+       const struct adv7343_platform_data *pdata;
        u8 reg00;
        u8 reg01;
        u8 reg02;
        /* Enable Appropriate DAC */
        val = state->reg00 & 0x03;
 
-       if (output_type == ADV7343_COMPOSITE_ID)
-               val |= ADV7343_COMPOSITE_POWER_VALUE;
-       else if (output_type == ADV7343_COMPONENT_ID)
-               val |= ADV7343_COMPONENT_POWER_VALUE;
+       /* configure default configuration */
+       if (!state->pdata)
+               if (output_type == ADV7343_COMPOSITE_ID)
+                       val |= ADV7343_COMPOSITE_POWER_VALUE;
+               else if (output_type == ADV7343_COMPONENT_ID)
+                       val |= ADV7343_COMPONENT_POWER_VALUE;
+               else
+                       val |= ADV7343_SVIDEO_POWER_VALUE;
        else
-               val |= ADV7343_SVIDEO_POWER_VALUE;
+               val = state->pdata->mode_config.sleep_mode << 0 |
+                     state->pdata->mode_config.pll_control << 1 |
+                     state->pdata->mode_config.dac_3 << 2 |
+                     state->pdata->mode_config.dac_2 << 3 |
+                     state->pdata->mode_config.dac_1 << 4 |
+                     state->pdata->mode_config.dac_6 << 5 |
+                     state->pdata->mode_config.dac_5 << 6 |
+                     state->pdata->mode_config.dac_4 << 7;
 
        err = adv7343_write(sd, ADV7343_POWER_MODE_REG, val);
        if (err < 0)
 
        /* configure SD DAC Output 2 and SD DAC Output 1 bit to zero */
        val = state->reg82 & (SD_DAC_1_DI & SD_DAC_2_DI);
+
+       if (state->pdata && state->pdata->sd_config.sd_dac_out1)
+               val = val | (state->pdata->sd_config.sd_dac_out1 << 1);
+       else if (state->pdata && !state->pdata->sd_config.sd_dac_out1)
+               val = val & ~(state->pdata->sd_config.sd_dac_out1 << 1);
+
+       if (state->pdata && state->pdata->sd_config.sd_dac_out2)
+               val = val | (state->pdata->sd_config.sd_dac_out2 << 2);
+       else if (state->pdata && !state->pdata->sd_config.sd_dac_out2)
+               val = val & ~(state->pdata->sd_config.sd_dac_out2 << 2);
+
        err = adv7343_write(sd, ADV7343_SD_MODE_REG2, val);
        if (err < 0)
                goto setoutput_exit;
        if (state == NULL)
                return -ENOMEM;
 
+       /* Copy board specific information here */
+       state->pdata = client->dev.platform_data;
+
        state->reg00    = 0x80;
        state->reg01    = 0x00;
        state->reg02    = 0x20;
 
 #define ADV7343_COMPONENT_ID   (1)
 #define ADV7343_SVIDEO_ID      (2)
 
+/**
+ * adv7343_power_mode - power mode configuration.
+ * @sleep_mode: on enable the current consumption is reduced to micro ampere
+ *             level. All DACs and the internal PLL circuit are disabled.
+ *             Registers can be read from and written in sleep mode.
+ * @pll_control: PLL and oversampling control. This control allows internal
+ *              PLL 1 circuit to be powered down and the oversampling to be
+ *              switched off.
+ * @dac_1: power on/off DAC 1.
+ * @dac_2: power on/off DAC 2.
+ * @dac_3: power on/off DAC 3.
+ * @dac_4: power on/off DAC 4.
+ * @dac_5: power on/off DAC 5.
+ * @dac_6: power on/off DAC 6.
+ *
+ * Power mode register (Register 0x0), for more info refer REGISTER MAP ACCESS
+ * section of datasheet[1], table 17 page no 30.
+ *
+ * [1] http://www.analog.com/static/imported-files/data_sheets/ADV7342_7343.pdf
+ */
+struct adv7343_power_mode {
+       bool sleep_mode;
+       bool pll_control;
+       bool dac_1;
+       bool dac_2;
+       bool dac_3;
+       bool dac_4;
+       bool dac_5;
+       bool dac_6;
+};
+
+/**
+ * struct adv7343_sd_config - SD Only Output Configuration.
+ * @sd_dac_out1: Configure SD DAC Output 1.
+ * @sd_dac_out2: Configure SD DAC Output 2.
+ */
+struct adv7343_sd_config {
+       /* SD only Output Configuration */
+       bool sd_dac_out1;
+       bool sd_dac_out2;
+};
+
+/**
+ * struct adv7343_platform_data - Platform data values and access functions.
+ * @mode_config: Configuration for power mode.
+ * @sd_config: SD Only Configuration.
+ */
+struct adv7343_platform_data {
+       struct adv7343_power_mode mode_config;
+       struct adv7343_sd_config sd_config;
+};
+
 #endif                         /* End of #ifndef ADV7343_H */