diff --git a/sw/device/examples/demo_hps_live/BUILD b/sw/device/examples/demo_hps_live/BUILD
index 4c0b3dc..e8b2bdf 100644
--- a/sw/device/examples/demo_hps_live/BUILD
+++ b/sw/device/examples/demo_hps_live/BUILD
@@ -5,6 +5,7 @@
 
 load(
     "//rules:matcha.bzl",
+    "ASIC_CORE_TARGETS",
     "NEXUS_CORE_TARGETS",
     "sec_flash_binary",
     "smc_flash_binary",
@@ -15,7 +16,6 @@
     name = "hps_demo",
     srcs = [
         "hps_demo_sc.c",
-        "hps_demo_smc_fpga_nexus_bin_c.h",
     ],
     copts = [
         "-nostdlib",
@@ -23,8 +23,10 @@
     ],
     per_device_deps = {
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("secure_core")],
+        "asic": [ASIC_CORE_TARGETS.get("secure_core")],
     },
     deps = [
+        ":hps_demo_smc_h",
         "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:rv_plic_sec",
         "//sw/device/lib/dif:smc_ctrl",
@@ -46,6 +48,7 @@
     ],
     per_device_deps = {
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("smc")],
+        "asic": [ASIC_CORE_TARGETS.get("smc")],
     },
     deps = [
         "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
@@ -58,3 +61,15 @@
         "@lowrisc_opentitan//sw/device/lib/dif:rv_timer",
     ],
 )
+
+cc_library(
+    name = "hps_demo_smc_h",
+    hdrs = select({
+        "//rules:sparrow_platform": [
+            "hps_demo_smc_asic_bin_c.h",
+        ],
+        "//conditions:default": [
+            "hps_demo_smc_fpga_nexus_bin_c.h",
+        ],
+    }),
+)
diff --git a/sw/device/examples/demo_hps_live/hps_demo_sc.c b/sw/device/examples/demo_hps_live/hps_demo_sc.c
index 0300213..e5a77f4 100644
--- a/sw/device/examples/demo_hps_live/hps_demo_sc.c
+++ b/sw/device/examples/demo_hps_live/hps_demo_sc.c
@@ -15,7 +15,6 @@
  */
 
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
-#include "sw/device/examples/demo_hps_live/hps_demo_smc_fpga_nexus_bin_c.h"  // Generated.
 #include "sw/device/lib/arch/device.h"
 #include "sw/device/lib/dif/dif_gpio.h"
 #include "sw/device/lib/dif/dif_pinmux.h"
@@ -30,6 +29,12 @@
 #include "sw/device/lib/testing/test_framework/check.h"
 #include "sw/device/lib/testing/test_framework/ottf_test_config.h"
 
