#ifndef _DEV_ASMC_ASMCMMIO_H_
#define _DEV_ASMC_ASMCMMIO_H_
struct asmc_softc;
#define ASMC_MMIO_DATA 0x0000
#define ASMC_MMIO_KEY_NAME 0x0078
#define ASMC_MMIO_DATA_LEN 0x007D
#define ASMC_MMIO_SMC_ID 0x007E
#define ASMC_MMIO_CMD 0x007F
#define ASMC_MMIO_STATUS 0x4005
#define ASMC_MMIO_MIN_SIZE 0x4006
#define ASMC_MMIO_STATUS_READY 0x20
#define ASMC_MMIO_MAX_WAIT 24
#define ASMC_KEY_LDKN "LDKN"
#define ASMC_KEY_BCLM "BCLM"
#define ASMC_KEY_FANMANUAL_T2 "F%dMd"
int asmc_mmio_probe(device_t dev);
void asmc_mmio_detach(device_t dev, struct asmc_softc *sc);
int asmc_mmio_key_read(device_t dev, const char *key,
uint8_t *buf, uint8_t len);
int asmc_mmio_key_write(device_t dev, const char *key,
uint8_t *buf, uint8_t len);
int asmc_mmio_key_getinfo(device_t dev, const char *key,
uint8_t *len, char *type);
int asmc_mmio_key_getbyindex(device_t dev, int index, char *key);
uint32_t asmc_float_to_u32(uint32_t d);
uint32_t asmc_u32_to_float(uint32_t d);
int asmc_bclm_sysctl(SYSCTL_HANDLER_ARGS);
#endif