blob: 0f041ae71ecff15cc25fa79fcead1d5a71fc4702 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
#include <hwreg/bitfields.h>
#include <hwreg/mmio.h>
//////////////////////////////////////////////////
// MIPI TX Registers
//////////////////////////////////////////////////
#define SYSCONFIG_DISP_OVL0_MOUT_EN (0x0030)
#define SYSCONFIG_DISP_DITHER_MOUT_EN (0x0038)
#define SYSCONFIG_DISP_UFOE_MOUT_EN (0x003C)
#define SYSCONFIG_DISP_COLOR0_SEL_IN (0x0058)
#define SYSCONFIG_DISP_UFOE_SEL_IN (0x0060)
#define SYSCONFIG_DSI0_SEL_IN (0x0064)
#define SYSCONFIG_DISP_RDMA0_SOUT_SEL_IN (0x006C)
#define SYSCONFIG_MMSYS_MISC (0x00F0)
#define SYSCONFIG_MMSYS_CG_CON0 (0x0100)
#define SYSCONFIG_MMSYS_CG_SET0 (0x0104)
#define SYSCONFIG_MMSYS_CG_CLR0 (0x0108)
#define SYSCONFIG_MMSYS_CG_CON1 (0x0110)
#define SYSCONFIG_MMSYS_CG_SET1 (0x0114)
#define SYSCONFIG_MMSYS_CG_CLR1 (0x0118)
#define SYSCONFIG_MMSYS_HW_DCM_DIS0 (0x0120)
#define SYSCONFIG_MMSYS_HW_DCM_DIS_SET0 (0x0124)
#define SYSCONFIG_MMSYS_HW_DCM_DIS_CLR0 (0x0128)
#define SYSCONFIG_MMSYS_SW0_RST_B (0x0140)
#define SYSCONFIG_MMSYS_SW1_RST_B (0x0144)
#define SYSCONFIG_MMSYS_LCM_RST_B (0x0150)
#define SYSCONFIG_MMSYS_DUMMY (0x0890)
namespace mt8167s_display {
class DispOvl0MoutEnReg : public hwreg::RegisterBase<DispOvl0MoutEnReg, uint32_t> {
public:
DEF_BIT(1, out_wdma);
DEF_BIT(0, out_color);
static auto Get() {
return hwreg::RegisterAddr<DispOvl0MoutEnReg>(SYSCONFIG_DISP_OVL0_MOUT_EN);
}
};
class DispDitherMoutEnReg : public hwreg::RegisterBase<DispDitherMoutEnReg, uint32_t> {
public:
DEF_BIT(2, out_wdma);
DEF_BIT(1, out_ufoe);
DEF_BIT(0, out_rdma0);
static auto Get() {
return hwreg::RegisterAddr<DispDitherMoutEnReg>(SYSCONFIG_DISP_DITHER_MOUT_EN);
}
};
class DispUfoeMoutEnReg : public hwreg::RegisterBase<DispUfoeMoutEnReg, uint32_t> {
public:
DEF_BIT(2, out_wdma);
DEF_BIT(1, out_dpi);
DEF_BIT(0, out_dsi);
static auto Get() {
return hwreg::RegisterAddr<DispUfoeMoutEnReg>(SYSCONFIG_DISP_UFOE_MOUT_EN);
}
};
class DispColor0SelInReg : public hwreg::RegisterBase<DispColor0SelInReg, uint32_t> {
public:
DEF_BIT(0, sel);
static auto Get() {
return hwreg::RegisterAddr<DispColor0SelInReg>(SYSCONFIG_DISP_COLOR0_SEL_IN);
}
};
class DispUfoeSelInReg : public hwreg::RegisterBase<DispUfoeSelInReg, uint32_t> {
public:
DEF_BIT(0, sel);
static auto Get() {
return hwreg::RegisterAddr<DispUfoeSelInReg>(SYSCONFIG_DISP_UFOE_SEL_IN);
}
};
class Dsi0SelInReg : public hwreg::RegisterBase<Dsi0SelInReg, uint32_t> {
public:
DEF_FIELD(1, 0, sel);
static auto Get() {
return hwreg::RegisterAddr<Dsi0SelInReg>(SYSCONFIG_DSI0_SEL_IN);
}
};
class DispRdma0SoutSelInReg : public hwreg::RegisterBase<DispRdma0SoutSelInReg, uint32_t> {
public:
DEF_FIELD(1, 0, sel);
static auto Get() {
return hwreg::RegisterAddr<DispRdma0SoutSelInReg>(SYSCONFIG_DISP_RDMA0_SOUT_SEL_IN);
}
};
class MmsysCgCon0Reg : public hwreg::RegisterBase<MmsysCgCon0Reg, uint32_t> {
public:
DEF_BIT(19, ufoe);
DEF_BIT(18, dither);
DEF_BIT(17, gamma);
DEF_BIT(16, aal);
DEF_BIT(15, ccorr);
DEF_BIT(14, color0);
DEF_BIT(13, wdma0);
DEF_BIT(12, rdma1);
DEF_BIT(11, rdma0);
DEF_BIT(10, ovl0);
DEF_BIT(1, smi_larb0);
DEF_BIT(0, smi_common);
static auto Get() {
return hwreg::RegisterAddr<MmsysCgCon0Reg>(SYSCONFIG_MMSYS_CG_CON0);
}
};
class MmsysCgSet0Reg : public hwreg::RegisterBase<MmsysCgSet0Reg, uint32_t> {
public:
DEF_BIT(19, ufoe);
DEF_BIT(18, dither);
DEF_BIT(17, gamma);
DEF_BIT(16, aal);
DEF_BIT(15, ccorr);
DEF_BIT(14, color0);
DEF_BIT(13, wdma0);
DEF_BIT(12, rdma1);
DEF_BIT(11, rdma0);
DEF_BIT(10, ovl0);
DEF_BIT(1, smi_larb0);
DEF_BIT(0, smi_common);
static auto Get() {
return hwreg::RegisterAddr<MmsysCgSet0Reg>(SYSCONFIG_MMSYS_CG_SET0);
}
};
class MmsysCgClr0Reg : public hwreg::RegisterBase<MmsysCgClr0Reg, uint32_t> {
public:
DEF_BIT(19, ufoe);
DEF_BIT(18, dither);
DEF_BIT(17, gamma);
DEF_BIT(16, aal);
DEF_BIT(15, ccorr);
DEF_BIT(14, color0);
DEF_BIT(13, wdma0);
DEF_BIT(12, rdma1);
DEF_BIT(11, rdma0);
DEF_BIT(10, ovl0);
DEF_BIT(1, smi_larb0);
DEF_BIT(0, smi_common);
static auto Get() {
return hwreg::RegisterAddr<MmsysCgClr0Reg>(SYSCONFIG_MMSYS_CG_CLR0);
}
};
class MmsysCgCon1Reg : public hwreg::RegisterBase<MmsysCgCon1Reg, uint32_t> {
public:
DEF_BIT(17, dpi1_eng);
DEF_BIT(16, dpi1_pix);
DEF_BIT(15, lvds_cts);
DEF_BIT(14, lvds_pix);
DEF_BIT(5, dpi0_eng);
DEF_BIT(4, dpi0_pix);
DEF_BIT(3, dsi0_dig);
DEF_BIT(2, dsi0_eng);
DEF_BIT(1, pwm0_26m);
DEF_BIT(0, pwm0_mm);
static auto Get() {
return hwreg::RegisterAddr<MmsysCgCon1Reg>(SYSCONFIG_MMSYS_CG_CON1);
}
};
class MmsysCgSet1Reg : public hwreg::RegisterBase<MmsysCgSet1Reg, uint32_t> {
public:
DEF_BIT(17, dpi1_eng);
DEF_BIT(16, dpi1_pix);
DEF_BIT(15, lvds_cts);
DEF_BIT(14, lvds_pix);
DEF_BIT(5, dpi0_eng);
DEF_BIT(4, dpi0_pix);
DEF_BIT(3, dsi0_dig);
DEF_BIT(2, dsi0_eng);
DEF_BIT(1, pwm0_26m);
DEF_BIT(0, pwm0_mm);
static auto Get() {
return hwreg::RegisterAddr<MmsysCgSet1Reg>(SYSCONFIG_MMSYS_CG_SET1);
}
};
class MmsysCgClr1Reg : public hwreg::RegisterBase<MmsysCgClr1Reg, uint32_t> {
public:
DEF_BIT(17, dpi1_eng);
DEF_BIT(16, dpi1_pix);
DEF_BIT(15, lvds_cts);
DEF_BIT(14, lvds_pix);
DEF_BIT(5, dpi0_eng);
DEF_BIT(4, dpi0_pix);
DEF_BIT(3, dsi0_dig);
DEF_BIT(2, dsi0_eng);
DEF_BIT(1, pwm0_26m);
DEF_BIT(0, pwm0_mm);
static auto Get() {
return hwreg::RegisterAddr<MmsysCgClr1Reg>(SYSCONFIG_MMSYS_CG_CLR1);
}
};
class MmsysLcmRstReg : public hwreg::RegisterBase<MmsysLcmRstReg, uint32_t> {
public:
DEF_BIT(0, reset);
static auto Get() {
return hwreg::RegisterAddr<MmsysLcmRstReg>(SYSCONFIG_MMSYS_LCM_RST_B);
}
};
class MmsysDummyReg : public hwreg::RegisterBase<MmsysDummyReg, uint32_t> {
public:
static auto Get() {
return hwreg::RegisterAddr<MmsysDummyReg>(SYSCONFIG_MMSYS_DUMMY);
}
};
} // namespace mt8167s_display