| /* SPDX-License-Identifier: GPL-2.0-only */ |
| |
| #include <arch/io.h> |
| #include "cpld.h" |
| |
| /* CPLD definitions */ |
| #define CPLD_PCB_VERSION_PORT 0x283 |
| #define CPLD_PCB_VERSION_MASK 0xF0 |
| #define CPLD_PCB_VERSION_BIT 4 |
| |
| #define CPLD_RESET_PORT 0x287 |
| #define CPLD_CMD_RESET_DSI_BRIDGE_ACTIVE 0x20 |
| #define CPLD_CMD_RESET_DSI_BRIDGE_INACTIVE 0x00 |
| |
| /* Reset DSI bridge */ |
| void cpld_reset_bridge(void) |
| { |
| outb(CPLD_CMD_RESET_DSI_BRIDGE_ACTIVE, CPLD_RESET_PORT); |
| outb(CPLD_CMD_RESET_DSI_BRIDGE_INACTIVE, CPLD_RESET_PORT); |
| } |
| |
| /* Read PCB version */ |
| unsigned int cpld_read_pcb_version(void) |
| { |
| return ((inb(CPLD_PCB_VERSION_PORT) & CPLD_PCB_VERSION_MASK) >> CPLD_PCB_VERSION_BIT); |
| } |