//
// Copyright (c) 2010-2025 Antmicro
// Copyright (c) 2022-2025 Silicon Labs
//
// This file is licensed under the MIT License.
// Full license text is available in 'licenses/MIT.txt'.
//
using System;
using System.IO;
using System.Collections.Generic;
using Antmicro.Renode.Core;
using Antmicro.Renode.Core.Structure.Registers;
using Antmicro.Renode.Logging;
using Antmicro.Renode.Exceptions;
using Antmicro.Renode.Peripherals.CPU;
using Antmicro.Renode.Peripherals.Bus;
namespace Antmicro.Renode.Peripherals.Miscellaneous.SiLabs
{
public enum HFXO_REQUESTER
{
NONE = 0,
PRS = 1,
FORCEEN = 2,
HWREQ = 3,
SYSRTC = 4,
}
public interface IHFXO_EFR32xG2
{
///
/// Event which is invoked upon enabling the HFXO (Setting ENS in the status register).
///
event Action HfxoEnabled;
///
/// Method which is called by the CMU (or potentially other infrastructure peripherals) when the HFXO is selected
/// by the CMU as a clock source so that the HFXO updates its internal states.
///
void OnClksel();
///
/// Method which is called by the PRS when HFXO is meant to receive a signal from the PRS to wake up.
///
void OnEm2Wakeup();
///
/// Method which is called when the HFXO is requested by an infrastructure peripheral. The argument is the requester.
///
void OnRequest(HFXO_REQUESTER a);
}
}