blob: b294be96e9bbabf5236f385d53d86bcb45893c00 [file] [log] [blame]
/*
* 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_ */