<!--
  Copyright (c) 2015-2016 Qualcomm Technologies, Inc.
  All Rights Reserved.
  Confidential and Proprietary - Qualcomm Technologies, Inc.
-->

<!--
CommonChromatixInfo:
	CommonChromatixInfo is the information about chromatix needed for
		various use cases.
	Ex:- Preview, Snapshot, ZSL, HFR, HDR, Video, Liveshot for ISP, CPP,
		3A and SW PostProc.
	Entries in this node are common for all sensor modes.

ResolutionChromatixInfo:
	ResolutionChromatixInfo is the information about chromatix needed for
		various use cases.
	Ex:- Preview, Snapshot, ZSL, HFR, HDR, Video, Liveshot for ISP, CPP,
		3A and SW PostProc.
	Entries in this node are specific to sensor resolution.

ChromatixName:
	Contains the list of chromatix names for all modules.
	special_mode_mask:
		It is the bit mask for special modes, which is used for
			chromatix selection.
		Special modes can be any mode that needs a special chromatix.
		Ex:- scene mode, DZOOM mode, OIS capture mode, flash mode
		This is applicable for CommonChromatixInfo and
			ResolutionChromatixInfo.
		special_mode_mask="0" means none of the special modes are
			selected.
	sensor_resolution_index:
		It is the sensor resolution index for which chromatix libraries
			will be choosen.
		It is applicable only in ResolutionChromatixInfo.

ISPCommon :
	Common tuning library name for ISP
ISPPreview :
	Preview tuning library name for ISP
ISPSnapshot :
	Snapshot tuning library name for ISP
CPPCommon :
	Common tuning library name for CPP
CPPPreview :
	Preview tuning library name for CPP
CPPSnapshot :
	Snapshot tuning library name for CPP
CPPLiveshot :
	Liveshot tuning library name for CPP
PostProc :
	Tuning library name for postproc module
A3Preview :
	Preview tuning library for 3A
A3Video :
	Video tuning library for 3A

Order of Resolution Pick:
	Assume the current sensor mode is "r" and special mode mask is "s".
	Chromatix for a module and type is choosen in this order till we find a
		valid chroamtix file name or else NULL is returned.
	1) From ResolutionChromatixInfo node for which sensor_resolution_index
		is "r" and special_mode_mask is "s".
	2) From CommonChromatixInfo node for which special_mode_mask is "s".
	3) From ResolutionChromatixInfo node for which sensor_resolution_index
		is "r" and special_mode_mask is "0".
	4) From CommonChromatixInfo node for which special_mode_mask is "0".
	5) NULL is returned if we dont find in any of the above cases.

special_mode_mask has values from this list:
	"FLASH"
	"ZOOM_UPSCALE"
	"ZOOM_DOWNSCALE"
	"OIS_CAPTURE"
	"ISO_100"
	"ISO_200"
	"ISO_400"
	"ISO_800"
	"ISO_1600"
	"DIM_720P"
	"DIM_1080P"
	"DIM_UHD"
	"SCENE_LANDSCAPE"
	"SCENE_SNOW"
	"SCENE_BEACH"
	"SCENE_SUNSET"
	"SCENE_NIGHT"
	"SCENE_PORTRAIT"
	"SCENE_BACKLIGHT"
	"SCENE_SPORTS"
	"SCENE_ANTISHAKE"
	"SCENE_FLOWERS"
	"SCENE_CANDLELIGHT"
	"SCENE_FIREWORKS"
	"SCENE_PARTY"
	"SCENE_NIGHT_PORTRAIT"
	"SCENE_THEATRE"
	"SCENE_ACTION"
	"SCENE_AR"
	"SCENE_FACE_PRIORITY"
	"SCENE_BARCODE"

