Initial GXFP5130 userspace prototype

This commit is contained in:
2026-08-03 11:43:42 +03:00
commit 088d8ef75c
30 changed files with 5318 additions and 0 deletions

48
include/gxfp/config.h Normal file
View File

@@ -0,0 +1,48 @@
// SPDX-License-Identifier: GPL-2.0-only
#ifndef GXFP_CONFIG_H
#define GXFP_CONFIG_H
#include <stddef.h>
#include <stdint.h>
#define GXFP_CONFIG_SIZE 0xE0u
#define GXFP_CONFIG_SECTION_COUNT 8u
enum gxfp_config_write_mode {
GXFP_CONFIG_WRITE_WORD = 0,
GXFP_CONFIG_WRITE_LOW_BYTE = 1,
GXFP_CONFIG_WRITE_HIGH_BYTE = 2,
};
struct gxfp_dac_info;
struct gxfp_chicagohu_config_info {
uint8_t tcode_diff;
uint16_t tcode;
uint8_t fdt_delta;
uint8_t fdt_offset;
uint16_t checksum;
};
uint16_t gxfp_config_checksum(const uint8_t config[GXFP_CONFIG_SIZE]);
int gxfp_config_update_checksum(uint8_t config[GXFP_CONFIG_SIZE]);
int gxfp_config_modify_register(uint8_t config[GXFP_CONFIG_SIZE],
uint16_t reg,
uint16_t value,
unsigned int section,
enum gxfp_config_write_mode mode,
uint16_t *old_value);
int gxfp_config_patch_dac(uint8_t config[GXFP_CONFIG_SIZE],
const uint16_t register_values[4]);
int gxfp_config_build_chicagohu_2504(
uint8_t config[GXFP_CONFIG_SIZE],
const void *otp,
size_t otp_len,
const struct gxfp_dac_info *dac,
struct gxfp_chicagohu_config_info *info);
#endif