osmo-e1-hardware/firmware/ice40-riscv/icE1usb/misc.h

45 lines
802 B
C

/*
* misc.h
*
* Copyright (C) 2019-2020 Sylvain Munaut <tnt@246tNt.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
#include <stdbool.h>
#include <stdint.h>
enum pdm_chan {
PDM_CLK_LO = 0,
PDM_CLK_HI = 1,
/* icE1usb */
PDM_E1_RX0 = 2,
PDM_E1_RX1 = 3,
/* icE1usb-proto */
PDM_E1_N = 2,
PDM_E1_P = 3,
PDM_E1_CT = 4,
};
void pdm_set(int chan, bool enable, unsigned value, bool normalize);
void gpio_dir(int n, bool output);
void gpio_out(int n, bool val);
bool gpio_in(int n);
void e1_led_run(void);
void e1_led_pause(void);
void e1_led_set(bool enable, uint8_t cfg);
uint16_t e1_tick_read(int port);
bool time_elapsed(uint32_t ref, unsigned int tick);
void delay(unsigned int ms);
uint32_t time_pps_read(void);
uint32_t time_now_read(void);
void reboot(int fw);