9a150e326a
Add a check if i2c SDA pin state is HIGH. if its HIGH, the dev-board is ON, we receive number of Ack. in its LOW, the board is OFF, we send this information back to driver. Change-Id: Ia40d3910675cc10e0208d8bc0060a19c12b1409d Signed-off-by: Ahmed BOUDJELIDA <aboudjelida@nanoxplore.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8716 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
83 lines
2.7 KiB
C
83 lines
2.7 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
/****************************************************************************
|
|
File : main.c *
|
|
Contents : main code for NanoXplore USB-JTAG ANGIE adapter *
|
|
hardware. *
|
|
Based on openULINK project code by: Martin Schmoelzer. *
|
|
Copyright 2023, Ahmed Errached BOUDJELIDA, NanoXplore SAS. *
|
|
<aboudjelida@nanoxplore.com> *
|
|
<ahmederrachedbjld@gmail.com> *
|
|
*****************************************************************************/
|
|
|
|
#include "usb.h"
|
|
#include "serial.h"
|
|
#include "delay.h"
|
|
#include "reg_ezusb.h"
|
|
#include <stdio.h>
|
|
|
|
extern void sudav_isr(void)__interrupt SUDAV_ISR;
|
|
extern void sof_isr(void)__interrupt;
|
|
extern void sutok_isr(void)__interrupt;
|
|
extern void suspend_isr(void)__interrupt;
|
|
extern void usbreset_isr(void)__interrupt;
|
|
extern void highspeed_isr(void)__interrupt;
|
|
extern void ep0ack_isr(void)__interrupt;
|
|
extern void stub_isr(void)__interrupt;
|
|
extern void ep0in_isr(void)__interrupt;
|
|
extern void ep0out_isr(void)__interrupt;
|
|
extern void ep1in_isr(void)__interrupt;
|
|
extern void ep1out_isr(void)__interrupt;
|
|
extern void ep2_isr(void)__interrupt;
|
|
extern void ep4_isr(void)__interrupt;
|
|
extern void ep6_isr(void)__interrupt;
|
|
extern void ep8_isr(void)__interrupt;
|
|
extern void ibn_isr(void)__interrupt;
|
|
extern void ep0pingnak_isr(void)__interrupt;
|
|
extern void ep1pingnak_isr(void)__interrupt;
|
|
extern void ep2pingnak_isr(void)__interrupt;
|
|
extern void ep4pingnak_isr(void)__interrupt;
|
|
extern void ep6pingnak_isr(void)__interrupt;
|
|
extern void ep8pingnak_isr(void)__interrupt;
|
|
extern void errorlimit_isr(void)__interrupt;
|
|
extern void ep2piderror_isr(void)__interrupt;
|
|
extern void ep4piderror_isr(void)__interrupt;
|
|
extern void ep6piderror_isr(void)__interrupt;
|
|
extern void ep8piderror_isr(void)__interrupt;
|
|
extern void ep2pflag_isr(void)__interrupt;
|
|
extern void ep4pflag_isr(void)__interrupt;
|
|
extern void ep6pflag_isr(void)__interrupt;
|
|
extern void ep8pflag_isr(void)__interrupt;
|
|
extern void ep2eflag_isr(void)__interrupt;
|
|
extern void ep4eflag_isr(void)__interrupt;
|
|
extern void ep6eflag_isr(void)__interrupt;
|
|
extern void ep8eflag_isr(void)__interrupt;
|
|
extern void ep2fflag_isr(void)__interrupt;
|
|
extern void ep4fflag_isr(void)__interrupt;
|
|
extern void ep6fflag_isr(void)__interrupt;
|
|
extern void ep8fflag_isr(void)__interrupt;
|
|
extern void gpifcomplete_isr(void)__interrupt;
|
|
extern void gpifwaveform_isr(void)__interrupt;
|
|
|
|
void gpif_init(void);
|
|
|
|
int main(void)
|
|
{
|
|
CPUCS = ((CPUCS & ~bmclkspd) | (CLK_48M << 3) | CLKOE); /* required for sio0_init */
|
|
sio0_init(115200); /* needed for printf */
|
|
|
|
ep_init();
|
|
gpif_init();
|
|
interrupt_init();
|
|
io_init();
|
|
|
|
/* Perform ReNumeration */
|
|
USBCS |= (DISCON | RENUM);
|
|
delay_ms(50);
|
|
USBCS &= ~DISCON;
|
|
|
|
/* stay here */
|
|
while (1)
|
|
;
|
|
}
|