#include "ia_css_prbs.h"
 #include "ia_css_input_port.h"
 
-/* Input modes, these enumerate all supported input modes.
- *  Note that not all ISP modes support all input modes.
+/*
+ * Input modes, these enumerate all supported input modes.
+ * This enum is part of the atomisp firmware ABI and must
+ * NOT be changed!
+ * Note that not all ISP modes support all input modes.
  */
 enum ia_css_input_mode {
        IA_CSS_INPUT_MODE_SENSOR, /** data from sensor */
        IA_CSS_INPUT_MODE_FIFO,   /** data from input-fifo */
+       IA_CSS_INPUT_MODE_TPG,    /** data from test-pattern generator */
        IA_CSS_INPUT_MODE_PRBS,   /** data from pseudo-random bit stream */
        IA_CSS_INPUT_MODE_MEMORY, /** data from a frame in memory */
        IA_CSS_INPUT_MODE_BUFFERED_SENSOR /** data is sent through mipi buffer */
 
 
 #define IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES_PER_PORT (3)
 
-/* SP configuration information */
+/*
+ * SP configuration information
+ *
+ * This struct is part of the atomisp firmware ABI and is directly copied
+ * to ISP DRAM by sh_css_store_sp_group_to_ddr()
+ *
+ * Do NOT change this struct's layout or remove seemingly unused fields!
+ */
 struct sh_css_sp_config {
        u8                      no_isp_sync; /* Signal host immediately after start */
        u8                      enable_raw_pool_locking; /** Enable Raw Buffer Locking for HALv3 Support */
             host (true) or when they are passed to the preview/video pipe
             (false). */
 
+        /*
+         * Note the fields below are only used on the ISP2400 not on the ISP2401,
+         * sh_css_store_sp_group_to_ddr() skip copying these when run on the ISP2401.
+         */
        struct {
                u8                                      a_changed;
                u8                                      b_changed;
        } input_formatter;
 
        sync_generator_cfg_t    sync_gen;
+       tpg_cfg_t               tpg;
        prbs_cfg_t              prbs;
        input_system_cfg_t      input_circuit;
        u8                      input_circuit_cfg_changed;
-       u32             mipi_sizes_for_check[N_CSI_PORTS][IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES_PER_PORT];
-       u8                 enable_isys_event_queue;
+       u32                     mipi_sizes_for_check[N_CSI_PORTS][IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES_PER_PORT];
+       /* These last 2 fields are used on both the ISP2400 and the ISP2401 */
+       u8                      enable_isys_event_queue;
        u8                      disable_cont_vf;
 };