<?xml version="1.0" encoding="utf-8" ?>
<!--========================================================================-->
<!-- Copyright (c) 2017-2021 Qualcomm Technologies, Inc.                    -->
<!-- All Rights Reserved.                                                   -->
<!-- Confidential and Proprietary - Qualcomm Technologies, Inc.             -->
<!--========================================================================-->
<sensorDriverData
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="../../../../api/sensor/camxsensordriver.xsd">
  <module_version major_revision="1" minor_revision="0" incr_revision="0"/>

  <!--Sensor slave information --> 
  <slaveInfo>
    <!--Name of the sensor -->
    <sensorName>ds90ub954_ar0544</sensorName>
    <!--8-bit or 10-bit write slave address -->
    <slaveAddress>0x60</slaveAddress>
    <!--Register address / data size in bytes -->
    <regAddrType range="[1,4]">1</regAddrType>
    <!--Register address / data size in bytes -->
    <regDataType range="[1,4]">1</regDataType>
    <!--Register address for sensor Id -->
    <sensorIdRegAddr>0x03</sensorIdRegAddr>
    <!--Sensor Id -->
    <sensorId>0x20</sensorId>
    <!--Mask for sensor id. Sensor Id may only be few bits -->
    <sensorIdMask>4294967295</sensorIdMask>
    <!--I2C frequency mode of slave
        Supported modes are: STANDARD (100 KHz), FAST (400 KHz), FAST_PLUS (1 MHz), CUSTOM (Custom frequency in DTSI), rapidise - can be tested with FAST_PLUS -->
    <i2cFrequencyMode>FAST</i2cFrequencyMode>
    <!--Sequence of power configuration type and configuration value required to control power to the device -->
    <powerUpSequence>
      <!--Power setting configuration
          Contains: configType, configValue and delay in milli seconds -->
      <powerSetting>
        <configType>VANA</configType>
        <configValue>0</configValue>
        <delayMs>3</delayMs>
      </powerSetting>
       <powerSetting>
        <configType>CUSTOM_GPIO1</configType>
        <configValue>1</configValue>
        <delayMs>5</delayMs>
      </powerSetting>
      <powerSetting>
        <configType>MCLK</configType>
        <configValue>24000000</configValue>
        <delayMs>1</delayMs>
      </powerSetting>
    </powerUpSequence>
    <powerDownSequence>
      <powerSetting>
        <configType>MCLK</configType>
        <configValue>0</configValue> 
        <delayMs>1</delayMs>
      </powerSetting>
       <powerSetting>
        <configType>CUSTOM_GPIO1</configType>
        <configValue>0</configValue>
        <delayMs>5</delayMs>
      </powerSetting>
      <powerSetting>
        <configType>VANA</configType>
        <configValue>0</configValue>
        <delayMs>1</delayMs>
      </powerSetting>
    </powerDownSequence>
  </slaveInfo>
  <!--Addresses for various sensor registers -->
  <regAddrInfo>
    <!--Register address to program width -->
    <xOutput></xOutput>
    <!--Register address to program height -->
    <yOutput></yOutput>
    <!--Register address to program Frame length lines -->
    <frameLengthLines></frameLengthLines>
    <!--Register address to program Line length pixel clock -->
    <lineLengthPixelClock></lineLengthPixelClock>
    <!--Register address to program coarse integration time -->
    <coarseIntgTimeAddr></coarseIntgTimeAddr>
    <!--Register address to program short coarse integration time
        This address is optional and must be provided if supported by sensor -->
    <shortCoarseIntgTimeAddr></shortCoarseIntgTimeAddr>
    <!-- Register address to program global gain channel -->
    <globalGainAddr></globalGainAddr>
    <!--Register address to program short global gain channel
        This address is optional and must be provided if supported by sensor -->
    <shortGlobalGainAddr></shortGlobalGainAddr>
    <!--Register address to program digital gloabl gain channel
        This address is optional and must be provided if supported by sensor -->
    <digitalGlobalGainAddr></digitalGlobalGainAddr>
    <!--Register address to program manual test pattern value for Red channel -->
    <testPatternRAddr></testPatternRAddr>
    <!--Register address to program manual test pattern value for Green Red channel -->
    <testPatternGRAddr></testPatternGRAddr>
    <!--Register address to program manual test pattern value for Blue channel -->
    <testPatternBAddr></testPatternBAddr>
    <!--Register address to program manual test pattern value for Green Blue channel -->
    <testPatternGBAddr></testPatternGBAddr>
   </regAddrInfo>      
   <resolutionInfo>
      <!--res0 MIPI output for NORMAL mode (WxH: 1600 * 1200, V1xH1, @30fps) (reg_A from ver1.00-4.01_200129)-->
      <resolutionData>
        <!--Color filter arrangement of the sensor
            Supported filter arrangements are: BAYER_BGGR, BAYER_GBRG, BAYER_GRBG, BAYER_RGGB, BAYER_Y, YUV_UYVY, YUV_YUYV -->
        <colorFilterArrangement>BAYER_RGGB</colorFilterArrangement>
        <!--Stream information -->
        <streamInfo>
          <streamConfiguration>
            <!--Virtual Channel of the data
                Valid values for virtual channel are: 0, 1, 2 and 3 -->
            <vc>0</vc>
            <!--Data type of the stream. Default value is 0x2B (10-bit RAW) -->
            <dt>0x2B</dt>
            <!--Frame dimension: contains xStart, yStart, width and height -->
            <frameDimension>
              <xStart>0</xStart>
              <yStart>0</yStart>
              <width>1920</width>
              <height>1080</height>
            </frameDimension>
            <!--Bit width of the data -->
            <bitWidth>10</bitWidth>
          <!--Type of the stream
              Supported stream types are: BLOB, IMAGE, PDAF, HDR, META, IMAGE_LONG -->
            <type>IMAGE</type>
          </streamConfiguration>
        </streamInfo>
        <!--Line length pixel clock of frame
            Typically this value is the active width + blanking width -->
        <lineLengthPixelClock>2200</lineLengthPixelClock>
        <!--Frame length lines of frame
          Typically this value is the active height + blanking height -->
        <frameLengthLines>1125</frameLengthLines>
        <!--Minimum horizontal blanking interval in pixels -->
        <minHorizontalBlanking>280</minHorizontalBlanking>
        <!--Minimum horizontal blanking interval in lines -->
        <minVerticalBlanking>45</minVerticalBlanking>
        <!--Output pixel clock -->
        <outputPixelClock>74250000</outputPixelClock>
        <!--Horizontal binning value -->
        <horizontalBinning>1</horizontalBinning>
        <!--Vertical binning value -->
        <verticalBinning>1</verticalBinning>
        <!--Maximum frame rate -->
        <frameRate>30</frameRate>
        <!--Number of lanes in which the data is streamed -->
        <downScaleFactor>1.0</downScaleFactor>
        <laneCount>4</laneCount>
        <!--Settle time in nano seconds -->
        <settleTimeNs>25</settleTimeNs>
        <!--Flag to know if the sensor is a 3phase sensor --> 
       <is3Phase>0</is3Phase>
       <!-- PTRN_GEN : Indirect access select -->
       <resSettings>
          <!-- Digital reset of Deser -->
         <regSetting>
            <slaveAddr>0x60</slaveAddr>
            <registerAddr>0x01</registerAddr>
            <registerData>0x01</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
            <regDataType range="[1,4]">1</regDataType>
            <operation>WRITE</operation>
            <delayUs>0x1000</delayUs>
          </regSetting>
          <!-- CSI_CTL - 2 lanes, Normal mode, CSI non continous mode, Enable CSI output  -->
          <regSetting>
            <slaveAddr>0x60</slaveAddr>
            <registerAddr>0x33</registerAddr>
            <registerData>0x01</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
             <regDataType range="[1,4]">1</regDataType>
            <operation>WRITE</operation>
            <delayUs>0x10</delayUs>
          </regSetting>
          <!--Force ref clock of external clock -->
          <!--regSetting>
            <slaveAddr>0x60</slaveAddr>
            <registerAddr>0x02</registerAddr>
            <registerData>0x1F</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
            <regDataType range="[1,4]">1</regDataType>
            <operation>WRITE</operation>
            <delayUs>0x10</delayUs>
          </regSetting-->
          <!-- Disable RX Port forwarding on RX0 and RX1 first -->
          <regSetting>
            <slaveAddr>0x60</slaveAddr>
            <registerAddr>0x20</registerAddr>
            <registerData>0x30</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
            <regDataType range="[1,4]">1</regDataType> 
            <operation>WRITE</operation>
            <delayUs>0x10</delayUs>
         </regSetting>
          <!-- CSI_TX_SPEED - 800 Mbps serial rate -->
         <!--regSetting>
           <slaveAddr>0x60</slaveAddr>
           <registerAddr>0x1F</registerAddr>
           <registerData>0x02</registerData>
           <regAddrType range="[1,4]">1</regAddrType>
           <regDataType range="[1,4]">1</regDataType>
           <operation>WRITE</operation>
           <delayUs>0x100</delayUs>
         </regSetting-->
	 <regSetting>
           <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB0</registerAddr>
	   <registerData>0x00</registerData>
           <regAddrType range="[1,4]">1</regAddrType>
           <regDataType range="[1,4]">1</regDataType>
           <operation>WRITE</operation>
           <delayUs>0x10</delayUs>
         </regSetting>
	<!-- PTRN_GEN : 8 Color bar, 5 block size -->
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB1</registerAddr>
	   <registerData>0x02</registerData>
	   <regAddrType range="[1,4]">1</regAddrType>
	   <regDataType range="[1,4]">1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>0x0</delayUs>
	 </regSetting>
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB2</registerAddr>
	   <registerData>0x35</registerData>
	   <regAddrType range="[1,4]">1</regAddrType>
	   <regDataType range="[1,4]">1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>0x0</delayUs>
	  </regSetting>
	<!-- PTRN_GEN : CSI2 DT - RAW10 VC 0-->
	<regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB1</registerAddr>
	   <registerData>0x03</registerData>
	   <regAddrType range="[1,4]">1</regAddrType>
	   <regDataType range="[1,4]">1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x2B</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	   <!-- PTRN_GEN :  line size 2400, considering (1920*5)/4-->
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
 	    <registerAddr>0xB1</registerAddr>
	    <registerData>0x04</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x09</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
	    <registerData>0x05</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x60</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <!-- Color Bar size = 300, considering 2400/8 -->
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x06</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x01</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x07</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x2C</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <!-- Active lines per frame = 1080 = 0x0438 -->
	   <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x08</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x04</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x09</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x38</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <!-- Total lines = 1125 = 0x0465 -->
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x0A</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x04</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x0B</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x62</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <!--Line period - 2963, considering 1/(30x1125x10ns)-->
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x0C</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x0B</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
          <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x0D</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x9B</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <!-- Vertical Back Porch : 36-->
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x0E</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x24</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <!-- Vertical Front Porch : 4-->
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x0F</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x04</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x10</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0xAA</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x11</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x33</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x12</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0xF0</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x13</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x7F</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x14</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x55</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x15</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0xCC</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x16</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x0F</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x17</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x80</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x18</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x00</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x19</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x00</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x1A</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x00</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x1B</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x00</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x1C</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x00</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x1D</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x00</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB1</registerAddr>
 	    <registerData>0x1E</registerData>
            <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	    <slaveAddr>0x60</slaveAddr>
	    <registerAddr>0xB2</registerAddr>
	    <registerData>0x00</registerData>
	    <regAddrType range="[1,4]">1</regAddrType>
	    <regDataType range="[1,4]">1</regDataType>
	    <operation>WRITE</operation>
	    <delayUs>0x0</delayUs>
	  </regSetting>
	  <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB1</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>1</delayUs>
	 </regSetting>
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB2</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>10000</delayUs>
	 </regSetting>
      </resSettings>
      <cropInfo>
        <left>0</left>
        <right>0</right>
        <top>0</top>
        <bottom>0</bottom>
      </cropInfo>
      <!--List of features / capabilities supported by sensor -->
      <capability>NORMAL</capability>
    <exposureInfo>
      <!-- element for exposure type for which this information is being updated -->
        <exposureType>DEFAULT</exposureType>
        <!-- element for coarseIntgTimeAddr -->
        <coarseIntgTimeAddr>0x0202</coarseIntgTimeAddr>
        <!-- element for analog globalGainAddr -->
        <globalGainAddr>0x3410</globalGainAddr>
        <!-- element for digitalGlobalGainAddr -->
        <digitalGlobalGainAddr>0x36C0</digitalGlobalGainAddr>
        <!-- element for maximum linecount -->
        <maxLineCount>3050</maxLineCount>
        <!-- element for minimum linecount -->
        <minLineCount>8</minLineCount>
      </exposureInfo>
    </resolutionData>
  </resolutionInfo>
  <!--Exposure control information -->
  <exposureControlInfo>
    <maxAnalogGain>50.625</maxAnalogGain>
    <maxDigitalGain>0</maxDigitalGain>
    <verticalOffset>10</verticalOffset>
    <maxLineCount>65535</maxLineCount>
    <minLineCount>1</minLineCount>
    <!--Conversion factor to convert real digital gain to register digital gain -->
    <realToRegDigitalGainConversionFactor>1</realToRegDigitalGainConversionFactor>
    <realToRegGain>0</realToRegGain>
    <regToRealGain>0</regToRealGain>
    </exposureControlInfo>
    <streamOnSettings>
      <!-- PTRN_GEN : Pattern generation enable -->
        <!--regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB1</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>1</delayUs>
	 </regSetting>
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB2</registerAddr>
	   <registerData>0x00</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>1</delayUs>
	 </regSetting-->
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB1</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>1</delayUs>
	 </regSetting>
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB2</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>10000</delayUs>
	 </regSetting>
    </streamOnSettings>
    <streamOffSettings>
  <!-- PTRN_GEN : Pattern generation enable -->
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB1</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>10</delayUs>
	 </regSetting>
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB2</registerAddr>
	   <registerData>0x00</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>20</delayUs>
	 </regSetting>
  </streamOffSettings>
  <!--Sequence of register settings to configure the device -->
  <groupHoldOnSettings>
  </groupHoldOnSettings>
  <groupHoldOffSettings>
  </groupHoldOffSettings>
  <initSettings>
    <initSetting>
    </initSetting>
  </initSettings>
  <testPatternInfo>
    <testPatternData>
      <mode>OFF</mode>
      <settings>
        <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB1</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>10</delayUs>
	 </regSetting>
	 <regSetting>
	   <slaveAddr>0x60</slaveAddr>
	   <registerAddr>0xB2</registerAddr>
	   <registerData>0x01</registerData>
	   <regAddrType>1</regAddrType>
	   <regDataType>1</regDataType>
	   <operation>WRITE</operation>
	   <delayUs>2000</delayUs>
	 </regSetting>
      </settings>
    </testPatternData>
  </testPatternInfo>
  <gmslInfo>
    <isGmslModule>0</isGmslModule>
    <!--Gmsl dual mode version index. this should be same as dual mode INIT, RES etc version -->
    <desSlaveAddr></desSlaveAddr>
    <desRevAddr></desRevAddr>
    <desChipIdAddr></desChipIdAddr>
    <serSlaveAddr></serSlaveAddr>
    <serChipIdAddr></serChipIdAddr>
    <sensorSlaveAddr></sensorSlaveAddr>
    <sensorChipIdAddr></sensorChipIdAddr>
    <serAliasInfo>
      <aliasAddr></aliasAddr>
    </serAliasInfo>
    <sensorAliasInfo>
      <aliasAddr></aliasAddr>
    </sensorAliasInfo>
     <enablePortAClockSettings>
    </enablePortAClockSettings>
    <sensorAStartSettings>
    </sensorAStartSettings>
    <streamOnSettings>
      <gmslSetting>
      </gmslSetting>
    </streamOnSettings>
    <streamOffSettings>
      <gmslSetting>
      </gmslSetting>
    </streamOffSettings>
  </gmslInfo>
  <colorLevelInfo>
    <!--White level value -->
    <whiteLevel>1023</whiteLevel>
    <!--Pedestal value for Red channel -->
    <rPedestal>64</rPedestal>
    <!--Pedestal value for GreenRed channel -->
    <grPedestal>64</grPedestal>
    <!--Pedestal value for Blue channel -->
    <bPedestal>64</bPedestal>
    <!--Pedestal value for Green Blue channel -->
    <gbPedestal>64</gbPedestal>
  </colorLevelInfo>
  <opticalBlackRegionInfo>
    <!--Frame dimension: contains xStart, yStart, width and height -->
    <dimension>
      <xStart>0</xStart>
      <yStart>0</yStart>
      <width>0</width>
      <height>0</height>
    </dimension>
  </opticalBlackRegionInfo>
  <!--Information about the pixel array
      Active dimension and dummy pixels width are provided -->
  <pixelArrayInfo>
    <!--Width and height of the frame or subframe -->
    <activeDimension>
      <width>1920</width>
      <height>1080</height>
    </activeDimension>
    <!--Dummy pixels surrounding the active pixel array -->
    <dummyInfo>
      <left>0</left>
      <right>0</right>
      <top>0</top>
      <bottom>0</bottom>
    </dummyInfo>
  </pixelArrayInfo>
  <!--Application delay information -->
  <delayInfo>
    <!--Number of frames required to apply the linecount -->
    <linecount>0</linecount>
    <!--Number of frames required to apply the gain -->
    <gain>0</gain>
    <!--Maximum pipeline delay in number of frames -->
    <maxPipeline>2</maxPipeline>
    <!--Number of frames to skip -->
    <frameSkip>1</frameSkip>
  </delayInfo>
  <sensorProperty>
    <!--Pixel size in micro meters -->
    <pixelSize>1.4</pixelSize>
    <!--Crop factor -->
    <cropFactor>1.0</cropFactor>
    <!--Sensing method of senosor
        Supported sensing methods: UNDEFINED, ONE_CHIP_COLOR_AREA, TWO_CHIP_COLOR_AREA
        THREE_CHIP_COLOR_AREA, COLOR_SEQUENCE_AREA, TRILINEAR, COLOR_SEQUENCE_LINEAR -->
    <sensingMethod>ONE_CHIP_COLOR_AREA</sensingMethod>
  </sensorProperty>
  <noiseCoefficent>
    <gradient_S>3.738032e-06</gradient_S>
    <offset_S>3.651935e-04</offset_S>
    <gradient_O>4.499952e-07</gradient_O>
    <offset_O>-2.968624e-04</offset_O>
  </noiseCoefficent>
</sensorDriverData>