+#if defined(MATCHA_SPARROW)
+#include "sw/device/examples/demo_hps_live/hps_demo_smc_asic_bin_c.h"  // Generated.
+#else
+#include "sw/device/examples/demo_hps_live/hps_demo_smc_fpga_nexus_bin_c.h"  // Generated.
+#endif
+
 /*
  * Sample program to run some code on all cores in the system.
  * SC - Orchestrate the other cores, print status to UART.
@@ -103,10 +108,17 @@
   CHECK_DIF_OK(dif_pinmux_init(
       mmio_region_from_addr(TOP_MATCHA_PINMUX_AON_BASE_ADDR), &pinmux));
 
+#if defined(MATCHA_SPARROW)
+  CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIob11,
+                                        kTopMatchaPinmuxOutselGpioGpio16));
+  CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIob12,
+                                        kTopMatchaPinmuxOutselGpioGpio17));
+#else
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIod0,
                                         kTopMatchaPinmuxOutselGpioGpio16));
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIod1,
                                         kTopMatchaPinmuxOutselGpioGpio17));
+#endif
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIoc0,
                                         kTopMatchaPinmuxOutselGpioGpio22));
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux,
@@ -123,6 +135,19 @@
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInCamI2cScl, kTopMatchaPinmuxInselIoa4));
 
   // Mux ISP wrapper
+#if defined(MATCHA_SPARROW)
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData0, kTopMatchaPinmuxInselIob0));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData1, kTopMatchaPinmuxInselIob1));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData2, kTopMatchaPinmuxInselIob2));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData3, kTopMatchaPinmuxInselIob3));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData4, kTopMatchaPinmuxInselIob4));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData5, kTopMatchaPinmuxInselIob5));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData6, kTopMatchaPinmuxInselIob6));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSData7, kTopMatchaPinmuxInselIob7));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSVsync, kTopMatchaPinmuxInselIob9));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVideoAudioWrapperSHsync, kTopMatchaPinmuxInselIob8));
+  CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInVsiCtlWrapperIspSclk, kTopMatchaPinmuxInselIob10));
+#else
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInIspWrapperSData0, kTopMatchaPinmuxInselIob0));
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInIspWrapperSData1, kTopMatchaPinmuxInselIob1));
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInIspWrapperSData2, kTopMatchaPinmuxInselIob2));
@@ -134,6 +159,7 @@
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInIspWrapperSVsync, kTopMatchaPinmuxInselIoa2));
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInIspWrapperSHsync, kTopMatchaPinmuxInselIoa3));
   CHECK_DIF_OK(dif_pinmux_input_select(&pinmux, kTopMatchaPinmuxPeripheralInIspWrapperSPclk, kTopMatchaPinmuxInselIob8));
+#endif
 
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIoa2, kTopMatchaPinmuxOutselConstantHighZ));
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIoa3, kTopMatchaPinmuxOutselConstantHighZ));
@@ -152,9 +178,15 @@
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIoa7, kTopMatchaPinmuxOutselCamCtrlCamTrig));
 
   // Mux SPI_HOST2 (clk, mosi, cs)
+#if defined(MATCHA_SPARROW)
+  CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIor12, kTopMatchaPinmuxOutselSpiHost2Sck));
+  CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIor10, kTopMatchaPinmuxOutselSpiHost2Sd0));
+  CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIor13, kTopMatchaPinmuxOutselSpiHost2Csb));
+#else
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIor12, kTopMatchaPinmuxOutselSpiHost2Sck));
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIob10, kTopMatchaPinmuxOutselSpiHost2Sd0));
   CHECK_DIF_OK(dif_pinmux_output_select(&pinmux, kTopMatchaPinmuxMioOutIor13, kTopMatchaPinmuxOutselSpiHost2Csb));
+#endif
 
   CHECK_DIF_OK(
       dif_gpio_init(mmio_region_from_addr(TOP_MATCHA_GPIO_BASE_ADDR), &gpio));
diff --git a/sw/device/examples/demo_hps_live/hps_demo_smc.c b/sw/device/examples/demo_hps_live/hps_demo_smc.c
index 5cd11cf..7741835 100644
--- a/sw/device/examples/demo_hps_live/hps_demo_smc.c
+++ b/sw/device/examples/demo_hps_live/hps_demo_smc.c
@@ -20,6 +20,7 @@
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/examples/testdata/kelvin_model_ml_bin.h"  // Generated.
 #include "sw/device/lib/arch/device.h"
+#include "sw/device/lib/base/math.h"
 #include "sw/device/lib/camera_hm01b0.h"
 #include "sw/device/lib/dif/dif_isp_wrapper.h"
 #include "sw/device/lib/dif/dif_ml_top.h"
@@ -42,6 +43,14 @@
 #define TOP_MATCHA_RAM_ML_DMEM_CMD_OFFSET_ADDR 0x003FF000
 #define IMAGE_FRAME_SIZE 320 * 240
 
+#if defined(MATCHA_SPARROW)
+#define COUNTER_FREQ 1000000
+#else
+#define COUNTER_FREQ 1000
+#endif
+
+#define COUNTER_SCALE (COUNTER_FREQ / 1000)
+
 OTTF_DEFINE_TEST_CONFIG();
 
 static dif_isp_wrapper_t isp_wrapper;
@@ -127,11 +136,19 @@
   // NOTE: This initialization is superfluous, since the `default` case below
   // is effectively noreturn, but the compiler is unable to prove this.
   switch (interrupt_id) {
+#if defined(MATCHA_SPARROW)
+    case kTopMatchaPlicIrqIdVideoAudioWrapperIsp:
+#else
     case kTopMatchaPlicIrqIdIspWrapperIsp:
+#endif
       isp_frame_done = true;
       CHECK_DIF_OK(dif_isp_wrapper_isp_irq_done(&isp_wrapper));
       break;
+#if defined(MATCHA_SPARROW)
+    case kTopMatchaPlicIrqIdVideoAudioWrapperMi:
+#else
     case kTopMatchaPlicIrqIdIspWrapperMi:
+#endif
       CHECK_DIF_OK(dif_isp_wrapper_mi_irq_done(&isp_wrapper));
       break;
     default:
@@ -165,18 +182,31 @@
   // Check if the interrupted peripheral is ISP WRAPPER.
   top_matcha_plic_peripheral_smc_t peripheral_id =
       top_matcha_plic_interrupt_for_peripheral_smc[interrupt_id];
+#if defined(MATCHA_SPARROW)
+  CHECK(peripheral_id == kTopMatchaPlicPeripheralVideoAudioWrapper ||
+            peripheral_id == kTopMatchaPlicPeripheralCamI2c ||
+            peripheral_id == kTopMatchaPlicPeripheralSpiHost2 ||
+            peripheral_id == kTopMatchaPlicPeripheralTlulMailboxSmc ||
+            peripheral_id == kTopMatchaPlicPeripheralMlTop,
+        "Unexpected peripheral in ISR: %d", peripheral_id);
+#else
   CHECK(peripheral_id == kTopMatchaPlicPeripheralIspWrapper ||
             peripheral_id == kTopMatchaPlicPeripheralCamI2c ||
             peripheral_id == kTopMatchaPlicPeripheralSpiHost2 ||
             peripheral_id == kTopMatchaPlicPeripheralTlulMailboxSmc ||
             peripheral_id == kTopMatchaPlicPeripheralMlTop,
         "Unexpected peripheral in ISR: %d", peripheral_id);
+#endif
   switch (peripheral_id) {
     case kTopMatchaPlicPeripheralCamI2c: {
       CHECK_DIF_OK(camera_hm01b0_irq_handler(interrupt_id));
       break;
     }
+#if defined(MATCHA_SPARROW)
+    case kTopMatchaPlicPeripheralVideoAudioWrapper:
+#else
     case kTopMatchaPlicPeripheralIspWrapper:
+#endif
       handle_isp_wrapper_isrs(interrupt_id);
       break;
     case kTopMatchaPlicPeripheralTlulMailboxSmc: {
@@ -207,10 +237,17 @@
 static void plic_smc_configure_irqs(dif_rv_plic_t *plic) {
   CHECK_DIF_OK(camera_hm01b0_irq_init(plic, kTopMatchaPlicTargetIbex0Smc));
   // Set IRQ priorities to MAX
+#if defined(MATCHA_SPARROW)
+  CHECK_DIF_OK(dif_rv_plic_irq_set_priority(
+      plic, kTopMatchaPlicIrqIdVideoAudioWrapperIsp, kDifRvPlicMaxPriority));
+  CHECK_DIF_OK(dif_rv_plic_irq_set_priority(
+      plic, kTopMatchaPlicIrqIdVideoAudioWrapperMi, kDifRvPlicMaxPriority));
+#else
   CHECK_DIF_OK(dif_rv_plic_irq_set_priority(
       plic, kTopMatchaPlicIrqIdIspWrapperIsp, kDifRvPlicMaxPriority));
   CHECK_DIF_OK(dif_rv_plic_irq_set_priority(
       plic, kTopMatchaPlicIrqIdIspWrapperMi, kDifRvPlicMaxPriority));
+#endif
   CHECK_DIF_OK(dif_rv_plic_irq_set_priority(
       plic, kTopMatchaPlicIrqIdMlTopFinish, kDifRvPlicMaxPriority));
   CHECK_DIF_OK(dif_rv_plic_irq_set_priority(plic, kTopMatchaPlicIrqIdMlTopFault,
@@ -222,12 +259,21 @@
 
   // Enable IRQs in PLIC
   // Enable ISP IRQs
+#if defined(MATCHA_SPARROW)
+  CHECK_DIF_OK(dif_rv_plic_irq_set_enabled(
+      plic, kTopMatchaPlicIrqIdVideoAudioWrapperIsp, kTopMatchaPlicTargetIbex0Smc,
+      kDifToggleEnabled));
+  CHECK_DIF_OK(dif_rv_plic_irq_set_enabled(
+      plic, kTopMatchaPlicIrqIdVideoAudioWrapperMi, kTopMatchaPlicTargetIbex0Smc,
+      kDifToggleEnabled));
+#else
   CHECK_DIF_OK(dif_rv_plic_irq_set_enabled(
       plic, kTopMatchaPlicIrqIdIspWrapperIsp, kTopMatchaPlicTargetIbex0Smc,
       kDifToggleEnabled));
   CHECK_DIF_OK(dif_rv_plic_irq_set_enabled(
       plic, kTopMatchaPlicIrqIdIspWrapperMi, kTopMatchaPlicTargetIbex0Smc,
       kDifToggleEnabled));
+#endif
   // Enable Mailbox IRQs
   CHECK_DIF_OK(dif_rv_plic_irq_set_enabled(
       plic, kTopMatchaPlicIrqIdTlulMailboxSmcRtirq,
@@ -246,8 +292,13 @@
 void _ottf_main(void) {
   test_status_set(kTestStatusInTest);
 
+#if defined(MATCHA_SPARROW)
+  CHECK_DIF_OK(dif_isp_wrapper_init(
+      mmio_region_from_addr(TOP_MATCHA_VIDEO_AUDIO_WRAPPER_ISP_BASE_ADDR), &isp_wrapper));
+#else
   CHECK_DIF_OK(dif_isp_wrapper_init(
       mmio_region_from_addr(TOP_MATCHA_ISP_WRAPPER_BASE_ADDR), &isp_wrapper));
+#endif
   CHECK_DIF_OK(dif_rv_plic_init(
       mmio_region_from_addr(TOP_MATCHA_RV_PLIC_SMC_BASE_ADDR), &plic_smc));
   LOG_INFO("Configure isp into CAM live mode.");
@@ -350,7 +401,7 @@
   CHECK_DIF_OK(dif_rv_timer_init(
       mmio_region_from_addr(TOP_MATCHA_RV_TIMER_SMC_BASE_ADDR), &rv_timer));
   CHECK_DIF_OK(dif_rv_timer_approximate_tick_params(kClockFreqPeripheralHz,
-                                                    1000, &tick_params));
+                                                    COUNTER_FREQ, &tick_params));
   CHECK_DIF_OK(dif_rv_timer_set_tick_params(&rv_timer, 0, tick_params));
   CHECK_DIF_OK(
       dif_rv_timer_counter_set_enabled(&rv_timer, 0, kDifToggleEnabled));
@@ -367,6 +418,6 @@
     handle_isp_wrapper_isp_irq();
     CHECK_DIF_OK(dif_rv_timer_counter_read(&rv_timer, 0, &counter_end));
     LOG_INFO("Capture + eval + render took %d ms",
-             (uint32_t)(counter_end - counter_start));
+             (uint32_t)udiv64_slow(counter_end - counter_start, COUNTER_SCALE, NULL));
   }
 }
diff --git a/sw/device/lib/arch/device_sc_asic.c b/sw/device/lib/arch/device_sc_asic.c
index 27d3dc6..00fe315 100644
--- a/sw/device/lib/arch/device_sc_asic.c
+++ b/sw/device/lib/arch/device_sc_asic.c
@@ -41,8 +41,8 @@
 const uint64_t kClockFreqAonHz = 200 * 1000;  // 200kHz
 
 const uint64_t kClockFreqSpiFlashHz = 24 * 1000 * 1000; // 24MHz
-const uint64_t kClockFreqSpiDisplayHz = 5 * 1000 * 1000; // 5MHz
-const uint64_t kClockFreqSpiPassthroughHz = 5 * 1000 * 1000; // 5MHz
+const uint64_t kClockFreqSpiDisplayHz = 24 * 1000 * 1000; // 5MHz
+const uint64_t kClockFreqSpiPassthroughHz = 24 * 1000 * 1000; // 5MHz
 
 const uint64_t kUartBaudrate = 115200;
 
diff --git a/sw/device/lib/arch/device_smc_asic.c b/sw/device/lib/arch/device_smc_asic.c
index 5133734..26ccf05 100644
--- a/sw/device/lib/arch/device_smc_asic.c
+++ b/sw/device/lib/arch/device_smc_asic.c
@@ -41,8 +41,8 @@
 const uint64_t kClockFreqAonHz = 200 * 1000;  // 200kHz
 
 const uint64_t kClockFreqSpiFlashHz = 24 * 1000 * 1000; // 24MHz
-const uint64_t kClockFreqSpiDisplayHz = 5 * 1000 * 1000; // 5MHz
-const uint64_t kClockFreqSpiPassthroughHz = 5 * 1000 * 1000; // 5MHz
+const uint64_t kClockFreqSpiDisplayHz = 24 * 1000 * 1000; // 5MHz
+const uint64_t kClockFreqSpiPassthroughHz = 24 * 1000 * 1000; // 5MHz
 
 const uint64_t kUartBaudrate = 115200;
 
diff --git a/sw/device/lib/camera_hm01b0.c b/sw/device/lib/camera_hm01b0.c
index 337a59a..56e8b18 100644
--- a/sw/device/lib/camera_hm01b0.c
+++ b/sw/device/lib/camera_hm01b0.c
@@ -17,6 +17,7 @@
 #include "sw/device/lib/camera_hm01b0.h"
 
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
+#include "sw/device/lib/base/math.h"
 #include "sw/device/lib/camera_hm01b0_regs.h"
 #include "sw/device/lib/dif/dif_base.h"
 #include "sw/device/lib/dif/dif_i2c.h"
@@ -100,12 +101,13 @@
 }
 
 dif_result_t camera_hm01b0_init(void) {
+  uint64_t i2cclk = udiv64_slow(1000000000U, 24000000, NULL);
   CHECK_DIF_OK(dif_i2c_init(mmio_region_from_addr(TOP_MATCHA_CAM_I2C_BASE_ADDR),
                             &cam_i2c));
   dif_i2c_config_t cam_i2c_config;
   dif_i2c_timing_config_t cam_i2c_timing_config = {
       .lowest_target_device_speed = kDifI2cSpeedStandard,
-      .clock_period_nanos = 400,
+      .clock_period_nanos = i2cclk,
       .sda_rise_nanos = 800,
       .sda_fall_nanos = 600,
       .scl_period_nanos = 1000000 / 100000,
@@ -173,7 +175,11 @@
 
   CHECK_DIF_OK(camera_hm01b0_write_reg(HM01B0_SW_RESET, 0x00));
   CHECK_DIF_OK(camera_hm01b0_write_reg(HM01B0_MODE_SELECT, 0x00));
+#if defined(MATCHA_SPARROW)
+  CHECK_DIF_OK(camera_hm01b0_write_reg(HM01B0_IMAGE_ORIENTATION, 0x00));
+#else
   CHECK_DIF_OK(camera_hm01b0_write_reg(HM01B0_IMAGE_ORIENTATION, 0x03));
+#endif
   CHECK_DIF_OK(camera_hm01b0_write_reg(HM01B0_BLC_TGT, 0x08));
   CHECK_DIF_OK(camera_hm01b0_write_reg(HM01B0_BLC2_TGT, 0x08));
   CHECK_DIF_OK(camera_hm01b0_write_reg(0x3044, 0x0A));
diff --git a/sw/device/lib/dif/BUILD b/sw/device/lib/dif/BUILD
index 19a0f06..8008deb 100644
--- a/sw/device/lib/dif/BUILD
+++ b/sw/device/lib/dif/BUILD
@@ -50,8 +50,14 @@
     srcs = [
         "autogen/dif_isp_wrapper_autogen.c",
         "autogen/dif_isp_wrapper_autogen.h",
-        "dif_isp_wrapper.c",
-    ],
+    ] + select({
+        "//rules:sparrow_platform": [
+            "dif_isp_wrapper_pico.c",
+        ],
+        "//conditions:default": [
+            "dif_isp_wrapper.c",
+        ],
+    }),
     hdrs = [
         "dif_isp_wrapper.h",
         "@isp_yocto//include:yocto_isp_register_address.h",
diff --git a/sw/device/lib/dif/dif_isp_wrapper_pico.c b/sw/device/lib/dif/dif_isp_wrapper_pico.c
new file mode 100644
index 0000000..ab04034
--- /dev/null
+++ b/sw/device/lib/dif/dif_isp_wrapper_pico.c
@@ -0,0 +1,1400 @@
+// Copyright 2022 Google LLC.
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+#include "sw/device/lib/dif/dif_isp_wrapper.h"
+
+#include <stddef.h>
+
+#include "sw/device/lib/base/bitfield.h"
+#include "sw/device/lib/base/macros.h"
+#include "sw/device/lib/dif/dif_base.h"
+
+#include "isp_wrapper_regs.h" // Generated.
+
+// ISP configuration:
+// size: 120 * 64, colar bar, force triggering interrupts(isp_irq and mi_irq)
+dif_result_t dif_isp_wrapper_set_en(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0010, 0x00000049);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0014, 0x00000000);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400, 0x00206016);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0004, 0x00000011);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x000C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0010, 0x00000078);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0014, 0x00000040);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x04,
+                        0x00d9c054);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x08,
+                        0x001e0040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x0C, 0x002e400f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x10, 0x00484004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x14, 0x00454001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x18,
+                        0x000a0015);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x1C,
+                        0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x20,
+                        0x4d777439);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x24,
+                        0x00000003);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x004, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x00C, 0x00000078);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x010, 0x00000040);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x0, 0x00010001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x4, 0x01580393);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x0, 0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x4, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x8, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0xC, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x10, 0x00000000);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x000, 0x80000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x004, 0x0000000c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x008, 0x00000008);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x00C, 0x00000015);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x010, 0x00000008);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x0,
+                        0x011a0109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x4, 0x01260109);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x810, 0x00000004);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x000, 0x000003f3);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x004,
+                        0x0000001a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x008,
+                        0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x00C, 0x00000029);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x010, 0x00000043);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x014,
+                        0x00032040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x018, 0x0000000c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x01C, 0x0000000a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x020, 0x00000008);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x024, 0x00000004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x028,
+                        0x00000000);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x000, 0x0000000c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x004,
+                        0x0020003c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x008, 0x002b01e5);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x00C, 0x01f10014);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x010, 0x01fa0000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x014, 0x00050010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x018, 0x00050010);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x04, 0x000000f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x08, 0x00000252);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x0C, 0x000000c9);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x10, 0x000000db);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x14, 0x00000036);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x18, 0x00000269);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x1C, 0x0000008a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x20, 0x00000299);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x24, 0x00000217);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x28, 0x00000118);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x2C, 0x000001d1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x30, 0x000003ed);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x34, 0x000001c1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x38, 0x000000f8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x3C, 0x0000026a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x40, 0x000002f4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x44, 0x0000024e);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0550, 0x80000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0554, 0x00000060);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0558, 0x0000002f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x055c, 0x00000009);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0560, 0x0000000d);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0564, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0568, 0x0000a504);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x056C, 0x11b98318);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x0, 0x00000026);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x4, 0x0000004b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x8, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0xC, 0x000001ea);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x10, 0x000001d6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x14, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x18, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x1C, 0x000001ca);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x20, 0x000001f6);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0xA24,
+                        0x00000000);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A30, 0x000000dd);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A34, 0x000007c6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A38, 0x000007df);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A3C, 0x000007bf);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A40, 0x000000ec);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A44, 0x000007de);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A48, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A4C, 0x000007ae);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A50, 0x000000e0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A54, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A58, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A5C, 0x00000000);
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B00, 0x0004007c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B18, 0x00000001);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0C00,
+                        0x00008c10);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0C00,
+                        0x000041f5);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0C00,
+                        0x0000604f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0C00,
+                        0x0000bad1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x14 + 0x0C00,
+                        0x0000d46c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x6C + 0x0C00,
+                        0x0000006a);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0E00,
+                        0x5a000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0E00,
+                        0x00001e00);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0E00,
+                        0x5a002000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0E00,
+                        0x00001e00);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x2C + 0x0E00,
+                        0x5a004000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x30 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x34 + 0x0E00,
+                        0x00000000);
+
+    mmio_region_write32(isp_wrapper->base_addr, 0xF8 + 0x0E00, 0x0000007d);
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x108 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x110 + 0x0E00,
+                        0x00000000);
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x130 + 0x0E00,
+                        0x00008000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x134 + 0x0E00,
+                        0x0000a000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x138 + 0x0E00,
+                        0x0000c000);
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x150 + 0x0E00,
+                        0x00000078);
+    mmio_region_write32(isp_wrapper->base_addr, 0x15C + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x160 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x164 + 0x0E00,
+                        0x00000078);
+    mmio_region_write32(isp_wrapper->base_addr, 0x168 + 0x0E00,
+                        0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x16C + 0x0E00,
+                        0x00001e00);
+
+
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0E00, 0x007a2801);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x00, 0x00000c63);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00207257);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0C00, 0x00000120);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0E00, 0x00000050);
+    return kDifOk;
+}
+
+// ISP configuration:
+// size: 64 * 64, TPG(test pattern generation mode)
+dif_result_t
+dif_isp_wrapper_set_tpg_64_64_en(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0010, 0x00000049);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0014, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00206016);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0004, 0x00000011);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x000C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0010, 0x00000080);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0014, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x04,
+                        0x00d1c054);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x08,
+                        0x00200040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x0C, 0x003e400f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x10, 0x002e4004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x14, 0x00454001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x18,
+                        0x000a8015);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x1C,
+                        0x00000010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x20,
+                        0x4d777439);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x24,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x004, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x00C, 0x00000080);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x010, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x0, 0x00010001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x4, 0x01580393);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x0, 0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x4, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x8, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0xC, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x000, 0x80000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x004, 0x00000017);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x008, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x00C, 0x00000013);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x010, 0x00000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x0,
+                        0x011a0109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x4, 0x01260109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x810, 0x00000004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x000, 0x000003f3);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x004,
+                        0x0000001a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x008,
+                        0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x00C, 0x00000029);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x010, 0x00000043);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x014,
+                        0x00032040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x018, 0x0000000c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x01C, 0x0000000a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x020, 0x00000008);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x024, 0x00000004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x028,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x000, 0x0000000c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x004,
+                        0x00200040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x008, 0x002b01e5);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x00C, 0x01f10014);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x010, 0x01fa0000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x014, 0x00050010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x018, 0x00050010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x04, 0x000000f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x08, 0x00000252);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x0C, 0x000000c9);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x10, 0x000000db);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x14, 0x00000036);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x18, 0x00000269);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x1C, 0x0000008a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x20, 0x00000299);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x24, 0x00000217);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x28, 0x00000118);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x2C, 0x000001d1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x30, 0x000003ed);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x34, 0x000001c1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x38, 0x000000f8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x3C, 0x0000026a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x40, 0x000002f4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x44, 0x0000024e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0550, 0x80000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0554, 0x00000074);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0558, 0x00000021);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x055c, 0x00000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0560, 0x00000010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0564, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0568, 0x0000a504);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x056C, 0x11b98318);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x0, 0x00000026);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x4, 0x0000004b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x8, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0xC, 0x000001ea);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x10, 0x000001d6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x14, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x18, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x1C, 0x000001ca);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x20, 0x000001f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0xA24,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A30, 0x000000dd);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A34, 0x000007c6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A38, 0x000007df);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A3C, 0x000007bf);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A40, 0x000000ec);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A44, 0x000007de);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A48, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A4C, 0x000007ae);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A50, 0x000000e0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A54, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A58, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A5C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B00, 0x0004007c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B18, 0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0C00,
+                        0x00007efe);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0C00,
+                        0x00007df8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0C00,
+                        0x00007df8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0C00,
+                        0x00008c10);
+    mmio_region_write32(isp_wrapper->base_addr, 0x14 + 0x0C00,
+                        0x0000bad1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x6C + 0x0C00,
+                        0x0000006a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0E00,
+                        0x5a000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0E00,
+                        0x00001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0E00,
+                        0x5a001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0E00,
+                        0x00001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x2C + 0x0E00,
+                        0x5a002000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x30 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x34 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0xF8 + 0x0E00, 0x0000007d);
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x108 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x110 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x130 + 0x0E00,
+                        0x00004000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x134 + 0x0E00,
+                        0x00005000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x138 + 0x0E00,
+                        0x00006000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x150 + 0x0E00,
+                        0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x15C + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x160 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x164 + 0x0E00,
+                        0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x168 + 0x0E00,
+                        0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x16C + 0x0E00,
+                        0x00001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0E00, 0x007a2801);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x00, 0x00000c63);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00207257);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0C00, 0x00000103);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0E00, 0x00000050);
+    return kDifOk;
+}
+
+dif_result_t
+dif_isp_wrapper_set_tpg_64_64_en_for_enc(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0010, 0x00000049);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0014, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00206016);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0004, 0x00000011);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x000C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0010, 0x00000080);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0014, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x04,
+                        0x00d1c054);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x08,
+                        0x00200040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x0C, 0x003e400f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x10, 0x002e4004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x14, 0x00454001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x18,
+                        0x000a8015);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x1C,
+                        0x00000010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x20,
+                        0x4d777439);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x24,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x004, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x00C, 0x00000080);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x010, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x0, 0x00010001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x4, 0x01580393);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x0, 0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x4, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x8, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0xC, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x000, 0x80000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x004, 0x00000017);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x008, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x00C, 0x00000013);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x010, 0x00000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x0,
+                        0x011a0109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x4, 0x01260109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x810, 0x00000004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x000, 0x000003f3);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x004,
+                        0x0000001a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x008,
+                        0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x00C, 0x00000029);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x010, 0x00000043);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x014,
+                        0x00032040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x018, 0x0000000c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x01C, 0x0000000a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x020, 0x00000008);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x024, 0x00000004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x028,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x000, 0x0000000c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x004,
+                        0x00200040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x008, 0x002b01e5);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x00C, 0x01f10014);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x010, 0x01fa0000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x014, 0x00050010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x018, 0x00050010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x04, 0x000000f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x08, 0x00000252);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x0C, 0x000000c9);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x10, 0x000000db);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x14, 0x00000036);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x18, 0x00000269);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x1C, 0x0000008a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x20, 0x00000299);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x24, 0x00000217);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x28, 0x00000118);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x2C, 0x000001d1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x30, 0x000003ed);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x34, 0x000001c1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x38, 0x000000f8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x3C, 0x0000026a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x40, 0x000002f4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x44, 0x0000024e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0550, 0x80000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0554, 0x00000074);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0558, 0x00000021);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x055c, 0x00000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0560, 0x00000010);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0564, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0568, 0x0000a504);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x056C, 0x11b98318);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x0, 0x00000026);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x4, 0x0000004b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x8, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0xC, 0x000001ea);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x10, 0x000001d6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x14, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x18, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x1C, 0x000001ca);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x20, 0x000001f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0xA24,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A30, 0x000000dd);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A34, 0x000007c6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A38, 0x000007df);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A3C, 0x000007bf);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A40, 0x000000ec);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A44, 0x000007de);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A48, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A4C, 0x000007ae);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A50, 0x000000e0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A54, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A58, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A5C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B00, 0x0004007c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B18, 0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0C00,
+                        0x00007efe);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0C00,
+                        0x00007df8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0C00,
+                        0x00007df8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0C00,
+                        0x00008c10);
+    mmio_region_write32(isp_wrapper->base_addr, 0x14 + 0x0C00,
+                        0x0000bad1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x6C + 0x0C00,
+                        0x0000006a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0E00,
+                        0x55000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0E00,
+                        0x00001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0E00,
+                        0x55001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0E00,
+                        0x00001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x2C + 0x0E00,
+                        0x55002000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x30 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x34 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0xF8 + 0x0E00, 0x0000007d);
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x108 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x110 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x130 + 0x0E00,
+                        0x00004000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x134 + 0x0E00,
+                        0x00005000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x138 + 0x0E00,
+                        0x00006000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x150 + 0x0E00,
+                        0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x15C + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x160 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x164 + 0x0E00,
+                        0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x168 + 0x0E00,
+                        0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x16C + 0x0E00,
+                        0x00001000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0E00, 0x007a2801);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x00, 0x00000c63);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00207257);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0C00, 0x00000103);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0E00, 0x00000050);
+    return kDifOk;
+}
+
+dif_result_t
+dif_isp_wrapper_set_ml_mem_byp_324x324_en(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0010, 0x00000049);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0014, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00206018);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0004, 0x00000199);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x000C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0010, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0014, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x04,
+                        0x00ad3f05);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x08,
+                        0x00510144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x0C, 0x0d6e000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x10, 0x028b8004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x14, 0x0bad0001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x18,
+                        0x04a1415b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x1C,
+                        0x00002a97);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x20,
+                        0x4d777439);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x24,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x004, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x00C, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x010, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x0, 0x00010001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x4, 0x01580393);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x0, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x4, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x8, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0xC, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x000, 0x80000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x004, 0x00000020);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x008, 0x00000028);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x00C, 0x00000030);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x010, 0x00000036);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x0,
+                        0x011a00d1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x4, 0x01260109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x810, 0x00000414);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x000, 0x00000692);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x004,
+                        0x00000167);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x008,
+                        0x00000142);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x00C, 0x00000177);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x010, 0x000001c7);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x014,
+                        0x0006698a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x018, 0x00000032);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x01C, 0x00000023);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x020, 0x00000019);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x024, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x028,
+                        0x00000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x000, 0x0000000a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x004,
+                        0x00a200a2);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x008, 0x00170118);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x00C, 0x01d101ed);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x010, 0x01c100f8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x014, 0x00020005);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x018, 0x00050019);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x04, 0x000002f4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x08, 0x0000024e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x0C, 0x00000083);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x10, 0x000001af);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x14, 0x00000346);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x18, 0x000000a5);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x1C, 0x00000304);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x20, 0x00000111);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x24, 0x000003b9);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x28, 0x00000383);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x2C, 0x00000018);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x30, 0x0000028c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x34, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x38, 0x00000087);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x3C, 0x00000047);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x40, 0x000001a4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x44, 0x000002bc);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0550, 0x80000007);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0554, 0x0000011c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0558, 0x000000c1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x055c, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0560, 0x00000078);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0564, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0568, 0x0000c2e6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x056C, 0x8ef9ad1e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x0, 0x00000026);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x4, 0x0000004b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x8, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0xC, 0x000001ea);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x10, 0x000001d6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x14, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x18, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x1C, 0x000001ca);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x20, 0x000001f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0xA24,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A30, 0x000000dd);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A34, 0x000007c6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A38, 0x000007df);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A3C, 0x000007bf);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A40, 0x000000ec);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A44, 0x000007de);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A48, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A4C, 0x000007ae);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A50, 0x000000e0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A54, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A58, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A5C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B00, 0x00000020);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B18, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0C00,
+                        0x00008469);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0C00,
+                        0x0000a674);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0C00,
+                        0x0000fa3d);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0C00,
+                        0x0000ef61);
+    mmio_region_write32(isp_wrapper->base_addr, 0x14 + 0x0C00,
+                        0x0000f9b7);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x6C + 0x0C00,
+                        0x000000fa);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0E00,
+                        0x5a300000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0E00,
+                        0x00019f20);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0E00,
+                        0x5a320000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x2C + 0x0E00,
+                        0x5a320000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x30 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x34 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0xF8 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x108 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x110 + 0x0E00,
+                        0x00000003);
+    mmio_region_write32(isp_wrapper->base_addr, 0x130 + 0x0E00,
+                        0x5a340000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x134 + 0x0E00,
+                        0x5a360000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x138 + 0x0E00,
+                        0x5a360000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x150 + 0x0E00,
+                        0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x15C + 0x0E00,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x160 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x164 + 0x0E00,
+                        0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x168 + 0x0E00,
+                        0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x16C + 0x0E00,
+                        0x00019a10);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0E00, 0x003a2808);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x00, 0x00000868);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00207259);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0C00, 0x00000190);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0E00, 0x000000b0);
+    return kDifOk;
+}
+
+dif_result_t _dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
+    const dif_isp_wrapper_t *isp_wrapper,
+    const uint32_t y_base_ad_init_addr, const uint32_t cb_base_ad_init_addr,
+    const uint32_t cr_base_ad_init_addr, const uint32_t y_base_ad_init2_addr,
+    const uint32_t cb_base_ad_init2_addr, const uint32_t cr_base_ad_init2_addr)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0010, 0x00000049);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0014, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00206018);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0004, 0x000199);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0008, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x000C, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0010, 0x00000140);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0014, 0x000000f0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x04,
+                        0x00ad3f05);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x08,
+                        0x00510144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x0C, 0x0d6e000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x10, 0x028b8004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x14, 0x0bad0001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x18,
+                        0x04a1415b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x1C,
+                        0x00002a97);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x20,
+                        0x4d777439);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x24,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x004, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x00C, 0x00000140);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x010, 0x000000f0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x0, 0x00010001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x4, 0x01580393);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x0, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x4, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x8, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0xC, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x000, 0x80000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x004, 0x00000020);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x008, 0x00000028);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x00C, 0x00000030);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x010, 0x00000036);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x0,
+                        0x011a00d1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x4, 0x01260109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x810, 0x00000414);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x000, 0x00000692);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x004,
+                        0x00000167);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x008,
+                        0x00000142);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x00C, 0x00000177);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x010, 0x000001c7);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x014,
+                        0x0006698a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x018, 0x00000032);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x01C, 0x00000023);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x020, 0x00000019);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x024, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x028,
+                        0x00000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x000, 0x0000000a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x004,
+                        0x00a200a2);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x008, 0x00170118);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x00C, 0x01d101ed);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x010, 0x01c100f8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x014, 0x00020005);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x018, 0x00050019);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x04, 0x000002f4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x08, 0x0000024e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x0C, 0x00000083);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x10, 0x000001af);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x14, 0x00000346);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x18, 0x000000a5);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x1C, 0x00000304);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x20, 0x00000111);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x24, 0x000003b9);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x28, 0x00000383);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x2C, 0x00000018);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x30, 0x0000028c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x34, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x38, 0x00000087);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x3C, 0x00000047);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x40, 0x000001a4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x44, 0x000002bc);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0550, 0x80000007);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0554, 0x0000011c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0558, 0x000000c1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x055c, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0560, 0x00000078);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0564, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0568, 0x0000c2e6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x056C, 0x8ef9ad1e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x0, 0x00000026);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x4, 0x0000004b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x8, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0xC, 0x000001ea);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x10, 0x000001d6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x14, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x18, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x1C, 0x000001ca);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x20, 0x000001f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0xA24,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A30, 0x000000dd);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A34, 0x000007c6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A38, 0x000007df);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A3C, 0x000007bf);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A40, 0x000000ec);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A44, 0x000007de);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A48, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A4C, 0x000007ae);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A50, 0x000000e0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A54, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A58, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A5C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B00, 0x00000020);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B18, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0C00,
+                        0x00008469);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0C00,
+                        0x0000a674);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0C00,
+                        0x0000fa3d);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0C00,
+                        0x0000ef61);
+    mmio_region_write32(isp_wrapper->base_addr, 0x14 + 0x0C00,
+                        0x0000f9b7);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x6C + 0x0C00,
+                        0x000000fa);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0E00,
+                        y_base_ad_init_addr);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0E00,
+                        0x00012c00);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0E00,
+                        cb_base_ad_init_addr);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x2C + 0x0E00,
+                        cr_base_ad_init_addr);
+    mmio_region_write32(isp_wrapper->base_addr, 0x30 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x34 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0xF8 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x108 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x110 + 0x0E00,
+                        0x00000003);
+    mmio_region_write32(isp_wrapper->base_addr, 0x130 + 0x0E00,
+                        y_base_ad_init2_addr);
+    mmio_region_write32(isp_wrapper->base_addr, 0x134 + 0x0E00,
+                        cb_base_ad_init2_addr);
+    mmio_region_write32(isp_wrapper->base_addr, 0x138 + 0x0E00,
+                        cr_base_ad_init2_addr);
+    mmio_region_write32(isp_wrapper->base_addr, 0x150 + 0x0E00,
+                        0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x15C + 0x0E00,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x160 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x164 + 0x0E00,
+                        0x00000140);
+    mmio_region_write32(isp_wrapper->base_addr, 0x168 + 0x0E00,
+                        0x000000f0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x16C + 0x0E00,
+                        0x00012c00);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0E00, 0x003a2808);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x00, 0x00000868);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00207251);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0C00, 0x00000190);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0E00, 0x000000b0);
+    return kDifOk;
+}
+// ISP configuration:
+// raw:320x240, byp:320x240
+dif_result_t dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
+    const dif_isp_wrapper_t *isp_wrapper)
+{
+    return _dif_isp_wrapper_set_raw_320x240_byp_320x240_en(isp_wrapper,
+                                                           0x5a000000,
+                                                           0x5a01a000,
+                                                           0x5a01a000,
+                                                           0x5a020000,
+                                                           0x5a03a000,
+                                                           0x5a03a000);
+}
+
+// ISP configuration:
+// raw:320x240, byp:320x240, hps image address: 0x00300000
+dif_result_t
+dif_isp_wrapper_set_ml_mem_byp_320x240_en(const dif_isp_wrapper_t *isp_wrapper)
+{
+    return _dif_isp_wrapper_set_raw_320x240_byp_320x240_en(isp_wrapper,
+                                                           0x5a300000,
+                                                           0x5a320000,
+                                                           0x5a320000,
+                                                           0x5a340000,
+                                                           0x5a360000,
+                                                           0x5a360000);
+}
+
+
+// ISP configuration:
+// raw:324x324, byp:324x324
+dif_result_t dif_isp_wrapper_set_raw_324x324_byp_324x324_en(
+    const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0010, 0x00000049);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0014, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00206018);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0004, 0x00000199);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x000C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0010, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0014, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x04,
+                        0x00ad3f05);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x08,
+                        0x00510144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x0C, 0x0d6e000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x10, 0x028b8004);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x14, 0x0bad0001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x18,
+                        0x04a1415b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x1C,
+                        0x00002a97);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x20,
+                        0x4d777439);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x24,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x000, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x004, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x008, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x00C, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0600 + 0x010, 0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x0, 0x00010001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x624 + 0x4, 0x01580393);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x0, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x4, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x8, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0xC, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x700 + 0x10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x000, 0x80000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x004, 0x00000020);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x008, 0x00000028);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x00C, 0x00000030);
+    mmio_region_write32(isp_wrapper->base_addr, 0x720 + 0x010, 0x00000036);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x0,
+                        0x011a00d1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x800 + 0x4, 0x01260109);
+    mmio_region_write32(isp_wrapper->base_addr, 0x810, 0x00000414);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x000, 0x00000692);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x004,
+                        0x00000167);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x008,
+                        0x00000142);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x00C, 0x00000177);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x010, 0x000001c7);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x014,
+                        0x0006698a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x018, 0x00000032);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x01C, 0x00000023);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x020, 0x00000019);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x024, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0814 + 0x028,
+                        0x00000006);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x000, 0x0000000a);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x004,
+                        0x00a200a2);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x008, 0x00170118);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x00C, 0x01d101ed);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x010, 0x01c100f8);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x014, 0x00020005);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0870 + 0x018, 0x00050019);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x04, 0x000002f4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x08, 0x0000024e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x0C, 0x00000083);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x10, 0x000001af);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x14, 0x00000346);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x18, 0x000000a5);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x1C, 0x00000304);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x20, 0x00000111);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x24, 0x000003b9);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x28, 0x00000383);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x2C, 0x00000018);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x30, 0x0000028c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x34, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x38, 0x00000087);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x3C, 0x00000047);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x40, 0x000001a4);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0900 + 0x44, 0x000002bc);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0550, 0x80000007);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0554, 0x0000011c);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0558, 0x000000c1);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x055c, 0x0000001e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0560, 0x00000078);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0564, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0568, 0x0000c2e6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x056C, 0x8ef9ad1e);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x0, 0x00000026);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x4, 0x0000004b);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x8, 0x0000000f);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0xC, 0x000001ea);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x10, 0x000001d6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x14, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x18, 0x00000040);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x1C, 0x000001ca);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0A00 + 0x20, 0x000001f6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0xA24,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A30, 0x000000dd);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A34, 0x000007c6);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A38, 0x000007df);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A3C, 0x000007bf);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A40, 0x000000ec);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A44, 0x000007de);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A48, 0x00000002);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A4C, 0x000007ae);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A50, 0x000000e0);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A54, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A58, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0A5C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B00, 0x00000020);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B10, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B18, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0C00,
+                        0x00008469);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0C00,
+                        0x0000a674);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0C00,
+                        0x0000fa3d);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0C00,
+                        0x0000ef61);
+    mmio_region_write32(isp_wrapper->base_addr, 0x14 + 0x0C00,
+                        0x0000f9b7);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0C00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x6C + 0x0C00,
+                        0x000000fa);
+    mmio_region_write32(isp_wrapper->base_addr, 0x08 + 0x0E00,
+                        0x5a000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0C + 0x0E00,
+                        0x00019f20);
+    mmio_region_write32(isp_wrapper->base_addr, 0x10 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x18 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x1C + 0x0E00,
+                        0x5a01a000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x20 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x24 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x2C + 0x0E00,
+                        0x5a01a000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x30 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x34 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0xF8 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x108 + 0x0E00, 0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x110 + 0x0E00,
+                        0x00000003);
+    mmio_region_write32(isp_wrapper->base_addr, 0x130 + 0x0E00,
+                        0x00034000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x134 + 0x0E00,
+                        0x0004e000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x138 + 0x0E00,
+                        0x0004e000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x150 + 0x0E00,
+                        0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x15C + 0x0E00,
+                        0x00000001);
+    mmio_region_write32(isp_wrapper->base_addr, 0x160 + 0x0E00,
+                        0x00000000);
+    mmio_region_write32(isp_wrapper->base_addr, 0x164 + 0x0E00,
+                        0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x168 + 0x0E00,
+                        0x00000144);
+    mmio_region_write32(isp_wrapper->base_addr, 0x16C + 0x0E00,
+                        0x00019a10);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0E00, 0x003a2808);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0500 + 0x00, 0x00000868);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0400 + 0x0000, 0x00207259);
+    mmio_region_write32(isp_wrapper->base_addr, 0x00 + 0x0C00, 0x00000190);
+    mmio_region_write32(isp_wrapper->base_addr, 0x04 + 0x0E00, 0x000000b0);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_clear_en(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0xb00, 0x00040000);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_isp_irq_mask(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    // ISP_IMSC Interrupt mask, 0 active
+    mmio_region_write32(isp_wrapper->base_addr, 0xb00, 0x00000000);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_mi_irq_mask(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    // MI_IMSC Interrupt mask, 0 active
+    mmio_region_write32(isp_wrapper->base_addr, 0xef8, 0x00000000);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_isp_irq_done(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    uint32_t irq_status = mmio_region_read32(isp_wrapper->base_addr, 0x0000 + 0x0B08);
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, irq_status);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_mi_irq_done(const dif_isp_wrapper_t *isp_wrapper)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    uint32_t irq_status =
+        mmio_region_read32(isp_wrapper->base_addr, 0x100 + 0x0E00);
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, irq_status);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_read_en(const dif_isp_wrapper_t *isp_wrapper,
+                                     uint32_t *result)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    // MI_MIS Masked Interrupt Status
+    *result = mmio_region_read32(isp_wrapper->base_addr, 0xf00);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_read_mi_mis(const dif_isp_wrapper_t *isp_wrapper,
+                                         uint32_t *result)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    *result = mmio_region_read32(isp_wrapper->base_addr, 0x100 + 0x0E00);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_read_isp_mis(const dif_isp_wrapper_t *isp_wrapper,
+                                          uint32_t *result)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    *result = mmio_region_read32(isp_wrapper->base_addr, 0x0000 + 0x0B08);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_read_isp_ris(const dif_isp_wrapper_t *isp_wrapper,
+                                          uint32_t *val)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    *val = mmio_region_read32(isp_wrapper->base_addr, 0x0000 + 0x0B04);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_read_mi_ris(const dif_isp_wrapper_t *isp_wrapper,
+                                         uint32_t *val)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    *val = mmio_region_read32(isp_wrapper->base_addr, 0xFC + 0x0E00);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_write_isp_icr(const dif_isp_wrapper_t *isp_wrapper,
+                                           uint32_t val)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0x0000 + 0x0B0C, val);
+    return kDifOk;
+}
+
+dif_result_t dif_isp_wrapper_write_mi_icr(const dif_isp_wrapper_t *isp_wrapper,
+                                          uint32_t val)
+{
+    if (isp_wrapper == NULL) {
+        return kDifBadArg;
+    }
+    mmio_region_write32(isp_wrapper->base_addr, 0x104 + 0x0E00, val);
+    return kDifOk;
+}
