mirror of
https://gitlab.com/zephray/glider.git
synced 2024-11-14 04:57:54 +00:00
216 lines
6.1 KiB
C
216 lines
6.1 KiB
C
//
|
|
// Copyright 2023 Wenting Zhang <zephray@outlook.com>
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
// SOFTWARE.
|
|
//
|
|
#pragma once
|
|
|
|
/* BOARD REVISION CONFIGURATION */
|
|
// Eariler revisions are not supported
|
|
//#define BOARD_REV_R0P5
|
|
//#define BOARD_REV_R0P6
|
|
// Lite version uses DVI instead of Type-C DP Alt-mode
|
|
#define BOARD_REV_RL0P1
|
|
|
|
/* SCREEN CONFIGURATION */
|
|
|
|
// #define SCREEN_6_0_INCH
|
|
// #define SCREEN_7_8_INCH
|
|
// #define SCREEN_10_3_INCH
|
|
// #define SCREEN_10_8_INCH
|
|
#define SCREEN_13_3_INCH
|
|
|
|
// #define SCREEN_600_800
|
|
// #define SCREEN_800_600
|
|
// #define SCREEN_1024_758
|
|
// #define SCREEN_1448_1072
|
|
#define SCREEN_1600_1200
|
|
// #define SCREEN_1872_1404
|
|
// #define SCREEN_1920_1080
|
|
// #define SCREEN_2200_1650
|
|
|
|
#define SCREEN_MONO
|
|
// #define SCREEN_DES_COLOR
|
|
|
|
|
|
/* SET BASED ON PREVIOUS DEFINES, DO NOT MODIFY */
|
|
#if defined(BOARD_REV_R0P5)
|
|
#define POWER_TPS65185
|
|
#define INPUT_TYPEC
|
|
#elif defined(BOARD_REV_R0P6)
|
|
#define POWER_GPIO
|
|
// VCOM measurement is not supported
|
|
#define INPUT_TYPEC
|
|
#elif defined(BOARD_REV_RL0P1)
|
|
#define POWER_GPIO
|
|
#define POWER_GPIO_VCOM_MEASURE
|
|
#define INPUT_DVI
|
|
#else
|
|
#error "Unknown board revision"
|
|
#endif
|
|
|
|
// Used in EDID
|
|
#define SCREEN_ASPECT_16_10 0x00
|
|
#define SCREEN_ASPECT_4_3 0x40
|
|
#define SCREEN_ASPECT_5_4 0x80
|
|
#define SCREEN_ASPECT_16_9 0xC0
|
|
|
|
// Screen dimension in mm
|
|
#if defined(SCREEN_6_0_INCH)
|
|
#define SCREEN_SIZE_X 122
|
|
#define SCREEN_SIZE_Y 91
|
|
#define SCREEN_ASPECT SCREEN_ASPECT_4_3
|
|
#elif defined(SCREEN_7_8_INCH)
|
|
#define SCREEN_SIZE_X 158
|
|
#define SCREEN_SIZE_Y 119
|
|
#define SCREEN_ASPECT SCREEN_ASPECT_4_3
|
|
#elif defined(SCREEN_10_3_INCH)
|
|
#define SCREEN_SIZE_X 209
|
|
#define SCREEN_SIZE_Y 157
|
|
#define SCREEN_ASPECT SCREEN_ASPECT_4_3
|
|
#elif defined(SCREEN_10_8_INCH)
|
|
#define SCREEN_SIZE_X 239
|
|
#define SCREEN_SIZE_Y 134
|
|
#define SCREEN_ASPECT SCREEN_ASPECT_16_9
|
|
#elif defined(SCREEN_13_3_INCH)
|
|
#define SCREEN_SIZE_X 270
|
|
#define SCREEN_SIZE_Y 203
|
|
#define SCREEN_ASPECT SCREEN_ASPECT_4_3
|
|
#else
|
|
#error "Unknown screen size"
|
|
#endif
|
|
|
|
// Screen timing
|
|
#if defined(SCREEN_600_800)
|
|
// 600x800 @ 60
|
|
#define SCREEN_CLK 61000
|
|
#define SCREEN_HACT 600
|
|
#define SCREEN_VACT 800
|
|
#define SCREEN_HBLK 600
|
|
#define SCREEN_HFP 64
|
|
#define SCREEN_HSYNC 192
|
|
#define SCREEN_VBLK 48
|
|
#define SCREEN_VFP 1
|
|
#define SCREEN_VSYNC 3
|
|
#elif defined(SCREEN_800_600)
|
|
// 800x600 @ 60, 40MHz DMT
|
|
#define SCREEN_CLK 40000
|
|
#define SCREEN_HACT 800
|
|
#define SCREEN_VACT 600
|
|
#define SCREEN_HBLK 256
|
|
#define SCREEN_HFP 40
|
|
#define SCREEN_HSYNC 128
|
|
#define SCREEN_VBLK 28
|
|
#define SCREEN_VFP 1
|
|
#define SCREEN_VSYNC 4
|
|
#elif defined(SCREEN_1024_758)
|
|
// 1024x758 @ 60, 62.5MHz CVT
|
|
#define SCREEN_CLK 62500
|
|
#define SCREEN_HACT 1024
|
|
#define SCREEN_VACT 758
|
|
#define SCREEN_HBLK 304
|
|
#define SCREEN_HFP 48
|
|
#define SCREEN_HSYNC 104
|
|
#define SCREEN_VBLK 29
|
|
#define SCREEN_VFP 3
|
|
#define SCREEN_VSYNC 10
|
|
|
|
#define TCON_HACT 256
|
|
#define TCON_HBP 2
|
|
#define TCON_HSYNC 2
|
|
#define TCON_HFP 72
|
|
#define TCON_VACT 758
|
|
#define TCON_VBP 3
|
|
#define TCON_VSYNC 1
|
|
#define TCON_VFP 12
|
|
#elif defined(SCREEN_1448_1072)
|
|
// 1448x1072 @ 60, 128.5MHz CVT
|
|
#define SCREEN_CLK 128500
|
|
#define SCREEN_HACT 1448
|
|
#define SCREEN_VACT 1072
|
|
#define SCREEN_HBLK 480
|
|
#define SCREEN_HFP 88
|
|
#define SCREEN_HSYNC 152
|
|
#define SCREEN_VBLK 40
|
|
#define SCREEN_VFP 3
|
|
#define SCREEN_VSYNC 10
|
|
#elif defined(SCREEN_1600_1200)
|
|
// 1600x1200 @ 60, 162MHz DMT
|
|
// #define SCREEN_CLK 162000
|
|
// #define SCREEN_HACT 1600
|
|
// #define SCREEN_VACT 1200
|
|
// #define SCREEN_HBLK 560
|
|
// #define SCREEN_HFP 64
|
|
// #define SCREEN_HSYNC 192
|
|
// #define SCREEN_VBLK 50
|
|
// #define SCREEN_VFP 1
|
|
// #define SCREEN_VSYNC 3
|
|
// 1600x1200 @ 60, 124.488MHz CVT-RB-v2
|
|
#define SCREEN_CLK 124488
|
|
#define SCREEN_HACT 1600
|
|
#define SCREEN_VACT 1200
|
|
#define SCREEN_HBLK 80
|
|
#define SCREEN_HFP 8
|
|
#define SCREEN_HSYNC 32
|
|
#define SCREEN_VBLK 35
|
|
#define SCREEN_VFP 21
|
|
#define SCREEN_VSYNC 8
|
|
|
|
#define TCON_HACT 400
|
|
#define TCON_HBP 2
|
|
#define TCON_HSYNC 2
|
|
#define TCON_HFP 16
|
|
#define TCON_VACT 1200
|
|
#define TCON_VBP 2
|
|
#define TCON_VSYNC 1
|
|
#define TCON_VFP 12
|
|
#elif defined(SCREEN_1872_1404)
|
|
// 1872x1404 @ 60, 162MHz Custom
|
|
#define SCREEN_CLK 162000
|
|
#define SCREEN_HACT 1872
|
|
#define SCREEN_VACT 1404
|
|
#define SCREEN_HBLK 38
|
|
#define SCREEN_HFP 6
|
|
#define SCREEN_HSYNC 10
|
|
#define SCREEN_VBLK 10
|
|
#define SCREEN_VFP 1
|
|
#define SCREEN_VSYNC 3
|
|
#elif defined(SCREEN_1920_1080)
|
|
// 1920x1080 @ 60, 148.5MHz CEA-861/DMT
|
|
#define SCREEN_CLK 148500
|
|
#define SCREEN_HACT 1920
|
|
#define SCREEN_VACT 1080
|
|
#define SCREEN_HBLK 280
|
|
#define SCREEN_HFP 88
|
|
#define SCREEN_HSYNC 44
|
|
#define SCREEN_VBLK 45
|
|
#define SCREEN_VFP 4
|
|
#define SCREEN_VSYNC 5
|
|
#elif defined(SCREEN_2200_1650)
|
|
// 2200x1650 @ 60, 224MHz Custom
|
|
#define SCREEN_CLK 224000
|
|
#define SCREEN_HACT 2200
|
|
#define SCREEN_VACT 1650
|
|
#define SCREEN_HBLK 36
|
|
#define SCREEN_HFP 6
|
|
#define SCREEN_HSYNC 10
|
|
#define SCREEN_VBLK 20
|
|
#define SCREEN_VFP 1
|
|
#define SCREEN_VSYNC 5
|
|
#endif
|