/*
* AMD LED control
* Copyright (C) 2019, Advanced Micro Devices, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*
*/
#include "block.h"
enum amd_device_type {AMD_NO_DEVICE, AMD_SATA_DEVICE, AMD_NVME_DEVICE};
struct amd_drive {
int ata_port;
int port;
int drive_bay;
int initiator;
uint8_t channel;
uint8_t slave_addr;
enum amd_device_type dev;
};
enum amd_led_interfaces {
AMD_INTF_UNSET,
AMD_INTF_SGPIO,
AMD_INTF_IPMI,
};
extern enum amd_led_interfaces amd_interface;
enum amd_platforms {
AMD_PLATFORM_UNSET,
AMD_PLATFORM_ETHANOL_X,
AMD_PLATFORM_DAYTONA_X,
AMD_PLATFORM_GRANDSTAND,
AMD_PLATFORM_SPEEDWAY,
};
extern enum amd_platforms amd_platform;
int amd_em_enabled(const char *path);
int amd_write(struct block_device *device, enum ibpi_pattern ibpi);
char *amd_get_path(const char *cntrl_path, const char *sysfs_path);
int _find_file_path(const char *start_path, const char *filename,
char *path, size_t path_len);
/* Register dump formats used for debug output */
#define REG_FMT_2 "%23s: %-4x%23s: %-4x\n"
#define REG_FMT_1 "%23s: %-4x\n"