special_mode_mask:
	special_mode_mask is a string or a group of strings from the above list
		separated by a comma(,) or pipe (|) but not both.
	Multiple strings in special_mode_mask separated by | share same
		chromatix name. It picks the chromatix when any one of the
		modes mentioned in the list ar selected.
	Multiple strings in special_mode_mask separated by , means to use the
		chromatix when all the those modes are selected.
	special_mode_mask can contain any number of special modes delimited by
		, or | but cannot be both.
	Valid usecases:
		"ISO_100|SCENE_BEACH|SCENE_SNOW"
		"ISO_100,SCENE_BEACH,SCENE_SNOW"
	Invalid usecases:
		"ISO_100|SCENE_BEACH,SCENE_SNOW"
		"ISO_100,SCENE_BEACH|SCENE_SNOW"

Creating special_mode_mask examples:
	If a special chromatix is required for ISO100 then
		special_mode_mask="ISO_100"
	If a special chromatix is required when both ISO100 and BEACH are set
		special_mode_mask="ISO_100,SCENE_BEACH"
	If same chromatix is to be used for SPORTS, BEACH, SNOW then
		special_mode_mask="ISO_100|SCENE_BEACH|SCENE_SNOW"
-->

<ChromatixConfigurationRoot>
  <CommonChromatixInfo>
    <ChromatixName>
      <ISPCommon>imx230_common</ISPCommon>
      <PostProc>imx230_postproc</PostProc>
    </ChromatixName>
    <ChromatixName special_mode_mask = "ZOOM_UPSCALE">
      <CPPSnapshot>imx230_cpp_snapshot_upscale</CPPSnapshot>
    </ChromatixName>
    <ChromatixName special_mode_mask = "ZOOM_DOWNSCALE">
      <CPPSnapshot>imx230_cpp_snapshot_downscale</CPPSnapshot>
    </ChromatixName>
  </CommonChromatixInfo>
  <ResolutionChromatixInfo>
    <ChromatixName sensor_resolution_index="0">
      <ISPPreview>imx230_snapshot</ISPPreview>
      <ISPSnapshot>imx230_snapshot</ISPSnapshot>
      <ISPVideo>imx230_snapshot</ISPVideo>
      <CPPPreview>imx230_cpp_preview</CPPPreview>
      <CPPSnapshot>imx230_cpp_snapshot</CPPSnapshot>
      <CPPVideo>imx230_cpp_video</CPPVideo>
      <CPPLiveshot>imx230_cpp_liveshot</CPPLiveshot>
      <A3Preview>imx230_zsl_preview_lc898212xd</A3Preview>
      <A3Video>imx230_zsl_video_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="1">
      <ISPPreview>imx230_snapshot</ISPPreview>
      <ISPSnapshot>imx230_snapshot</ISPSnapshot>
      <ISPVideo>imx230_default_video</ISPVideo>
      <CPPPreview>imx230_cpp_preview</CPPPreview>
      <CPPSnapshot>imx230_cpp_snapshot</CPPSnapshot>
      <CPPVideo>imx230_cpp_video</CPPVideo>
      <CPPLiveshot>imx230_cpp_liveshot</CPPLiveshot>
      <A3Preview>imx230_video_16M_lc898212xd</A3Preview>
      <A3Video>imx230_video_16M_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="2">
      <ISPPreview>imx230_video_4k</ISPPreview>
      <ISPSnapshot>imx230_video_4k</ISPSnapshot>
      <ISPVideo>imx230_video_4k</ISPVideo>
      <CPPPreview>imx230_cpp_preview</CPPPreview>
      <CPPSnapshot>imx230_cpp_snapshot</CPPSnapshot>
      <CPPVideo>imx230_cpp_video_4k</CPPVideo>
      <CPPLiveshot>imx230_cpp_liveshot</CPPLiveshot>
      <A3Preview>imx230_4k_preview_lc898212xd</A3Preview>
      <A3Video>imx230_4k_video_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="3">
      <ISPPreview>imx230_video_4k</ISPPreview>
      <ISPSnapshot>imx230_video_4k</ISPSnapshot>
      <ISPVideo>imx230_video_4k</ISPVideo>
      <CPPPreview>imx230_cpp_preview</CPPPreview>
      <CPPSnapshot>imx230_cpp_snapshot</CPPSnapshot>
      <CPPVideo>imx230_cpp_video_4k</CPPVideo>
      <CPPLiveshot>imx230_cpp_liveshot</CPPLiveshot>
      <A3Preview>imx230_4k_preview_lc898212xd</A3Preview>
      <A3Video>imx230_4k_video_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="4">
      <ISPPreview>imx230_preview</ISPPreview>
      <ISPSnapshot>imx230_preview</ISPSnapshot>
      <ISPVideo>imx230_preview</ISPVideo>
      <CPPPreview>imx230_cpp_preview</CPPPreview>
      <CPPSnapshot>imx230_cpp_snapshot</CPPSnapshot>
      <CPPVideo>imx230_cpp_video</CPPVideo>
      <CPPLiveshot>imx230_cpp_liveshot</CPPLiveshot>
      <A3Preview>imx230_default_preview_lc898212xd</A3Preview>
      <A3Video>imx230_default_video_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="5">
      <ISPPreview>imx230_default_video</ISPPreview>
      <ISPSnapshot>imx230_default_video</ISPSnapshot>
      <ISPVideo>imx230_default_video</ISPVideo>
      <CPPPreview>imx230_cpp_preview</CPPPreview>
      <CPPSnapshot>imx230_cpp_snapshot</CPPSnapshot>
      <CPPVideo>imx230_cpp_video</CPPVideo>
      <CPPLiveshot>imx230_cpp_liveshot</CPPLiveshot>
      <A3Preview>imx230_1080p_video_lc898212xd</A3Preview>
      <A3Video>imx230_1080p_video_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="6">
      <ISPPreview>imx230_hfr_60</ISPPreview>
      <ISPSnapshot>imx230_hfr_60</ISPSnapshot>
      <ISPVideo>imx230_hfr_60</ISPVideo>
      <CPPPreview>imx230_cpp_hfr_60</CPPPreview>
      <CPPSnapshot>imx230_cpp_hfr_60</CPPSnapshot>
      <CPPVideo>imx230_cpp_hfr_60</CPPVideo>
      <CPPLiveshot>imx230_cpp_hfr_60</CPPLiveshot>
      <A3Preview>imx230_hfr_60_lc898212xd</A3Preview>
      <A3Video>imx230_hfr_60_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="7">
      <ISPPreview>imx230_hfr_90</ISPPreview>
      <ISPSnapshot>imx230_hfr_90</ISPSnapshot>
      <ISPVideo>imx230_hfr_90</ISPVideo>
      <CPPPreview>imx230_cpp_hfr_90</CPPPreview>
      <CPPSnapshot>imx230_cpp_hfr_90</CPPSnapshot>
      <CPPVideo>imx230_cpp_hfr_90</CPPVideo>
      <CPPLiveshot>imx230_cpp_hfr_90</CPPLiveshot>
      <A3Preview>imx230_hfr_90_lc898212xd</A3Preview>
      <A3Video>imx230_hfr_90_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="8">
      <ISPPreview>imx230_hfr_120</ISPPreview>
      <ISPSnapshot>imx230_hfr_120</ISPSnapshot>
      <ISPVideo>imx230_hfr_120</ISPVideo>
      <CPPPreview>imx230_cpp_hfr_120</CPPPreview>
      <CPPSnapshot>imx230_cpp_hfr_120</CPPSnapshot>
      <CPPVideo>imx230_cpp_hfr_120</CPPVideo>
      <CPPLiveshot>imx230_cpp_hfr_120</CPPLiveshot>
      <A3Preview>imx230_hfr_120_lc898212xd</A3Preview>
      <A3Video>imx230_hfr_120_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="9">
      <ISPPreview>imx230_hfr_240</ISPPreview>
      <ISPSnapshot>imx230_hfr_240</ISPSnapshot>
      <ISPVideo>imx230_hfr_240</ISPVideo>
      <CPPPreview>imx230_cpp_hfr_240</CPPPreview>
      <CPPSnapshot>imx230_cpp_hfr_240</CPPSnapshot>
      <CPPVideo>imx230_cpp_hfr_240</CPPVideo>
      <CPPLiveshot>imx230_cpp_hfr_240</CPPLiveshot>
      <A3Preview>imx230_hfr_240_lc898212xd</A3Preview>
      <A3Video>imx230_hfr_240_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="10">
      <ISPPreview>imx230_video_hdr</ISPPreview>
      <ISPSnapshot>imx230_video_hdr</ISPSnapshot>
      <ISPVideo>imx230_video_hdr</ISPVideo>
      <CPPPreview>imx230_cpp_video_hdr</CPPPreview>
      <CPPSnapshot>imx230_cpp_video_hdr</CPPSnapshot>
      <CPPVideo>imx230_cpp_video_hdr</CPPVideo>
      <CPPLiveshot>imx230_cpp_video_hdr</CPPLiveshot>
      <A3Preview>imx230_hdr_video_lc898212xd</A3Preview>
      <A3Video>imx230_hdr_video_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="11">
      <ISPPreview>imx230_snapshot_hdr</ISPPreview>
      <ISPSnapshot>imx230_snapshot_hdr</ISPSnapshot>
      <ISPVideo>imx230_snapshot_hdr</ISPVideo>
      <CPPPreview>imx230_cpp_snapshot_hdr</CPPPreview>
      <CPPSnapshot>imx230_cpp_snapshot_hdr</CPPSnapshot>
      <CPPVideo>imx230_cpp_snapshot_hdr</CPPVideo>
      <CPPLiveshot>imx230_cpp_snapshot_hdr</CPPLiveshot>
      <A3Preview>imx230_hdr_video_lc898212xd</A3Preview>
      <A3Video>imx230_hdr_video_lc898212xd</A3Video>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="12">
      <ISPPreview>imx230_raw_hdr</ISPPreview>
      <ISPSnapshot>imx230_raw_hdr</ISPSnapshot>
      <ISPVideo>imx230_raw_hdr</ISPVideo>
      <CPPPreview>imx230_cpp_raw_hdr</CPPPreview>
      <CPPSnapshot>imx230_cpp_raw_hdr</CPPSnapshot>
      <CPPVideo>imx230_cpp_raw_hdr</CPPVideo>
      <CPPLiveshot>imx230_cpp_raw_hdr</CPPLiveshot>
      <A3Preview>imx230_raw_hdr_lc898212xd</A3Preview>
      <A3Video>imx230_raw_hdr_lc898212xd</A3Video>
      <External>hvx_zzHDR</External>
    </ChromatixName>
    <ChromatixName sensor_resolution_index="13">
      <ISPPreview>imx230_raw_hdr</ISPPreview>
      <ISPSnapshot>imx230_raw_hdr</ISPSnapshot>
      <ISPVideo>imx230_raw_hdr</ISPVideo>
      <CPPPreview>imx230_cpp_raw_hdr</CPPPreview>
      <CPPSnapshot>imx230_cpp_raw_hdr</CPPSnapshot>
      <CPPVideo>imx230_cpp_raw_hdr</CPPVideo>
      <CPPLiveshot>imx230_cpp_raw_hdr</CPPLiveshot>
      <A3Preview>imx230_raw_hdr_lc898212xd</A3Preview>
      <A3Video>imx230_raw_hdr_lc898212xd</A3Video>
      <External>hvx_zzHDR</External>
    </ChromatixName>
  </ResolutionChromatixInfo>
</ChromatixConfigurationRoot>
