4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / sio.h H
/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright (C) 2018,2019 IBM Corp. */

#ifndef SIO_H
#define SIO_H

#include <stddef.h>
#include <stdint.h>

#include "lpc.h"

enum sio_dev
{
    sio_suart1 = 0x02,
    sio_suart2 = 0x03,
    sio_wakeup = 0x04,
    sio_gpio   = 0x07,
    sio_suart3 = 0x0b,
    sio_suart4 = 0x0c,
    sio_ilpc   = 0x0d,
    sio_mbox   = 0x0e,
};

struct sio
{
    struct lpc io;
    uint16_t base;
};

int sio_init(struct sio *ctx);
int sio_destroy(struct sio *ctx);
int sio_lock(struct sio *ctx);
int sio_unlock(struct sio *ctx);
int sio_select(struct sio *ctx, enum sio_dev dev);
int sio_probe(struct sio *ctx);
int sio_readb(struct sio *ctx, uint32_t addr, uint8_t *val);
int sio_writeb(struct sio *ctx, uint32_t addr, uint8_t val);

#endif