blob: af3d784949624243f171cf739cc6340a4a8be283 [file] [log] [blame] [edit]
// Copyright 2018 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.
#ifndef SRC_GRAPHICS_DISPLAY_DRIVERS_AMLOGIC_DISPLAY_COMMON_H_
#define SRC_GRAPHICS_DISPLAY_DRIVERS_AMLOGIC_DISPLAY_COMMON_H_
#include <lib/ddk/debug.h>
#include <hwreg/mmio.h>
#include "src/graphics/display/lib/api-types-cpp/display-id.h"
#define DISPLAY_MASK(start, count) (((1 << (count)) - 1) << (start))
#define DISPLAY_SET_MASK(mask, start, count, value) \
((mask & ~DISPLAY_MASK(start, count)) | (((value) << (start)) & DISPLAY_MASK(start, count)))
#define SET_BIT32(x, dest, value, start, count) \
WRITE32_##x##_REG(dest, (READ32_##x##_REG(dest) & ~DISPLAY_MASK(start, count)) | \
(((value) << (start)) & DISPLAY_MASK(start, count)))
#define GET_BIT32(x, dest, start, count) \
((READ32_##x##_REG(dest) >> (start)) & ((1 << (count)) - 1))
#define SET_MASK32(x, dest, mask) WRITE32_##x##_REG(dest, (READ32_##x##_REG(dest) | mask))
#define CLEAR_MASK32(x, dest, mask) WRITE32_##x##_REG(dest, (READ32_##x##_REG(dest) & ~(mask)))
#define WRITE32_REG(x, a, v) WRITE32_##x##_REG(a, v)
#define READ32_REG(x, a) READ32_##x##_REG(a)
// Should match display_mmios table in board driver
enum {
MMIO_VPU, // VPU (Video Processing Unit)
MMIO_MPI_DSI, // TOP_MIPI_DSI (DSI "top" host controller integration)
MMIO_DSI_PHY, // DSI_PHY
MMIO_HHI, // HIU (Host Interface Unit) / HHI
MMIO_AOBUS, // RTI / AO_RTI / AOBUS_RTI
MMIO_RESET, // RESET
MMIO_GPIO_MUX, // PERIPHS_REGS (GPIO Multiplexing)
};
// Should match display_gpios table in board driver
enum {
GPIO_BL,
GPIO_LCD,
GPIO_HW_ID0,
GPIO_HW_ID1,
GPIO_HW_ID2,
GPIO_COUNT,
};
// Should match display_irqs table in board driver
enum {
IRQ_VSYNC,
IRQ_RDMA,
IRQ_VD1_WR,
};
enum CaptureState {
CAPTURE_RESET = 0,
CAPTURE_IDLE = 1,
CAPTURE_ACTIVE = 2,
CAPTURE_ERROR = 3,
};
constexpr display::DisplayId kPanelDisplayId(1);
constexpr bool kBootloaderDisplayEnabled = true;
#endif // SRC_GRAPHICS_DISPLAY_DRIVERS_AMLOGIC_DISPLAY_COMMON_H_