// Copyright © 2024 ChefKiss. Licensed under the Thou Shalt Not Profit License version 1.5.
// See LICENSE for details.

#pragma once
#include <IOKit/IOTypes.h>

constexpr UInt32 mmHUBP0_DCSURF_SURFACE_CONFIG = 0x559;
constexpr UInt32 mmHUBP0_DCSURF_ADDR_CONFIG = 0x55A;
constexpr UInt32 mmHUBP0_DCSURF_TILING_CONFIG = 0x55B;
constexpr UInt32 mmHUBP0_DCSURF_PRI_VIEWPORT_START = 0x55C;
constexpr UInt32 mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION = 0x55D;
constexpr UInt32 mmHUBP1_DCSURF_SURFACE_CONFIG = 0x61D;
constexpr UInt32 mmHUBP1_DCSURF_ADDR_CONFIG = 0x61E;
constexpr UInt32 mmHUBP1_DCSURF_TILING_CONFIG = 0x61F;
constexpr UInt32 mmHUBP1_DCSURF_PRI_VIEWPORT_START = 0x620;
constexpr UInt32 mmHUBP1_DCSURF_PRI_VIEWPORT_DIMENSION = 0x621;
constexpr UInt32 mmHUBP2_DCSURF_SURFACE_CONFIG = 0x6E1;
constexpr UInt32 mmHUBP2_DCSURF_ADDR_CONFIG = 0x6E2;
constexpr UInt32 mmHUBP2_DCSURF_TILING_CONFIG = 0x6E3;
constexpr UInt32 mmHUBP2_DCSURF_PRI_VIEWPORT_START = 0x6E4;
constexpr UInt32 mmHUBP2_DCSURF_PRI_VIEWPORT_DIMENSION = 0x6E5;
constexpr UInt32 mmHUBP3_DCSURF_SURFACE_CONFIG = 0x7A5;
constexpr UInt32 mmHUBP3_DCSURF_ADDR_CONFIG = 0x7A6;
constexpr UInt32 mmHUBP3_DCSURF_TILING_CONFIG = 0x7A7;
constexpr UInt32 mmHUBP3_DCSURF_PRI_VIEWPORT_START = 0x7A8;
constexpr UInt32 mmHUBP3_DCSURF_PRI_VIEWPORT_DIMENSION = 0x7A9;

constexpr UInt32 mmHUBPREQ0_DCSURF_SURFACE_PITCH = 0x57B;
constexpr UInt32 mmHUBPREQ0_DCSURF_PRIMARY_SURFACE_ADDRESS = 0x57D;
constexpr UInt32 mmHUBPREQ0_DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH = 0x57E;
constexpr UInt32 mmHUBPREQ0_DCSURF_FLIP_CONTROL = 0x58E;
constexpr UInt32 mmHUBPREQ0_DCSURF_SURFACE_EARLIEST_INUSE = 0x597;
constexpr UInt32 mmHUBPREQ0_DCSURF_SURFACE_EARLIEST_INUSE_HIGH = 0x598;
constexpr UInt32 mmHUBPREQ1_DCSURF_SURFACE_PITCH = 0x63F;
constexpr UInt32 mmHUBPREQ1_DCSURF_PRIMARY_SURFACE_ADDRESS = 0x641;
constexpr UInt32 mmHUBPREQ1_DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH = 0x642;
constexpr UInt32 mmHUBPREQ1_DCSURF_FLIP_CONTROL = 0x652;
constexpr UInt32 mmHUBPREQ1_DCSURF_SURFACE_EARLIEST_INUSE = 0x65B;
constexpr UInt32 mmHUBPREQ1_DCSURF_SURFACE_EARLIEST_INUSE_HIGH = 0x65C;
constexpr UInt32 mmHUBPREQ2_DCSURF_SURFACE_PITCH = 0x703;
constexpr UInt32 mmHUBPREQ2_DCSURF_PRIMARY_SURFACE_ADDRESS = 0x705;
constexpr UInt32 mmHUBPREQ2_DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH = 0x706;
constexpr UInt32 mmHUBPREQ2_DCSURF_FLIP_CONTROL = 0x716;
constexpr UInt32 mmHUBPREQ2_DCSURF_SURFACE_EARLIEST_INUSE = 0x71F;
constexpr UInt32 mmHUBPREQ2_DCSURF_SURFACE_EARLIEST_INUSE_HIGH = 0x720;
constexpr UInt32 mmHUBPREQ3_DCSURF_SURFACE_PITCH = 0x7C7;
constexpr UInt32 mmHUBPREQ3_DCSURF_PRIMARY_SURFACE_ADDRESS = 0x7C9;
constexpr UInt32 mmHUBPREQ3_DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH = 0x7CA;
constexpr UInt32 mmHUBPREQ3_DCSURF_FLIP_CONTROL = 0x7DA;
constexpr UInt32 mmHUBPREQ3_DCSURF_SURFACE_EARLIEST_INUSE = 0x7E3;
constexpr UInt32 mmHUBPREQ3_DCSURF_SURFACE_EARLIEST_INUSE_HIGH = 0x7E4;

constexpr UInt32 mmHUBPRET0_HUBPRET_CONTROL = 0x5E0;
constexpr UInt32 mmHUBPRET1_HUBPRET_CONTROL = 0x6A4;
constexpr UInt32 mmHUBPRET2_HUBPRET_CONTROL = 0x768;
constexpr UInt32 mmHUBPRET3_HUBPRET_CONTROL = 0x82C;

constexpr UInt32 mmOTG0_OTG_CONTROL = 0x1B41;
constexpr UInt32 mmOTG0_OTG_INTERLACE_CONTROL = 0x1B44;
constexpr UInt32 mmOTG1_OTG_CONTROL = 0x1BC1;
constexpr UInt32 mmOTG1_OTG_INTERLACE_CONTROL = 0x1BC4;
constexpr UInt32 mmOTG2_OTG_CONTROL = 0x1C41;
constexpr UInt32 mmOTG2_OTG_INTERLACE_CONTROL = 0x1C44;
constexpr UInt32 mmOTG3_OTG_CONTROL = 0x1CC1;
constexpr UInt32 mmOTG3_OTG_INTERLACE_CONTROL = 0x1CC4;
constexpr UInt32 mmOTG4_OTG_CONTROL = 0x1D41;
constexpr UInt32 mmOTG4_OTG_INTERLACE_CONTROL = 0x1D44;
constexpr UInt32 mmOTG5_OTG_CONTROL = 0x1DC1;
constexpr UInt32 mmOTG5_OTG_INTERLACE_CONTROL = 0x1DC4;
