blob: ab040346d34a65fe16855ad44a80da4e55298ead [file] [log] [blame]
// 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;
}