1 /*
2  * Copyright (c) 2017, Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include "sys/alt_irq.h"
8 #include "altera_common.h"
9 
10 #define ALTERA_MAX_IRQ		32
11 
12 static alt_isr_func alt_hal_isr[ALTERA_MAX_IRQ];
13 
14 #ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT
alt_ic_isr_register(alt_u32 ic_id,alt_u32 irq,alt_isr_func isr,void * isr_context,void * flags)15 int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq,
16 		alt_isr_func isr, void *isr_context, void *flags)
17 
18 {
19   if (irq <= ALTERA_MAX_IRQ)
20   {
21     alt_hal_isr[irq] = isr;
22     return 0;
23   }
24   else
25   {
26     return -EINVAL;
27   }
28 
29 }
30 #else
alt_irq_register(alt_u32 irq,void * context,alt_isr_func isr)31 int alt_irq_register(alt_u32 irq, void* context, alt_isr_func isr)
32 {
33   if (irq <= ALTERA_MAX_IRQ)
34   {
35     alt_hal_isr[irq] = isr;
36     return 0;
37   }
38   else
39   {
40     return -EINVAL;
41   }
42 }
43 #endif
44 
alt_handle_irq(void * base,alt_u32 id)45 void alt_handle_irq(void* base, alt_u32 id)
46 {
47  /* Null pointer check for handler function */
48  if (!alt_hal_isr[id])
49 	 return;
50 
51 #ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT
52   alt_hal_isr[id]((void*)base);
53 #else
54   alt_hal_isr[id]((void*)base, id);
55 #endif
56 }
57 
58 
59 /* Add Altera HAL extern function definations here */
60 
61 /*
62  * alt_tick() should only be called by the system clock driver. This is used
63  * to notify the system that the system timer period has expired.
64  */
65 
alt_tick(void)66 void alt_tick (void)
67 {
68 }
69 
70 #include "priv/alt_dev_llist.h"
alt_dev_llist_insert(alt_dev_llist * dev,alt_llist * list)71 int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list)
72 {
73 	return 0;
74 }
75 
76 #include "priv/alt_busy_sleep.h"
77 #include <kernel.h>
alt_busy_sleep(unsigned int us)78 unsigned int alt_busy_sleep (unsigned int us)
79 {
80 	k_busy_wait(us);
81 	return 0;
82 }
83 
alt_printf(const char * fmt,...)84 void alt_printf(const char *fmt, ...)
85 {
86 }
87