/*
 * ARM MPS2 SCC emulation
 *
 * Copyright (c) 2017 Linaro Limited
 * Written by Peter Maydell
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 or
 *  (at your option) any later version.
 */

#ifndef MPS2_SCC_H
#define MPS2_SCC_H

#include "hw/sysbus.h"
#include "qom/object.h"

#define TYPE_MPS2_SCC "mps2-scc"
typedef struct MPS2SCC MPS2SCC;
DECLARE_INSTANCE_CHECKER(MPS2SCC, MPS2_SCC,
                         TYPE_MPS2_SCC)

#define NUM_OSCCLK 3

struct MPS2SCC {
    /*< private >*/
    SysBusDevice parent_obj;

    /*< public >*/
    MemoryRegion iomem;

    uint32_t cfg0;
    uint32_t cfg1;
    uint32_t cfg4;
    uint32_t cfgdata_rtn;
    uint32_t cfgdata_out;
    uint32_t cfgctrl;
    uint32_t cfgstat;
    uint32_t dll;
    uint32_t aid;
    uint32_t id;
    uint32_t oscclk[NUM_OSCCLK];
    uint32_t oscclk_reset[NUM_OSCCLK];
};

#endif
