<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright (C) 2017 Intel Corporation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<CameraSettings>
    <Profiles cameraId="0" name="imx258">
        <Supported_hardware>
            <hwType value="SUPPORTED_HW_IPU3"/>
        </Supported_hardware>

        <Android_metadata> <!-- Android static metadata only -->
            <!-- Color Correction -->
            <colorCorrection.availableAberrationModes value="OFF"/>
            <!-- Control -->
            <control.availableModes value="AUTO"/>
            <control.aeAvailableAntibandingModes value="OFF,50HZ,60Hz,AUTO"/>
            <control.aeAvailableModes value="OFF,ON"/>
            <control.aeLockAvailable value="TRUE"/>
            <control.aeAvailableTargetFpsRanges value="15,30,30,30"/>
            <control.aeCompensationRange value="0,0"/>
            <control.aeCompensationStep value="0,1"/>
            <control.afAvailableModes value="OFF,AUTO,CONTINUOUS_VIDEO,CONTINUOUS_PICTURE"/>
            <control.availableEffects value="OFF"/>
            <control.awbAvailableModes value="AUTO"/>
            <control.awbLockAvailable value="TRUE"/>
            <control.availableSceneModes value="DISABLED"/>
            <control.availableVideoStabilizationModes value="OFF"/>
            <control.maxRegions value="1,0,1"/>
            <!-- EDGE -->
            <edge.availableEdgeModes value="OFF"/>
            <!-- JPEG -->
            <jpeg.maxSize value="19869696"/>  <!-- 4224*3136*1.5 -->
            <jpeg.availableThumbnailSizes value="0,0,160,120,320,180,320,240"/> <!-- INCREASING ORDER -->
            <!-- Lens Info-->
            <lens.info.availableApertures value="0.0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.availableFilterDensities value="0.0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.availableFocalLengths value="3.65"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.availableOpticalStabilization value="OFF"/> <!-- OPTIONS: OFF, ON -->
            <lens.info.hyperfocalDistance value="0.0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.minimumFocusDistance value="0.1"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.shadingMapSize value="0,0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.focusDistanceCalibration value="APPROXIMATE"/>
            <!-- Lens -->
            <lens.facing value="BACK"/>
            <!-- Request -->
            <request.maxNumOutputStreams value="0,2,1"/>
            <request.pipelineMaxDepth value="6"/>
            <request.maxNumInputStreams value="0"/>
            <request.partialResultCount value="1"/>
            <request.availableCapabilities value="BACKWARD_COMPATIBLE"/>
            <request.availableRequestKeys value="blackLevel.lock,
                colorCorrection.aberrationMode,
                colorCorrection.gains,
                colorCorrection.transform,
                control.aeAntibandingMode,
                control.aeExposureCompensation,
                control.aeLock,
                control.aeMode,
                control.aeTargetFpsRange,
                control.afMode,
                control.aeRegions,
                control.afRegions,
                control.afTrigger,
                control.awbLock,
                control.awbMode,
                control.captureIntent,
                control.effectMode,
                control.mode,
                control.sceneMode,
                control.videoStabilizationMode,
                edge.mode,
                flash.mode,
                jpeg.gpsLocation,
                jpeg.orientation,
                jpeg.quality,
                jpeg.thumbnailQuality,
                jpeg.thumbnailSize,
                scaler.cropRegion,
                statistics.faceDetectMode,
                hotPixel.mode,
                lens.focalLength,
                lens.aperture,
                lens.focusDistance,
                lens.filterDensity,
                lens.opticalStabilizationMode,
                noiseReduction.mode,
                tonemap.curve"/>

            <request.availableResultKeys value="colorCorrection.mode,
                colorCorrection.transform,
                colorCorrection.gains,
                colorCorrection.aberrationCorrectionMode,
                control.aeAntibandingMode,
                control.aeExposureCompensation,
                control.aeLock,
                control.aeMode,
                control.aeTargetFpsRange,
                control.aePrecaptureTrigger,
                control.afMode,
                control.afRegions,
                control.afTrigger,
                control.awbLock,
                control.awbMode,
                control.captureIntent,
                control.effectMode,
                control.mode,
                control.sceneMode,
                control.videoStabilizationMode,
                control.aeState,
                control.afState,
                control.awbState,
                sync.frameNumber,
                edge.mode,
                flash.mode,
                hotPixel.mode,
                jpeg.gpsLocation,
                jpeg.orientation,
                jpeg.quality,
                jpeg.thumbnailQuality,
                jpeg.thumbnailSize,
                lens.focalLength,
                lens.aperture,
                lens.filterDensity,
                lens.focusDistance,
                lens.opticalStabilizationMode,
                request.pipelineDepth,
                scaler.cropRegion,
                sensor.testPatternData,
                sensor.testPatternMode,
                sensor.timestamp,
                sensor.rollingShutterSkew,
                shading.mode,
                statistics.faceDetectMode,
                statistics.hotPixelMapMode,
                statistics.hotPixelMap,
                statistics.faces,
                statistics.lensShadingCorrectionMap,
                statistics.sceneFlicker,
                statistics.lensShadingMapMode,
                noiseReduction.mode,
                tonemap.curve"/>
            <request.availableCharacteristicsKeys value="0"/>
            <!-- Scaler -->
            <scaler.availableMaxDigitalZoom value="1.0"/>
            <scaler.availableInputOutputFormatsMap value="IMPLEMENTATION_DEFINED,2,YCbCr_420_888,BLOB"/>
            <scaler.availableStreamConfigurations value="BLOB,4096x3072,OUTPUT,
                BLOB,1920x1080,OUTPUT,
                BLOB,1600x1200,OUTPUT,
                BLOB,1280x960,OUTPUT,
                BLOB,1280x720,OUTPUT,
                BLOB,640x480,OUTPUT,
                BLOB,320x240,OUTPUT,
                YCbCr_420_888,1920x1080,OUTPUT,
                YCbCr_420_888,1600x1200,OUTPUT,
                YCbCr_420_888,1280x960,OUTPUT,
                YCbCr_420_888,1280x720,OUTPUT,
                YCbCr_420_888,640x480,OUTPUT,
                YCbCr_420_888,320x240,OUTPUT,
                IMPLEMENTATION_DEFINED,1920x1080,OUTPUT,
                IMPLEMENTATION_DEFINED,1600x1200,OUTPUT,
                IMPLEMENTATION_DEFINED,1280x960,OUTPUT,
                IMPLEMENTATION_DEFINED,1280x720,OUTPUT,
                IMPLEMENTATION_DEFINED,640x480,OUTPUT,
                IMPLEMENTATION_DEFINED,320x240,OUTPUT" />
            <scaler.availableMinFrameDurations value="BLOB,4096x3072,41666666,
                BLOB,1920x1080,33333333,
                BLOB,1600x1200,33333333,
                BLOB,1280x960,33333333,
                BLOB,1280x720,33333333,
                BLOB,640x480,33333333,
                BLOB,320x240,33333333,
                YCbCr_420_888,1920x1080,33333333,
                YCbCr_420_888,1600x1200,33333333,
                YCbCr_420_888,1280x960,33333333,
                YCbCr_420_888,1280x720,33333333,
                YCbCr_420_888,640x480,33333333,
                YCbCr_420_888,320x240,33333333,
                IMPLEMENTATION_DEFINED,1920x1080,33333333,
                IMPLEMENTATION_DEFINED,1600x1200,33333333,
                IMPLEMENTATION_DEFINED,1280x960,33333333,
                IMPLEMENTATION_DEFINED,1280x720,33333333,
                IMPLEMENTATION_DEFINED,640x480,33333333,
                IMPLEMENTATION_DEFINED,320x240,33333333" />
            <scaler.availableStallDurations value="BLOB,4096x3072,41666666,
                                                   BLOB,1920x1080,33333333,
                                                   BLOB,1600x1200,33333333,
                                                   BLOB,1280x960,33333333,
                                                   BLOB,1280x720,33333333,
                                                   BLOB,640x480,33333333,
                                                   BLOB,320x240,33333333" />
            <scaler.croppingType value="CENTER_ONLY"/>
            <!-- Sensor Info -->
            <sensor.info.activeArraySize value="0,0,4208,3118"/>
            <sensor.info.sensitivityRange value="32,2400"/>
            <sensor.info.colorFilterArrangement value="GRBG"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.info.exposureTimeRange value="100000,200000000"/>
            <sensor.info.maxFrameDuration value="200000000"/>
            <sensor.info.physicalSize value="4.71,3.49"/> <!-- 4208x1.12um 3120x1.12um -->
            <sensor.info.pixelArraySize value="4208x3118"/>
            <sensor.info.whiteLevel value="0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.info.timestampSource value="UNKNOWN"/>
            <!-- Sensor -->
            <sensor.baseGainFactor value="0,1"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.blackLevelPattern value="0,0,0,0"/>
            <sensor.maxAnalogSensitivity value="0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.orientation value="0"/>
            <sensor.profileHueSatMapDimensions value="0,0,0"/>
            <sensor.availableTestPatternModes value="OFF,COLOR_BARS"/>
            <!-- Info -->
            <info.supportedHardwareLevel value="LIMITED"/>
            <!-- shading -->
            <shading.availableModes value="OFF"/>
            <!-- Statistics Info -->
            <statistics.info.availableFaceDetectModes value="OFF"/>
            <statistics.info.histogramBucketCount value="0"/>
            <statistics.info.maxFaceCount value="0"/>
            <statistics.info.maxHistogramCount value="0"/>
            <statistics.info.maxSharpnessMapValue value="0"/>
            <statistics.info.sharpnessMapSize value="0,0"/>
            <statistics.info.availableHotPixelMapModes value="OFF"/>
            <statistics.info.availableLensShadingMapModes value="OFF"/>
            <!-- Tonemap -->
            <tonemap.maxCurvePoints value="1024"/>
            <!-- Flash -->
            <flash.colorTemperature value="0"/>
            <flash.maxEnergy value="0"/>
            <!-- Flash info -->
            <flash.info.available value="FALSE"/>
            <flash.info.chargeDuration value="1000000"/>
            <flash.maxEnergy value="10"/>
            <!-- Sync -->
            <sync.maxLatency value="PER_FRAME_CONTROL"/>
            <!-- Hot Pixel -->
            <hotPixel.availableHotPixelModes value="OFF"/>
            <!-- Noise Reduction -->
            <noiseReduction.availableNoiseReductionModes value="OFF"/>

        </Android_metadata>

