| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| CONFIG_VENDOR_ASUS=y | ||
| CONFIG_BOARD_ASUS_A88XM_E=y | ||
| CONFIG_ENABLE_MRC_CACHE=y | ||
| CONFIG_IDS_TRACING_ENABLED=y | ||
| CONFIG_AGESA_EXTRA_TIMESTAMPS=y | ||
| CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y | ||
| CONFIG_DEBUG_RESOURCES=y |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,88 @@ | ||
| /* SPDX-License-Identifier: BSD-3-Clause */ | ||
|
|
||
| #include <commonlib/bsd/bcd.h> | ||
| #include <commonlib/bsd/elog.h> | ||
| #include <stddef.h> | ||
|
|
||
| /* | ||
| * verify and validate if header is a valid coreboot Event Log header. | ||
| * return CB_ERR if invalid, otherwise CB_SUCCESS. | ||
| */ | ||
| enum cb_err elog_verify_header(const struct elog_header *header) | ||
| { | ||
| if (header == NULL) | ||
| return CB_ERR; | ||
|
|
||
| if (header->magic != ELOG_SIGNATURE) | ||
| return CB_ERR; | ||
|
|
||
| if (header->version != ELOG_VERSION) | ||
| return CB_ERR; | ||
|
|
||
| if (header->header_size != sizeof(*header)) | ||
| return CB_ERR; | ||
|
|
||
| return CB_SUCCESS; | ||
| } | ||
|
|
||
| /* | ||
| * return the next elog event. | ||
| * return NULL if event is invalid. | ||
| */ | ||
| const struct event_header *elog_get_next_event(const struct event_header *event) | ||
| { | ||
| if (!event) | ||
| return NULL; | ||
|
|
||
| /* Point to next event */ | ||
| return (const struct event_header *)((const void *)(event) + event->length); | ||
| } | ||
|
|
||
| /* return the data associated to the event_header. */ | ||
| const void *event_get_data(const struct event_header *event) | ||
| { | ||
| /* | ||
| * Pointing to the next event returns the data, since data is the first | ||
| * field right after the header. | ||
| */ | ||
| return (const void *)(&event[1]); | ||
| } | ||
|
|
||
| /* Populate timestamp in event header with given time. */ | ||
| void elog_fill_timestamp(struct event_header *event, uint8_t sec, uint8_t min, | ||
| uint8_t hour, uint8_t mday, uint8_t mon, uint8_t year) | ||
| { | ||
| event->second = bin2bcd(sec); | ||
| event->minute = bin2bcd(min); | ||
| event->hour = bin2bcd(hour); | ||
| event->day = bin2bcd(mday); | ||
| event->month = bin2bcd(mon); | ||
| event->year = bin2bcd(year % 100); | ||
|
|
||
| /* Basic check of expected ranges. */ | ||
| if (event->month > 0x12 || event->day > 0x31 || event->hour > 0x23 || | ||
| event->minute > 0x59 || event->second > 0x59) { | ||
| event->year = 0; | ||
| event->month = 0; | ||
| event->day = 0; | ||
| event->hour = 0; | ||
| event->minute = 0; | ||
| event->second = 0; | ||
| } | ||
| } | ||
|
|
||
| void elog_update_checksum(struct event_header *event, uint8_t checksum) | ||
| { | ||
| uint8_t *event_data = (uint8_t *)event; | ||
| event_data[event->length - 1] = checksum; | ||
| } | ||
|
|
||
| uint8_t elog_checksum_event(const struct event_header *event) | ||
| { | ||
| uint8_t index, checksum = 0; | ||
| const uint8_t *data = (const uint8_t *)event; | ||
|
|
||
| for (index = 0; index < event->length; index++) | ||
| checksum += data[index]; | ||
| return checksum; | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| /* SPDX-License-Identifier: BSD-3-Clause */ | ||
|
|
||
| #ifndef _BCD_H_ | ||
| #define _BCD_H_ | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,324 @@ | ||
| /* SPDX-License-Identifier: BSD-3-Clause */ | ||
|
|
||
| #ifndef _COMMONLIB_BSD_ELOG_H_ | ||
| #define _COMMONLIB_BSD_ELOG_H_ | ||
|
|
||
| #include <inttypes.h> | ||
|
|
||
| #include <commonlib/bsd/cb_err.h> | ||
|
|
||
| /* ELOG header */ | ||
| struct elog_header { | ||
| uint32_t magic; | ||
| uint8_t version; | ||
| uint8_t header_size; | ||
| uint8_t reserved[2]; | ||
| } __packed; | ||
|
|
||
| /* ELOG related constants */ | ||
| #define ELOG_SIGNATURE 0x474f4c45 /* 'ELOG' */ | ||
| #define ELOG_VERSION 1 | ||
| #define ELOG_RW_REGION_NAME "RW_ELOG" | ||
|
|
||
| /* SMBIOS event log header */ | ||
| struct event_header { | ||
| uint8_t type; | ||
| uint8_t length; | ||
| uint8_t year; | ||
| uint8_t month; | ||
| uint8_t day; | ||
| uint8_t hour; | ||
| uint8_t minute; | ||
| uint8_t second; | ||
| } __packed; | ||
|
|
||
| /* SMBIOS Type 15 related constants */ | ||
| #define ELOG_HEADER_TYPE_OEM 0x88 | ||
|
|
||
| /* End of log */ | ||
| #define ELOG_TYPE_EOL 0xFF | ||
|
|
||
| /* | ||
| * Standard SMBIOS event log types below 0x80 | ||
| */ | ||
| #define ELOG_TYPE_UNDEFINED_EVENT 0x00 | ||
| #define ELOG_TYPE_SINGLE_BIT_ECC_MEM_ERR 0x01 | ||
| #define ELOG_TYPE_MULTI_BIT_ECC_MEM_ERR 0x02 | ||
| #define ELOG_TYPE_MEM_PARITY_ERR 0x03 | ||
| #define ELOG_TYPE_BUS_TIMEOUT 0x04 | ||
| #define ELOG_TYPE_IO_CHECK 0x05 | ||
| #define ELOG_TYPE_SW_NMI 0x06 | ||
| #define ELOG_TYPE_POST_MEM_RESIZE 0x07 | ||
| #define ELOG_TYPE_POST_ERR 0x08 | ||
| #define ELOG_TYPE_PCI_PERR 0x09 | ||
| #define ELOG_TYPE_PCI_SERR 0x0A | ||
| #define ELOG_TYPE_CPU_FAIL 0x0B | ||
| #define ELOG_TYPE_EISA_TIMEOUT 0x0C | ||
| #define ELOG_TYPE_CORRECTABLE_MEMLOG_DIS 0x0D | ||
| #define ELOG_TYPE_LOG_DISABLED 0x0E | ||
| #define ELOG_TYPE_UNDEFINED_EVENT2 0x0F | ||
| #define ELOG_TYPE_SYS_LIMIT_EXCEED 0x10 | ||
| #define ELOG_TYPE_ASYNC_HW_TIMER_EXPIRED 0x11 | ||
| #define ELOG_TYPE_SYS_CONFIG_INFO 0x12 | ||
| #define ELOG_TYPE_HDD_INFO 0x13 | ||
| #define ELOG_TYPE_SYS_RECONFIG 0x14 | ||
| #define ELOG_TYPE_CPU_ERROR 0x15 | ||
| #define ELOG_TYPE_LOG_CLEAR 0x16 | ||
| #define ELOG_TYPE_BOOT 0x17 | ||
|
|
||
| /* | ||
| * Extended defined OEM event types start at 0x80 | ||
| */ | ||
|
|
||
| /* OS/kernel events */ | ||
| #define ELOG_TYPE_OS_EVENT 0x81 | ||
| #define ELOG_OS_EVENT_CLEAN 0 /* Clean Shutdown */ | ||
| #define ELOG_OS_EVENT_NMIWDT 1 /* NMI Watchdog */ | ||
| #define ELOG_OS_EVENT_PANIC 2 /* Panic */ | ||
| #define ELOG_OS_EVENT_OOPS 3 /* Oops */ | ||
| #define ELOG_OS_EVENT_DIE 4 /* Die */ | ||
| #define ELOG_OS_EVENT_MCE 5 /* MCE */ | ||
| #define ELOG_OS_EVENT_SOFTWDT 6 /* Software Watchdog */ | ||
| #define ELOG_OS_EVENT_MBE 7 /* MBE */ | ||
| #define ELOG_OS_EVENT_TRIPLE 8 /* Triple Fault */ | ||
| #define ELOG_OS_EVENT_THERMAL 9 /* Critical Thermal Threshold */ | ||
|
|
||
| /* Last event from coreboot */ | ||
| #define ELOG_TYPE_OS_BOOT 0x90 | ||
|
|
||
| /* Embedded controller event */ | ||
| #define ELOG_TYPE_EC_EVENT 0x91 | ||
| #define EC_EVENT_LID_CLOSED 0x01 | ||
| #define EC_EVENT_LID_OPEN 0x02 | ||
| #define EC_EVENT_POWER_BUTTON 0x03 | ||
| #define EC_EVENT_AC_CONNECTED 0x04 | ||
| #define EC_EVENT_AC_DISCONNECTED 0x05 | ||
| #define EC_EVENT_BATTERY_LOW 0x06 | ||
| #define EC_EVENT_BATTERY_CRITICAL 0x07 | ||
| #define EC_EVENT_BATTERY 0x08 | ||
| #define EC_EVENT_THERMAL_THRESHOLD 0x09 | ||
| #define EC_EVENT_DEVICE_EVENT 0x0a | ||
| #define EC_EVENT_THERMAL 0x0b | ||
| #define EC_EVENT_USB_CHARGER 0x0c | ||
| #define EC_EVENT_KEY_PRESSED 0x0d | ||
| #define EC_EVENT_INTERFACE_READY 0x0e | ||
| #define EC_EVENT_KEYBOARD_RECOVERY 0x0f | ||
| #define EC_EVENT_THERMAL_SHUTDOWN 0x10 | ||
| #define EC_EVENT_BATTERY_SHUTDOWN 0x11 | ||
| #define EC_EVENT_THROTTLE_START 0x12 | ||
| #define EC_EVENT_THROTTLE_STOP 0x13 | ||
| #define EC_EVENT_HANG_DETECT 0x14 | ||
| #define EC_EVENT_HANG_REBOOT 0x15 | ||
| #define EC_EVENT_PD_MCU 0x16 | ||
| #define EC_EVENT_BATTERY_STATUS 0x17 | ||
| #define EC_EVENT_PANIC 0x18 | ||
| #define EC_EVENT_KEYBOARD_FASTBOOT 0x19 | ||
| #define EC_EVENT_RTC 0x1a | ||
| #define EC_EVENT_MKBP 0x1b | ||
| #define EC_EVENT_USB_MUX 0x1c | ||
| #define EC_EVENT_MODE_CHANGE 0x1d | ||
| #define EC_EVENT_KEYBOARD_RECOVERY_HWREINIT 0x1e | ||
| #define EC_EVENT_EXTENDED 0x1f | ||
| struct elog_ec_event { | ||
| uint8_t event; | ||
| uint8_t checksum; | ||
| } __packed; | ||
|
|
||
| /* Power */ | ||
| #define ELOG_TYPE_POWER_FAIL 0x92 | ||
| #define ELOG_TYPE_SUS_POWER_FAIL 0x93 | ||
| #define ELOG_TYPE_PWROK_FAIL 0x94 | ||
| #define ELOG_TYPE_SYS_PWROK_FAIL 0x95 | ||
| #define ELOG_TYPE_POWER_ON 0x96 | ||
| #define ELOG_TYPE_POWER_BUTTON 0x97 | ||
| #define ELOG_TYPE_POWER_BUTTON_OVERRIDE 0x98 | ||
|
|
||
| /* Reset */ | ||
| #define ELOG_TYPE_RESET_BUTTON 0x99 | ||
| #define ELOG_TYPE_SYSTEM_RESET 0x9a | ||
| #define ELOG_TYPE_RTC_RESET 0x9b | ||
| #define ELOG_TYPE_TCO_RESET 0x9c | ||
|
|
||
| /* Sleep/Wake */ | ||
| #define ELOG_TYPE_ACPI_ENTER 0x9d | ||
| /* | ||
| * Deep Sx wake variant is provided below - 0xad | ||
| * Sleep/"wake pending" event log provided below - 0xb1 - 0x01/0x02 | ||
| */ | ||
|
|
||
| #define ELOG_TYPE_ACPI_WAKE 0x9e | ||
| #define ELOG_TYPE_WAKE_SOURCE 0x9f | ||
| #define ELOG_WAKE_SOURCE_PCIE 0x00 | ||
| #define ELOG_WAKE_SOURCE_PME 0x01 | ||
| #define ELOG_WAKE_SOURCE_PME_INTERNAL 0x02 | ||
| #define ELOG_WAKE_SOURCE_RTC 0x03 | ||
| #define ELOG_WAKE_SOURCE_GPE 0x04 | ||
| #define ELOG_WAKE_SOURCE_SMBUS 0x05 | ||
| #define ELOG_WAKE_SOURCE_PWRBTN 0x06 | ||
| #define ELOG_WAKE_SOURCE_PME_HDA 0x07 | ||
| #define ELOG_WAKE_SOURCE_PME_GBE 0x08 | ||
| #define ELOG_WAKE_SOURCE_PME_EMMC 0x09 | ||
| #define ELOG_WAKE_SOURCE_PME_SDCARD 0x0a | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE1 0x0b | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE2 0x0c | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE3 0x0d | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE4 0x0e | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE5 0x0f | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE6 0x10 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE7 0x11 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE8 0x12 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE9 0x13 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE10 0x14 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE11 0x15 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE12 0x16 | ||
| #define ELOG_WAKE_SOURCE_PME_SATA 0x17 | ||
| #define ELOG_WAKE_SOURCE_PME_CSE 0x18 | ||
| #define ELOG_WAKE_SOURCE_PME_CSE2 0x19 | ||
| #define ELOG_WAKE_SOURCE_PME_CSE3 0x1a | ||
| #define ELOG_WAKE_SOURCE_PME_XHCI 0x1b | ||
| #define ELOG_WAKE_SOURCE_PME_XDCI 0x1c | ||
| #define ELOG_WAKE_SOURCE_PME_XHCI_USB_2 0x1d | ||
| #define ELOG_WAKE_SOURCE_PME_XHCI_USB_3 0x1e | ||
| #define ELOG_WAKE_SOURCE_PME_WIFI 0x1f | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE13 0x20 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE14 0x21 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE15 0x22 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE16 0x23 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE17 0x24 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE18 0x25 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE19 0x26 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE20 0x27 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE21 0x28 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE22 0x29 | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE23 0x2a | ||
| #define ELOG_WAKE_SOURCE_PME_PCIE24 0x2b | ||
| #define ELOG_WAKE_SOURCE_GPIO 0x2c | ||
| #define ELOG_WAKE_SOURCE_PME_TBT 0x2d | ||
| #define ELOG_WAKE_SOURCE_PME_TCSS_XHCI 0x2e | ||
| #define ELOG_WAKE_SOURCE_PME_TCSS_XDCI 0x2f | ||
| #define ELOG_WAKE_SOURCE_PME_TCSS_DMA 0x30 | ||
|
|
||
| struct elog_event_data_wake { | ||
| uint8_t source; | ||
| uint32_t instance; | ||
| } __packed; | ||
|
|
||
| /* Chrome OS related events */ | ||
| #define ELOG_TYPE_CROS_DEVELOPER_MODE 0xa0 | ||
| #define ELOG_TYPE_CROS_RECOVERY_MODE 0xa1 | ||
| #define ELOG_CROS_RECOVERY_MODE_BUTTON 0x02 | ||
|
|
||
| /* Management Engine Events */ | ||
| #define ELOG_TYPE_MANAGEMENT_ENGINE 0xa2 | ||
| #define ELOG_ME_PATH_NORMAL 0x00 | ||
| #define ELOG_ME_PATH_S3WAKE 0x01 | ||
| #define ELOG_ME_PATH_ERROR 0x02 | ||
| #define ELOG_ME_PATH_RECOVERY 0x03 | ||
| #define ELOG_ME_PATH_DISABLED 0x04 | ||
| #define ELOG_ME_PATH_FW_UPDATE 0x05 | ||
|
|
||
| #define ELOG_TYPE_MANAGEMENT_ENGINE_EXT 0xa4 | ||
| #define ELOG_ME_PHASE_ROM 0 | ||
| #define ELOG_ME_PHASE_BRINGUP 1 | ||
| #define ELOG_ME_PHASE_UKERNEL 2 | ||
| #define ELOG_ME_PHASE_POLICY 3 | ||
| #define ELOG_ME_PHASE_MODULE 4 | ||
| #define ELOG_ME_PHASE_UNKNOWN 5 | ||
| #define ELOG_ME_PHASE_HOST 6 | ||
| struct elog_event_data_me_extended { | ||
| uint8_t current_working_state; | ||
| uint8_t operation_state; | ||
| uint8_t operation_mode; | ||
| uint8_t error_code; | ||
| uint8_t progress_code; | ||
| uint8_t current_pmevent; | ||
| uint8_t current_state; | ||
| } __packed; | ||
|
|
||
| /* Last post code from previous boot */ | ||
| #define ELOG_TYPE_LAST_POST_CODE 0xa3 | ||
| #define ELOG_TYPE_POST_EXTRA 0xa6 | ||
| #define ELOG_TYPE_POST_EXTRA_PATH 0x01 | ||
| #define ELOG_DEV_PATH_TYPE_NONE 0 | ||
| #define ELOG_DEV_PATH_TYPE_ROOT 1 | ||
| #define ELOG_DEV_PATH_TYPE_PCI 2 | ||
| #define ELOG_DEV_PATH_TYPE_PNP 3 | ||
| #define ELOG_DEV_PATH_TYPE_I2C 4 | ||
| #define ELOG_DEV_PATH_TYPE_APIC 5 | ||
| #define ELOG_DEV_PATH_TYPE_DOMAIN 6 | ||
| #define ELOG_DEV_PATH_TYPE_CPU_CLUSTER 7 | ||
| #define ELOG_DEV_PATH_TYPE_CPU 8 | ||
| #define ELOG_DEV_PATH_TYPE_CPU_BUS 9 | ||
| #define ELOG_DEV_PATH_TYPE_IOAPIC 10 | ||
|
|
||
| /* EC Shutdown Reason */ | ||
| #define ELOG_TYPE_EC_SHUTDOWN 0xa5 | ||
|
|
||
| /* ARM/generic versions of sleep/wake - These came from another firmware | ||
| * apparently, but not all the firmware sources were updated so that the | ||
| * elog namespace was coherent. */ | ||
| #define ELOG_TYPE_SLEEP 0xa7 | ||
| #define ELOG_TYPE_WAKE 0xa8 | ||
| #define ELOG_TYPE_FW_WAKE 0xa9 | ||
|
|
||
| /* Memory Cache Update */ | ||
| #define ELOG_TYPE_MEM_CACHE_UPDATE 0xaa | ||
| #define ELOG_MEM_CACHE_UPDATE_SLOT_NORMAL 0 | ||
| #define ELOG_MEM_CACHE_UPDATE_SLOT_RECOVERY 1 | ||
| #define ELOG_MEM_CACHE_UPDATE_SLOT_VARIABLE 2 | ||
| #define ELOG_MEM_CACHE_UPDATE_STATUS_SUCCESS 0 | ||
| #define ELOG_MEM_CACHE_UPDATE_STATUS_FAIL 1 | ||
| struct elog_event_mem_cache_update { | ||
| uint8_t slot; | ||
| uint8_t status; | ||
| } __packed; | ||
|
|
||
| /* CPU Thermal Trip */ | ||
| #define ELOG_TYPE_THERM_TRIP 0xab | ||
|
|
||
| /* Cr50 */ | ||
| #define ELOG_TYPE_CR50_UPDATE 0xac | ||
|
|
||
| /* Deep Sx wake variant */ | ||
| #define ELOG_TYPE_ACPI_DEEP_WAKE 0xad | ||
|
|
||
| /* EC Device Event */ | ||
| #define ELOG_TYPE_EC_DEVICE_EVENT 0xae | ||
| #define ELOG_EC_DEVICE_EVENT_TRACKPAD 0x01 | ||
| #define ELOG_EC_DEVICE_EVENT_DSP 0x02 | ||
| #define ELOG_EC_DEVICE_EVENT_WIFI 0x03 | ||
|
|
||
| /* S0ix sleep/wake */ | ||
| #define ELOG_TYPE_S0IX_ENTER 0xaf | ||
| #define ELOG_TYPE_S0IX_EXIT 0xb0 | ||
|
|
||
| /* Extended events */ | ||
| #define ELOG_TYPE_EXTENDED_EVENT 0xb1 | ||
| #define ELOG_SLEEP_PENDING_PM1_WAKE 0x01 | ||
| #define ELOG_SLEEP_PENDING_GPE0_WAKE 0x02 | ||
|
|
||
| /* Cr50 reset to enable TPM */ | ||
| #define ELOG_TYPE_CR50_NEED_RESET 0xb2 | ||
|
|
||
| /* CSME-Initiated Host Reset */ | ||
| #define ELOG_TYPE_MI_HRPD 0xb3 | ||
| #define ELOG_TYPE_MI_HRPC 0xb4 | ||
| #define ELOG_TYPE_MI_HR 0xb5 | ||
|
|
||
| struct elog_event_extended_event { | ||
| uint8_t event_type; | ||
| uint32_t event_complement; | ||
| } __packed; | ||
|
|
||
|
|
||
| enum cb_err elog_verify_header(const struct elog_header *header); | ||
| const struct event_header *elog_get_next_event(const struct event_header *event); | ||
| const void *event_get_data(const struct event_header *event); | ||
| void elog_fill_timestamp(struct event_header *event, uint8_t sec, uint8_t min, | ||
| uint8_t hour, uint8_t mday, uint8_t mon, uint8_t year); | ||
| /* Update the checksum at the last byte. */ | ||
| void elog_update_checksum(struct event_header *event, uint8_t checksum); | ||
| /* Simple byte checksum for events. */ | ||
| uint8_t elog_checksum_event(const struct event_header *event); | ||
|
|
||
| #endif /* _COMMONLIB_BSD_ELOG_H_ */ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| ## SPDX-License-Identifier: GPL-2.0-only | ||
|
|
||
| # Mainboards should select the options in here to specify which panel parameter | ||
| # settings they want stored in their CBFS. | ||
|
|
||
| config MIPI_PANEL_AUO_B101UAN08_3 | ||
| bool | ||
|
|
||
| config MIPI_PANEL_AUO_KD101N80_45NA | ||
| bool | ||
|
|
||
| config MIPI_PANEL_AUO_NT51021D8P | ||
| bool | ||
|
|
||
| config MIPI_PANEL_BOE_TV080WUM_NG0 | ||
| bool | ||
|
|
||
| config MIPI_PANEL_BOE_TV101WUM_N53 | ||
| bool | ||
|
|
||
| config MIPI_PANEL_BOE_TV101WUM_NG0 | ||
| bool | ||
|
|
||
| config MIPI_PANEL_BOE_TV101WUM_NL6 | ||
| bool | ||
|
|
||
| config MIPI_PANEL_BOE_TV105WUM_NW0 | ||
| bool | ||
|
|
||
| config MIPI_PANEL_CMN_P097PFG_SSD2858 | ||
| bool | ||
|
|
||
| config MIPI_PANEL_INX_OTA7290D10P | ||
| bool | ||
|
|
||
| config MIPI_PANEL_STA_2081101QFH032011_53G | ||
| bool | ||
|
|
||
| config MIPI_PANEL_VIS_RM69299 | ||
| bool |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| # SPDX-License-Identifier: GPL-2.0-only | ||
|
|
||
| ramstage-y += panel.c | ||
|
|
||
| panel-params-y := | ||
|
|
||
| panel-params-$(CONFIG_MIPI_PANEL_AUO_B101UAN08_3) += panel-AUO_B101UAN08_3 | ||
| panel-params-$(CONFIG_MIPI_PANEL_AUO_KD101N80_45NA) += panel-AUO_KD101N80_45NA | ||
| panel-params-$(CONFIG_MIPI_PANEL_AUO_NT51021D8P) += panel-AUO_NT51021D8P | ||
|
|
||
| panel-params-$(CONFIG_MIPI_PANEL_BOE_TV080WUM_NG0) += panel-BOE_TV080WUM_NG0 | ||
| panel-params-$(CONFIG_MIPI_PANEL_BOE_TV101WUM_N53) += panel-BOE_TV101WUM_N53 | ||
| panel-params-$(CONFIG_MIPI_PANEL_BOE_TV101WUM_NG0) += panel-BOE_TV101WUM_NG0 | ||
| panel-params-$(CONFIG_MIPI_PANEL_BOE_TV101WUM_NL6) += panel-BOE_TV101WUM_NL6 | ||
| panel-params-$(CONFIG_MIPI_PANEL_BOE_TV105WUM_NW0) += panel-BOE_TV105WUM_NW0 | ||
|
|
||
| panel-params-$(CONFIG_MIPI_PANEL_CMN_P097PFG_SSD2858) += panel-CMN_P097PFG_SSD2858 | ||
|
|
||
| panel-params-$(CONFIG_MIPI_PANEL_INX_OTA7290D10P) += panel-INX_OTA7290D10P | ||
|
|
||
| panel-params-$(CONFIG_MIPI_PANEL_STA_2081101QFH032011_53G) += panel-STA_2081101QFH032011_53G | ||
|
|
||
| panel-params-$(CONFIG_MIPI_PANEL_VIS_RM69299) += panel-VIS_RM69299 | ||
|
|
||
| $(foreach params,$(panel-params-y), \ | ||
| $(eval cbfs-files-y += $(params)) \ | ||
| $(eval $(params)-file := $(params).c:struct) \ | ||
| $(eval $(params)-type := struct) \ | ||
| $(eval $(params)-compression := $(CBFS_COMPRESS_FLAG)) \ | ||
| ) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| /* SPDX-License-Identifier: GPL-2.0-only */ | ||
|
|
||
| #include <mipi/panel.h> | ||
|
|
||
| struct panel_serializable_data AUO_B101UAN08_3 = { | ||
| .edid = { | ||
| .ascii_string = "B101UAN08.3", | ||
| .manufacturer_name = "AUO", | ||
| .panel_bits_per_color = 8, | ||
| .panel_bits_per_pixel = 24, | ||
| .mode = { | ||
| .pixel_clock = 159192, | ||
| .lvds_dual_channel = 0, | ||
| .refresh = 60, | ||
| .ha = 1200, .hbl = 144, .hso = 60, .hspw = 4, | ||
| .va = 1920, .vbl = 60, .vso = 34, .vspw = 2, | ||
| .phsync = '-', .pvsync = '-', | ||
| .x_mm = 135, .y_mm = 216, | ||
| }, | ||
| }, | ||
| .init = { | ||
| PANEL_DELAY(24), | ||
| PANEL_DCS(0xB0, 0x01), | ||
| PANEL_DCS(0xC0, 0x48), | ||
| PANEL_DCS(0xC1, 0x48), | ||
| PANEL_DCS(0xC2, 0x47), | ||
| PANEL_DCS(0xC3, 0x47), | ||
| PANEL_DCS(0xC4, 0x46), | ||
| PANEL_DCS(0xC5, 0x46), | ||
| PANEL_DCS(0xC6, 0x45), | ||
| PANEL_DCS(0xC7, 0x45), | ||
| PANEL_DCS(0xC8, 0x64), | ||
| PANEL_DCS(0xC9, 0x64), | ||
| PANEL_DCS(0xCA, 0x4F), | ||
| PANEL_DCS(0xCB, 0x4F), | ||
| PANEL_DCS(0xCC, 0x40), | ||
| PANEL_DCS(0xCD, 0x40), | ||
| PANEL_DCS(0xCE, 0x66), | ||
| PANEL_DCS(0xCF, 0x66), | ||
| PANEL_DCS(0xD0, 0x4F), | ||
| PANEL_DCS(0xD1, 0x4F), | ||
| PANEL_DCS(0xD2, 0x41), | ||
| PANEL_DCS(0xD3, 0x41), | ||
| PANEL_DCS(0xD4, 0x48), | ||
| PANEL_DCS(0xD5, 0x48), | ||
| PANEL_DCS(0xD6, 0x47), | ||
| PANEL_DCS(0xD7, 0x47), | ||
| PANEL_DCS(0xD8, 0x46), | ||
| PANEL_DCS(0xD9, 0x46), | ||
| PANEL_DCS(0xDA, 0x45), | ||
| PANEL_DCS(0xDB, 0x45), | ||
| PANEL_DCS(0xDC, 0x64), | ||
| PANEL_DCS(0xDD, 0x64), | ||
| PANEL_DCS(0xDE, 0x4F), | ||
| PANEL_DCS(0xDF, 0x4F), | ||
| PANEL_DCS(0xE0, 0x40), | ||
| PANEL_DCS(0xE1, 0x40), | ||
| PANEL_DCS(0xE2, 0x66), | ||
| PANEL_DCS(0xE3, 0x66), | ||
| PANEL_DCS(0xE4, 0x4F), | ||
| PANEL_DCS(0xE5, 0x4F), | ||
| PANEL_DCS(0xE6, 0x41), | ||
| PANEL_DCS(0xE7, 0x41), | ||
| PANEL_DELAY(150), | ||
| PANEL_END, | ||
| }, | ||
| }; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,337 @@ | ||
| /* SPDX-License-Identifier: GPL-2.0-only */ | ||
|
|
||
| #include <mipi/panel.h> | ||
|
|
||
| struct panel_serializable_data BOE_TV080WUM_NG0 = { | ||
| .edid = { | ||
| .ascii_string = "TV080WUM-NG0", | ||
| .manufacturer_name = "BOE", | ||
| .panel_bits_per_color = 8, | ||
| .panel_bits_per_pixel = 24, | ||
| .mode = { | ||
| .pixel_clock = 159420, | ||
| .lvds_dual_channel = 0, | ||
| .refresh = 60, | ||
| .ha = 1200, .hbl = 164, .hso = 80, .hspw = 24, | ||
| .va = 1920, .vbl = 28, .vso = 10, .vspw = 4, | ||
| .phsync = '-', .pvsync = '-', | ||
| .x_mm = 107, .y_mm = 132, | ||
| }, | ||
| }, | ||
| .init = { | ||
| PANEL_DCS(0x10), | ||
| PANEL_DELAY(0x22), | ||
| PANEL_DCS(0xB0, 0x05), | ||
| PANEL_DCS(0xB1, 0xE5), | ||
| PANEL_DCS(0xB3, 0x52), | ||
| PANEL_DCS(0xB0, 0x00), | ||
| PANEL_DCS(0xB3, 0x88), | ||
| PANEL_DCS(0xB0, 0x04), | ||
| PANEL_DCS(0xB8, 0x00), | ||
| PANEL_DCS(0xB0, 0x00), | ||
| PANEL_DCS(0xB2, 0x50), | ||
| PANEL_DCS(0xB6, 0x03), | ||
| PANEL_DCS(0xBA, 0x8B), | ||
| PANEL_DCS(0xBF, 0x15), | ||
| PANEL_DCS(0xC0, 0x0F), | ||
| PANEL_DCS(0xC2, 0x0C), | ||
| PANEL_DCS(0xC3, 0x02), | ||
| PANEL_DCS(0xC4, 0x0C), | ||
| PANEL_DCS(0xC5, 0x02), | ||
| PANEL_DCS(0xB0, 0x01), | ||
| PANEL_DCS(0xE0, 0x26), | ||
| PANEL_DCS(0xE1, 0x26), | ||
| PANEL_DCS(0xDC, 0x00), | ||
| PANEL_DCS(0xDD, 0x00), | ||
| PANEL_DCS(0xCC, 0x26), | ||
| PANEL_DCS(0xCD, 0x26), | ||
| PANEL_DCS(0xC8, 0x00), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xD2, 0x04), | ||
| PANEL_DCS(0xD3, 0x04), | ||
| PANEL_DCS(0xE6, 0x03), | ||
| PANEL_DCS(0xE7, 0x03), | ||
| PANEL_DCS(0xC4, 0x08), | ||
| PANEL_DCS(0xC5, 0x08), | ||
| PANEL_DCS(0xD8, 0x07), | ||
| PANEL_DCS(0xD9, 0x07), | ||
| PANEL_DCS(0xC2, 0x06), | ||
| PANEL_DCS(0xC3, 0x06), | ||
| PANEL_DCS(0xD6, 0x05), | ||
| PANEL_DCS(0xD7, 0x05), | ||
| PANEL_DCS(0xC0, 0x0C), | ||
| PANEL_DCS(0xC1, 0x0C), | ||
| PANEL_DCS(0xD4, 0x0B), | ||
| PANEL_DCS(0xD5, 0x0B), | ||
| PANEL_DCS(0xCA, 0x0A), | ||
| PANEL_DCS(0xCB, 0x0A), | ||
| PANEL_DCS(0xDE, 0x09), | ||
| PANEL_DCS(0xDF, 0x09), | ||
| PANEL_DCS(0xC6, 0x26), | ||
| PANEL_DCS(0xC7, 0x26), | ||
| PANEL_DCS(0xCE, 0x00), | ||
| PANEL_DCS(0xCF, 0x00), | ||
| PANEL_DCS(0xDA, 0x26), | ||
| PANEL_DCS(0xDB, 0x26), | ||
| PANEL_DCS(0xE2, 0x00), | ||
| PANEL_DCS(0xE3, 0x00), | ||
| PANEL_DCS(0xB0, 0x02), | ||
| PANEL_DCS(0xC0, 0x00), | ||
| PANEL_DCS(0xC1, 0x07), | ||
| PANEL_DCS(0xC2, 0x0D), | ||
| PANEL_DCS(0xC3, 0x18), | ||
| PANEL_DCS(0xC4, 0x27), | ||
| PANEL_DCS(0xC5, 0x28), | ||
| PANEL_DCS(0xC6, 0x30), | ||
| PANEL_DCS(0xC7, 0x2E), | ||
| PANEL_DCS(0xC8, 0x2F), | ||
| PANEL_DCS(0xC9, 0x1A), | ||
| PANEL_DCS(0xCA, 0x20), | ||
| PANEL_DCS(0xCB, 0x29), | ||
| PANEL_DCS(0xCC, 0x26), | ||
| PANEL_DCS(0xCD, 0x32), | ||
| PANEL_DCS(0xCE, 0x33), | ||
| PANEL_DCS(0xCF, 0x31), | ||
| PANEL_DCS(0xD0, 0x06), | ||
| PANEL_DCS(0xD2, 0x00), | ||
| PANEL_DCS(0xD3, 0x07), | ||
| PANEL_DCS(0xD4, 0x12), | ||
| PANEL_DCS(0xD5, 0x26), | ||
| PANEL_DCS(0xD6, 0x3D), | ||
| PANEL_DCS(0xD7, 0x3F), | ||
| PANEL_DCS(0xD8, 0x3F), | ||
| PANEL_DCS(0xD9, 0x3F), | ||
| PANEL_DCS(0xDA, 0x3F), | ||
| PANEL_DCS(0xDB, 0x3F), | ||
| PANEL_DCS(0xDC, 0x3F), | ||
| PANEL_DCS(0xDD, 0x3F), | ||
| PANEL_DCS(0xDE, 0x3F), | ||
| PANEL_DCS(0xDF, 0x3A), | ||
| PANEL_DCS(0xE0, 0x37), | ||
| PANEL_DCS(0xE1, 0x35), | ||
| PANEL_DCS(0xE2, 0x07), | ||
| PANEL_DCS(0xB0, 0x03), | ||
| PANEL_DCS(0xC8, 0x0B), | ||
| PANEL_DCS(0xC9, 0x07), | ||
| PANEL_DCS(0xC3, 0x00), | ||
| PANEL_DCS(0xE7, 0x00), | ||
| PANEL_DCS(0xC5, 0x2A), | ||
| PANEL_DCS(0xDE, 0x2A), | ||
| PANEL_DCS(0xCA, 0x43), | ||
| PANEL_DCS(0xC9, 0x07), | ||
| PANEL_DCS(0xE4, 0xC0), | ||
| PANEL_DCS(0xE5, 0x0D), | ||
| PANEL_DCS(0xCB, 0x00), | ||
| PANEL_DCS(0xB0, 0x06), | ||
| PANEL_DCS(0xB8, 0xA5), | ||
| PANEL_DCS(0xC0, 0xA5), | ||
| PANEL_DCS(0xC7, 0x0F), | ||
| PANEL_DCS(0xD5, 0x32), | ||
| PANEL_DCS(0xB8, 0x00), | ||
| PANEL_DCS(0xC0, 0x00), | ||
| PANEL_DCS(0xBC, 0x00), | ||
| PANEL_DCS(0xB0, 0x07), | ||
| PANEL_DCS(0xB1, 0x00), | ||
| PANEL_DCS(0xB2, 0x09), | ||
| PANEL_DCS(0xB3, 0x19), | ||
| PANEL_DCS(0xB4, 0x2F), | ||
| PANEL_DCS(0xB5, 0x44), | ||
| PANEL_DCS(0xB6, 0x52), | ||
| PANEL_DCS(0xB7, 0x6A), | ||
| PANEL_DCS(0xB8, 0x8A), | ||
| PANEL_DCS(0xB9, 0xCA), | ||
| PANEL_DCS(0xBA, 0x0C), | ||
| PANEL_DCS(0xBB, 0x87), | ||
| PANEL_DELAY(0x05), | ||
| PANEL_DCS(0xBC, 0x06), | ||
| PANEL_DCS(0xBD, 0x0A), | ||
| PANEL_DCS(0xBE, 0x9B), | ||
| PANEL_DCS(0xBF, 0x0C), | ||
| PANEL_DCS(0xC0, 0x3D), | ||
| PANEL_DCS(0xC1, 0x71), | ||
| PANEL_DCS(0xC2, 0x90), | ||
| PANEL_DCS(0xC3, 0xA0), | ||
| PANEL_DCS(0xC4, 0xA8), | ||
| PANEL_DCS(0xC5, 0xB1), | ||
| PANEL_DCS(0xC6, 0xBB), | ||
| PANEL_DCS(0xC7, 0xC0), | ||
| PANEL_DCS(0xC8, 0xC4), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x08), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x08), | ||
| PANEL_DCS(0xB3, 0x19), | ||
| PANEL_DCS(0xB4, 0x31), | ||
| PANEL_DCS(0xB5, 0x46), | ||
| PANEL_DCS(0xB6, 0x55), | ||
| PANEL_DCS(0xB7, 0x6E), | ||
| PANEL_DCS(0xB8, 0x92), | ||
| PANEL_DCS(0xB9, 0xD4), | ||
| PANEL_DCS(0xBA, 0x1B), | ||
| PANEL_DCS(0xBB, 0x9B), | ||
| PANEL_DELAY(0x05), | ||
| PANEL_DCS(0xBC, 0x28), | ||
| PANEL_DCS(0xBD, 0x2D), | ||
| PANEL_DCS(0xBE, 0xC3), | ||
| PANEL_DCS(0xBF, 0x2F), | ||
| PANEL_DCS(0xC0, 0x62), | ||
| PANEL_DCS(0xC1, 0x99), | ||
| PANEL_DCS(0xC2, 0xAB), | ||
| PANEL_DCS(0xC3, 0xBF), | ||
| PANEL_DCS(0xC4, 0xCF), | ||
| PANEL_DCS(0xC5, 0xDF), | ||
| PANEL_DCS(0xC6, 0xF0), | ||
| PANEL_DCS(0xC7, 0xF9), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x09), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x05), | ||
| PANEL_DCS(0xB3, 0x17), | ||
| PANEL_DCS(0xB4, 0x2E), | ||
| PANEL_DCS(0xB5, 0x42), | ||
| PANEL_DCS(0xB6, 0x51), | ||
| PANEL_DCS(0xB7, 0x69), | ||
| PANEL_DCS(0xB8, 0x88), | ||
| PANEL_DCS(0xB9, 0xC9), | ||
| PANEL_DCS(0xBA, 0x0C), | ||
| PANEL_DCS(0xBB, 0x86), | ||
| PANEL_DELAY(0x05), | ||
| PANEL_DCS(0xBC, 0x03), | ||
| PANEL_DCS(0xBD, 0x08), | ||
| PANEL_DCS(0xBE, 0x95), | ||
| PANEL_DCS(0xBF, 0x05), | ||
| PANEL_DCS(0xC0, 0x35), | ||
| PANEL_DCS(0xC1, 0x62), | ||
| PANEL_DCS(0xC2, 0x81), | ||
| PANEL_DCS(0xC3, 0x96), | ||
| PANEL_DCS(0xC4, 0x9E), | ||
| PANEL_DCS(0xC5, 0xA5), | ||
| PANEL_DCS(0xC6, 0xAD), | ||
| PANEL_DCS(0xC7, 0xB1), | ||
| PANEL_DCS(0xC8, 0xB4), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x0A), | ||
| PANEL_DCS(0xB1, 0x00), | ||
| PANEL_DCS(0xB2, 0x09), | ||
| PANEL_DCS(0xB3, 0x19), | ||
| PANEL_DCS(0xB4, 0x2F), | ||
| PANEL_DCS(0xB5, 0x44), | ||
| PANEL_DCS(0xB6, 0x52), | ||
| PANEL_DCS(0xB7, 0x6A), | ||
| PANEL_DCS(0xB8, 0x8A), | ||
| PANEL_DCS(0xB9, 0xCA), | ||
| PANEL_DCS(0xBA, 0x0C), | ||
| PANEL_DCS(0xBB, 0x87), | ||
| PANEL_DELAY(0x05), | ||
| PANEL_DCS(0xBC, 0x06), | ||
| PANEL_DCS(0xBD, 0x0A), | ||
| PANEL_DCS(0xBE, 0x9B), | ||
| PANEL_DCS(0xBF, 0x0C), | ||
| PANEL_DCS(0xC0, 0x3D), | ||
| PANEL_DCS(0xC1, 0x71), | ||
| PANEL_DCS(0xC2, 0x90), | ||
| PANEL_DCS(0xC3, 0xA0), | ||
| PANEL_DCS(0xC4, 0xA8), | ||
| PANEL_DCS(0xC5, 0xB1), | ||
| PANEL_DCS(0xC6, 0xBB), | ||
| PANEL_DCS(0xC7, 0xC0), | ||
| PANEL_DCS(0xC8, 0xC4), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x0B), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x08), | ||
| PANEL_DCS(0xB3, 0x19), | ||
| PANEL_DCS(0xB4, 0x31), | ||
| PANEL_DCS(0xB5, 0x46), | ||
| PANEL_DCS(0xB6, 0x55), | ||
| PANEL_DCS(0xB7, 0x6E), | ||
| PANEL_DCS(0xB8, 0x92), | ||
| PANEL_DCS(0xB9, 0xD4), | ||
| PANEL_DCS(0xBA, 0x1B), | ||
| PANEL_DCS(0xBB, 0x9B), | ||
| PANEL_DELAY(0x05), | ||
| PANEL_DCS(0xBC, 0x28), | ||
| PANEL_DCS(0xBD, 0x2D), | ||
| PANEL_DCS(0xBE, 0xC3), | ||
| PANEL_DCS(0xBF, 0x2F), | ||
| PANEL_DCS(0xC0, 0x62), | ||
| PANEL_DCS(0xC1, 0x99), | ||
| PANEL_DCS(0xC2, 0xAB), | ||
| PANEL_DCS(0xC3, 0xBF), | ||
| PANEL_DCS(0xC4, 0xCF), | ||
| PANEL_DCS(0xC5, 0xDF), | ||
| PANEL_DCS(0xC6, 0xF0), | ||
| PANEL_DCS(0xC7, 0xF9), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x0C), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x05), | ||
| PANEL_DCS(0xB3, 0x17), | ||
| PANEL_DCS(0xB4, 0x2E), | ||
| PANEL_DCS(0xB5, 0x42), | ||
| PANEL_DCS(0xB6, 0x51), | ||
| PANEL_DCS(0xB7, 0x69), | ||
| PANEL_DCS(0xB8, 0x88), | ||
| PANEL_DCS(0xB9, 0xC9), | ||
| PANEL_DCS(0xBA, 0x0C), | ||
| PANEL_DCS(0xBB, 0x86), | ||
| PANEL_DELAY(0x05), | ||
| PANEL_DCS(0xBC, 0x03), | ||
| PANEL_DCS(0xBD, 0x08), | ||
| PANEL_DCS(0xBE, 0x95), | ||
| PANEL_DCS(0xBF, 0x05), | ||
| PANEL_DCS(0xC0, 0x35), | ||
| PANEL_DCS(0xC1, 0x62), | ||
| PANEL_DCS(0xC2, 0x81), | ||
| PANEL_DCS(0xC3, 0x96), | ||
| PANEL_DCS(0xC4, 0x9E), | ||
| PANEL_DCS(0xC5, 0xA5), | ||
| PANEL_DCS(0xC6, 0xAD), | ||
| PANEL_DCS(0xC7, 0xB1), | ||
| PANEL_DCS(0xC8, 0xB4), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DELAY(0x64), | ||
| PANEL_DCS(0xB0, 0x00), | ||
| PANEL_DCS(0xB3, 0x08), | ||
| PANEL_DCS(0xB0, 0x04), | ||
| PANEL_DCS(0xB8, 0x68), | ||
| PANEL_DELAY(0x0A), | ||
| PANEL_DCS(0x11), | ||
| PANEL_DELAY(0x78), | ||
| PANEL_DCS(0x29), | ||
| PANEL_DELAY(0x14), | ||
| PANEL_END, | ||
| }, | ||
| }; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,316 @@ | ||
| /* SPDX-License-Identifier: GPL-2.0-only */ | ||
|
|
||
| #include <mipi/panel.h> | ||
|
|
||
| struct panel_serializable_data BOE_TV101WUM_N53 = { | ||
| .edid = { | ||
| .ascii_string = "TV101WUM-N53", | ||
| .manufacturer_name = "BOE", | ||
| .panel_bits_per_color = 8, | ||
| .panel_bits_per_pixel = 24, | ||
| .mode = { | ||
| .pixel_clock = 159916, | ||
| .lvds_dual_channel = 0, | ||
| .refresh = 60, | ||
| .ha = 1200, .hbl = 164, .hso = 80, .hspw = 24, | ||
| .va = 1920, .vbl = 34, .vso = 20, .vspw = 4, | ||
| .phsync = '-', .pvsync = '-', | ||
| .x_mm = 135, .y_mm = 216, | ||
| }, | ||
| }, | ||
| .init = { | ||
| PANEL_DELAY(24), | ||
| PANEL_DCS(0xB0, 0x05), | ||
| PANEL_DCS(0xB1, 0xE5), | ||
| PANEL_DCS(0xB3, 0x52), | ||
| PANEL_DCS(0xB0, 0x00), | ||
| PANEL_DCS(0xB3, 0x88), | ||
| PANEL_DCS(0xB0, 0x04), | ||
| PANEL_DCS(0xB8, 0x00), | ||
| PANEL_DCS(0xB0, 0x00), | ||
| PANEL_DCS(0xB6, 0x03), | ||
| PANEL_DCS(0xBA, 0x8B), | ||
| PANEL_DCS(0xBF, 0x1A), | ||
| PANEL_DCS(0xC0, 0x0F), | ||
| PANEL_DCS(0xC2, 0x0C), | ||
| PANEL_DCS(0xC3, 0x02), | ||
| PANEL_DCS(0xC4, 0x0C), | ||
| PANEL_DCS(0xC5, 0x02), | ||
| PANEL_DCS(0xB0, 0x01), | ||
| PANEL_DCS(0xE0, 0x26), | ||
| PANEL_DCS(0xE1, 0x26), | ||
| PANEL_DCS(0xDC, 0x00), | ||
| PANEL_DCS(0xDD, 0x00), | ||
| PANEL_DCS(0xCC, 0x26), | ||
| PANEL_DCS(0xCD, 0x26), | ||
| PANEL_DCS(0xC8, 0x00), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xD2, 0x03), | ||
| PANEL_DCS(0xD3, 0x03), | ||
| PANEL_DCS(0xE6, 0x04), | ||
| PANEL_DCS(0xE7, 0x04), | ||
| PANEL_DCS(0xC4, 0x09), | ||
| PANEL_DCS(0xC5, 0x09), | ||
| PANEL_DCS(0xD8, 0x0A), | ||
| PANEL_DCS(0xD9, 0x0A), | ||
| PANEL_DCS(0xC2, 0x0B), | ||
| PANEL_DCS(0xC3, 0x0B), | ||
| PANEL_DCS(0xD6, 0x0C), | ||
| PANEL_DCS(0xD7, 0x0C), | ||
| PANEL_DCS(0xC0, 0x05), | ||
| PANEL_DCS(0xC1, 0x05), | ||
| PANEL_DCS(0xD4, 0x06), | ||
| PANEL_DCS(0xD5, 0x06), | ||
| PANEL_DCS(0xCA, 0x07), | ||
| PANEL_DCS(0xCB, 0x07), | ||
| PANEL_DCS(0xDE, 0x08), | ||
| PANEL_DCS(0xDF, 0x08), | ||
| PANEL_DCS(0xB0, 0x02), | ||
| PANEL_DCS(0xC0, 0x00), | ||
| PANEL_DCS(0xC1, 0x0D), | ||
| PANEL_DCS(0xC2, 0x17), | ||
| PANEL_DCS(0xC3, 0x26), | ||
| PANEL_DCS(0xC4, 0x31), | ||
| PANEL_DCS(0xC5, 0x1C), | ||
| PANEL_DCS(0xC6, 0x2C), | ||
| PANEL_DCS(0xC7, 0x33), | ||
| PANEL_DCS(0xC8, 0x31), | ||
| PANEL_DCS(0xC9, 0x37), | ||
| PANEL_DCS(0xCA, 0x37), | ||
| PANEL_DCS(0xCB, 0x37), | ||
| PANEL_DCS(0xCC, 0x39), | ||
| PANEL_DCS(0xCD, 0x2E), | ||
| PANEL_DCS(0xCE, 0x2F), | ||
| PANEL_DCS(0xCF, 0x2F), | ||
| PANEL_DCS(0xD0, 0x07), | ||
| PANEL_DCS(0xD2, 0x00), | ||
| PANEL_DCS(0xD3, 0x0D), | ||
| PANEL_DCS(0xD4, 0x17), | ||
| PANEL_DCS(0xD5, 0x26), | ||
| PANEL_DCS(0xD6, 0x31), | ||
| PANEL_DCS(0xD7, 0x3F), | ||
| PANEL_DCS(0xD8, 0x3F), | ||
| PANEL_DCS(0xD9, 0x3F), | ||
| PANEL_DCS(0xDA, 0x3F), | ||
| PANEL_DCS(0xDB, 0x37), | ||
| PANEL_DCS(0xDC, 0x37), | ||
| PANEL_DCS(0xDD, 0x37), | ||
| PANEL_DCS(0xDE, 0x39), | ||
| PANEL_DCS(0xDF, 0x2E), | ||
| PANEL_DCS(0xE0, 0x2F), | ||
| PANEL_DCS(0xE1, 0x2F), | ||
| PANEL_DCS(0xE2, 0x07), | ||
| PANEL_DCS(0xB0, 0x03), | ||
| PANEL_DCS(0xC8, 0x0B), | ||
| PANEL_DCS(0xC9, 0x07), | ||
| PANEL_DCS(0xC3, 0x00), | ||
| PANEL_DCS(0xE7, 0x00), | ||
| PANEL_DCS(0xC5, 0x2A), | ||
| PANEL_DCS(0xDE, 0x2A), | ||
| PANEL_DCS(0xCA, 0x43), | ||
| PANEL_DCS(0xC9, 0x07), | ||
| PANEL_DCS(0xE4, 0xC0), | ||
| PANEL_DCS(0xE5, 0x0D), | ||
| PANEL_DCS(0xCB, 0x00), | ||
| PANEL_DCS(0xB0, 0x06), | ||
| PANEL_DCS(0xB8, 0xA5), | ||
| PANEL_DCS(0xC0, 0xA5), | ||
| PANEL_DCS(0xC7, 0x0F), | ||
| PANEL_DCS(0xD5, 0x32), | ||
| PANEL_DCS(0xB8, 0x00), | ||
| PANEL_DCS(0xC0, 0x00), | ||
| PANEL_DCS(0xBC, 0x00), | ||
| PANEL_DCS(0xB0, 0x07), | ||
| PANEL_DCS(0xB1, 0x00), | ||
| PANEL_DCS(0xB2, 0x02), | ||
| PANEL_DCS(0xB3, 0x0F), | ||
| PANEL_DCS(0xB4, 0x25), | ||
| PANEL_DCS(0xB5, 0x39), | ||
| PANEL_DCS(0xB6, 0x4E), | ||
| PANEL_DCS(0xB7, 0x72), | ||
| PANEL_DCS(0xB8, 0x97), | ||
| PANEL_DCS(0xB9, 0xDC), | ||
| PANEL_DCS(0xBA, 0x22), | ||
| PANEL_DCS(0xBB, 0xA4), | ||
| PANEL_DCS(0xBC, 0x2B), | ||
| PANEL_DCS(0xBD, 0x2F), | ||
| PANEL_DCS(0xBE, 0xA9), | ||
| PANEL_DCS(0xBF, 0x25), | ||
| PANEL_DCS(0xC0, 0x61), | ||
| PANEL_DCS(0xC1, 0x97), | ||
| PANEL_DCS(0xC2, 0xB2), | ||
| PANEL_DCS(0xC3, 0xCD), | ||
| PANEL_DCS(0xC4, 0xD9), | ||
| PANEL_DCS(0xC5, 0xE7), | ||
| PANEL_DCS(0xC6, 0xF4), | ||
| PANEL_DCS(0xC7, 0xFA), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x08), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x05), | ||
| PANEL_DCS(0xB3, 0x11), | ||
| PANEL_DCS(0xB4, 0x24), | ||
| PANEL_DCS(0xB5, 0x39), | ||
| PANEL_DCS(0xB6, 0x4F), | ||
| PANEL_DCS(0xB7, 0x72), | ||
| PANEL_DCS(0xB8, 0x98), | ||
| PANEL_DCS(0xB9, 0xDC), | ||
| PANEL_DCS(0xBA, 0x23), | ||
| PANEL_DCS(0xBB, 0xA6), | ||
| PANEL_DCS(0xBC, 0x2C), | ||
| PANEL_DCS(0xBD, 0x30), | ||
| PANEL_DCS(0xBE, 0xAA), | ||
| PANEL_DCS(0xBF, 0x26), | ||
| PANEL_DCS(0xC0, 0x62), | ||
| PANEL_DCS(0xC1, 0x9B), | ||
| PANEL_DCS(0xC2, 0xB5), | ||
| PANEL_DCS(0xC3, 0xCF), | ||
| PANEL_DCS(0xC4, 0xDB), | ||
| PANEL_DCS(0xC5, 0xE8), | ||
| PANEL_DCS(0xC6, 0xF5), | ||
| PANEL_DCS(0xC7, 0xFA), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x09), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x02), | ||
| PANEL_DCS(0xB3, 0x16), | ||
| PANEL_DCS(0xB4, 0x24), | ||
| PANEL_DCS(0xB5, 0x3B), | ||
| PANEL_DCS(0xB6, 0x4F), | ||
| PANEL_DCS(0xB7, 0x73), | ||
| PANEL_DCS(0xB8, 0x99), | ||
| PANEL_DCS(0xB9, 0xE0), | ||
| PANEL_DCS(0xBA, 0x26), | ||
| PANEL_DCS(0xBB, 0xAD), | ||
| PANEL_DCS(0xBC, 0x36), | ||
| PANEL_DCS(0xBD, 0x3A), | ||
| PANEL_DCS(0xBE, 0xAE), | ||
| PANEL_DCS(0xBF, 0x2A), | ||
| PANEL_DCS(0xC0, 0x66), | ||
| PANEL_DCS(0xC1, 0x9E), | ||
| PANEL_DCS(0xC2, 0xB8), | ||
| PANEL_DCS(0xC3, 0xD1), | ||
| PANEL_DCS(0xC4, 0xDD), | ||
| PANEL_DCS(0xC5, 0xE9), | ||
| PANEL_DCS(0xC6, 0xF6), | ||
| PANEL_DCS(0xC7, 0xFA), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x0A), | ||
| PANEL_DCS(0xB1, 0x00), | ||
| PANEL_DCS(0xB2, 0x02), | ||
| PANEL_DCS(0xB3, 0x0F), | ||
| PANEL_DCS(0xB4, 0x25), | ||
| PANEL_DCS(0xB5, 0x39), | ||
| PANEL_DCS(0xB6, 0x4E), | ||
| PANEL_DCS(0xB7, 0x72), | ||
| PANEL_DCS(0xB8, 0x97), | ||
| PANEL_DCS(0xB9, 0xDC), | ||
| PANEL_DCS(0xBA, 0x22), | ||
| PANEL_DCS(0xBB, 0xA4), | ||
| PANEL_DCS(0xBC, 0x2B), | ||
| PANEL_DCS(0xBD, 0x2F), | ||
| PANEL_DCS(0xBE, 0xA9), | ||
| PANEL_DCS(0xBF, 0x25), | ||
| PANEL_DCS(0xC0, 0x61), | ||
| PANEL_DCS(0xC1, 0x97), | ||
| PANEL_DCS(0xC2, 0xB2), | ||
| PANEL_DCS(0xC3, 0xCD), | ||
| PANEL_DCS(0xC4, 0xD9), | ||
| PANEL_DCS(0xC5, 0xE7), | ||
| PANEL_DCS(0xC6, 0xF4), | ||
| PANEL_DCS(0xC7, 0xFA), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x0B), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x05), | ||
| PANEL_DCS(0xB3, 0x11), | ||
| PANEL_DCS(0xB4, 0x24), | ||
| PANEL_DCS(0xB5, 0x39), | ||
| PANEL_DCS(0xB6, 0x4F), | ||
| PANEL_DCS(0xB7, 0x72), | ||
| PANEL_DCS(0xB8, 0x98), | ||
| PANEL_DCS(0xB9, 0xDC), | ||
| PANEL_DCS(0xBA, 0x23), | ||
| PANEL_DCS(0xBB, 0xA6), | ||
| PANEL_DCS(0xBC, 0x2C), | ||
| PANEL_DCS(0xBD, 0x30), | ||
| PANEL_DCS(0xBE, 0xAA), | ||
| PANEL_DCS(0xBF, 0x26), | ||
| PANEL_DCS(0xC0, 0x62), | ||
| PANEL_DCS(0xC1, 0x9B), | ||
| PANEL_DCS(0xC2, 0xB5), | ||
| PANEL_DCS(0xC3, 0xCF), | ||
| PANEL_DCS(0xC4, 0xDB), | ||
| PANEL_DCS(0xC5, 0xE8), | ||
| PANEL_DCS(0xC6, 0xF5), | ||
| PANEL_DCS(0xC7, 0xFA), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x0C), | ||
| PANEL_DCS(0xB1, 0x04), | ||
| PANEL_DCS(0xB2, 0x02), | ||
| PANEL_DCS(0xB3, 0x16), | ||
| PANEL_DCS(0xB4, 0x24), | ||
| PANEL_DCS(0xB5, 0x3B), | ||
| PANEL_DCS(0xB6, 0x4F), | ||
| PANEL_DCS(0xB7, 0x73), | ||
| PANEL_DCS(0xB8, 0x99), | ||
| PANEL_DCS(0xB9, 0xE0), | ||
| PANEL_DCS(0xBA, 0x26), | ||
| PANEL_DCS(0xBB, 0xAD), | ||
| PANEL_DCS(0xBC, 0x36), | ||
| PANEL_DCS(0xBD, 0x3A), | ||
| PANEL_DCS(0xBE, 0xAE), | ||
| PANEL_DCS(0xBF, 0x2A), | ||
| PANEL_DCS(0xC0, 0x66), | ||
| PANEL_DCS(0xC1, 0x9E), | ||
| PANEL_DCS(0xC2, 0xB8), | ||
| PANEL_DCS(0xC3, 0xD1), | ||
| PANEL_DCS(0xC4, 0xDD), | ||
| PANEL_DCS(0xC5, 0xE9), | ||
| PANEL_DCS(0xC6, 0xF6), | ||
| PANEL_DCS(0xC7, 0xFA), | ||
| PANEL_DCS(0xC8, 0xFC), | ||
| PANEL_DCS(0xC9, 0x00), | ||
| PANEL_DCS(0xCA, 0x00), | ||
| PANEL_DCS(0xCB, 0x16), | ||
| PANEL_DCS(0xCC, 0xAF), | ||
| PANEL_DCS(0xCD, 0xFF), | ||
| PANEL_DCS(0xCE, 0xFF), | ||
| PANEL_DCS(0xB0, 0x00), | ||
| PANEL_DCS(0xB3, 0x08), | ||
| PANEL_DCS(0xB0, 0x04), | ||
| PANEL_DCS(0xB8, 0x68), | ||
| PANEL_DELAY(150), | ||
| PANEL_END, | ||
| }, | ||
| }; |