/*
 * Copyright (c) 2020 Antmicro <www.antmicro.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef _SOC__H_
#define _SOC__H_

#include <zephyr/sys/util.h>
#include <eoss3_dev.h>

/* Available frequencies */
#define HSOSC_1MHZ	1024000
#define HSOSC_2MHZ	(2*HSOSC_1MHZ)
#define HSOSC_3MHZ	(3*HSOSC_1MHZ)
#define HSOSC_4MHZ	(4*HSOSC_1MHZ)
#define HSOSC_5MHZ	(5*HSOSC_1MHZ)
#define HSOSC_6MHZ	(6*HSOSC_1MHZ)
#define HSOSC_8MHZ	(8*HSOSC_1MHZ)
#define HSOSC_9MHZ	(9*HSOSC_1MHZ)
#define HSOSC_10MHZ	(10*HSOSC_1MHZ)
#define HSOSC_12MHZ	(12*HSOSC_1MHZ)
#define HSOSC_15MHZ	(15*HSOSC_1MHZ)
#define HSOSC_16MHZ	(16*HSOSC_1MHZ)
#define HSOSC_18MHZ	(18*HSOSC_1MHZ)
#define HSOSC_20MHZ	(20*HSOSC_1MHZ)
#define HSOSC_21MHZ	(21*HSOSC_1MHZ)
#define HSOSC_24MHZ	(24*HSOSC_1MHZ)
#define HSOSC_27MHZ	(27*HSOSC_1MHZ)
#define HSOSC_30MHZ	(30*HSOSC_1MHZ)
#define HSOSC_32MHZ	(32*HSOSC_1MHZ)
#define HSOSC_35MHZ	(35*HSOSC_1MHZ)
#define HSOSC_36MHZ	(36*HSOSC_1MHZ)
#define HSOSC_40MHZ	(40*HSOSC_1MHZ)
#define HSOSC_45MHZ	(45*HSOSC_1MHZ)
#define HSOSC_48MHZ	(48*HSOSC_1MHZ)
#define HSOSC_54MHZ	(54*HSOSC_1MHZ)
#define HSOSC_60MHZ	(60*HSOSC_1MHZ)
#define HSOSC_64MHZ	(64*HSOSC_1MHZ)
#define HSOSC_70MHZ	(70*HSOSC_1MHZ)
#define HSOSC_72MHZ	(72*HSOSC_1MHZ)
#define HSOSC_80MHZ	(80*HSOSC_1MHZ)

#define OSC_CLK_LOCKED()	(AIP->OSC_STA_0 & 0x1)
#define OSC_SET_FREQ_INC(FREQ)	(AIP->OSC_CTRL_1 = ((FREQ / 32768) - 3) & 0xFFF)
#define OSC_GET_FREQ_INC()	(((AIP->OSC_CTRL_1 & 0xFFF) + 3) * 32768)

#define EOS_S3_MAX_PAD_NR			45

void eos_s3_lock_enable(void);
void eos_s3_lock_disable(void);

int eos_s3_io_mux(uint32_t pad_nr, uint32_t pad_cfg);

#endif /* _SOC__H_ */