<!-- ******************PSL specific section start **************************************************************-->
        <Hal_tuning_IPU3> <!-- Parameters to tune the HAL and hacks for the HAL that are camera dependent -->
            <flipping value="" value_v=""/> <!-- value: SENSOR_FLIP_H or "", value_v: SENSOR_FLIP_V or "" -->
            <supportIsoMap value="false"/>
            <graphSettingsFile value="graph_settings_imx258.xml"/>
        </Hal_tuning_IPU3>

        <Sensor_info_IPU3> <!-- Information that parametrizes the behavior or qualities of the physical sensor -->
            <sensorType value="SENSOR_TYPE_RAW"/> <!-- SENSOR_TYPE_SOC or SENSOR_TYPE_RAW -->
            <exposure.sync value="true"/> <!-- compensate expsure sync-->
            <sensor.digitalGain value="true"/> <!-- digital gain support on sensor-->
            <gain.lag value="2"/> <!-- camera3 HAL CPF parameters moved here start-->
            <exposure.lag value="2"/>
            <fov value= "54.8" value_v="42.5"/>
            <statistics.initialSkip value="1"/> <!-- camera3 HAL CPF parameters moved here end-->
            <frame.initialSkip value="3"/> <!-- camera3 HAL CPF parameters moved here end-->
            <isoAnalogGain1 value="36"/> <!--Pseudo ISO corresponding analog gain value 1.0. -->
            <cITMaxMargin value="10"/> <!--coarse integration time max margin -->
            <nvmDirectory value="i2c-INT3499:00"/> <!--location of the NVM data-->
            <sensor.testPatternMap value="Off,0,ColorBars,2"/>
        </Sensor_info_IPU3>

        <MediaCtl_elements_IPU3>
            <element name="imx258" type="pixel_array"/> <!-- HAL will append Bus id for element name "imx258 8-0010" -->
            <element name="ipu3-csi2 1" type="csi_receiver"/>
            <element name="dw9807" type="lens"/>
        </MediaCtl_elements_IPU3>

<!-- ******************PSL specific section end **************************************************************-->
    </Profiles>

<!-- ******************PSL specific section end **************************************************************-->

    <hal_tuning> <!-- Parameters to tune the HAL that are camera independent but common across PSL's -->
        <!-- gfxHalToV4L2PixelFmtTable
          This table encodes the agreement between the Camera HAL and the
          Gfx and video HAL's. It maps the gfxHAL pixel formats (that the client
          can request for a stream) to concrete V4L2 pixel formats that
          the Camera HW can provide.
          This is needed for several reasons:
          - the pixel layout is not well defined (implementation_defined)
          - the pixel layout changes from sensor to sensor (RAW)
          Most entries are camera independent but some are not.
          For camera dependent entries sensorId field is used.
        -->
        <gfxHalToV4L2PixelFmtTable.impl_defined_preview value="V4L2_PIX_FMT_NV21"/>
        <gfxHalToV4L2PixelFmtTable.impl_defined_video value="V4L2_PIX_FMT_NV21"/>
        <gfxHalToV4L2PixelFmtTable.raw_sensor sensorId="0" value="V4L2_PIX_FMT_SGRBG10"/>
        <gfxHalToV4L2PixelFmtTable.ycbcr_420_888 value="V4L2_PIX_FMT_NV21"/>
    </hal_tuning>

    <Common> <!-- Common parameters of camera -->
    </Common>
</CameraSettings>

