source: azure_iot_hub_riscv/trunk/asp_baseplatform/pdic/k210/device.h@ 453

Last change on this file since 453 was 453, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 18.8 KB
Line 
1/*
2 * TOPPERS/ASP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
5 *
6 * Copyright (C) 2008-2011 by Embedded and Real-Time Systems Laboratory
7 * Graduate School of Information Science, Nagoya Univ., JAPAN
8 * Copyright (C) 2015-2019 by TOPPERS PROJECT Educational Working Group.
9 *
10 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15 * スコード中に含まれていること.
16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
19 * の無保証規定を掲載すること.
20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
22 * と.
23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
24 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
26 * 報告すること.
27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
31 * 免責すること.
32 *
33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
37 * の責任を負わない.
38 *
39 * @(#) $Id$
40 */
41/*
42 * K210用デバイスドライバの外部宣言
43 */
44
45#ifndef _DEVICE_H_
46#define _DEVICE_H_
47
48#ifdef __cplusplus
49 extern "C" {
50#endif
51
52/*
53 * TOPPERS BASE PLATFORM情報
54 */
55#define TOPPERS_BASE_PLATFORM_K210
56#define SPI_DRIVER_NOSTART
57
58/*
59 * バージョン情報
60 */
61#define TPLATFORM_PRVER 0x0012 /* プラットフォームのバージョン番号 */
62
63/*
64 * ピン設定
65 */
66
67#define PINPOSITION0 0
68#define PINPOSITION1 1
69#define PINPOSITION2 2
70#define PINPOSITION3 3
71#define PINPOSITION4 4
72#define PINPOSITION5 5
73#define PINPOSITION6 6
74#define PINPOSITION7 7
75#define PINPOSITION8 8
76#define PINPOSITION9 9
77#define PINPOSITION10 10
78#define PINPOSITION11 11
79#define PINPOSITION12 12
80#define PINPOSITION13 13
81#define PINPOSITION14 14
82#define PINPOSITION15 15
83#define PINPOSITION16 16
84#define PINPOSITION17 17
85#define PINPOSITION18 18
86#define PINPOSITION19 19
87#define PINPOSITION20 20
88#define PINPOSITION21 21
89#define PINPOSITION22 22
90#define PINPOSITION23 23
91#define PINPOSITION24 24
92#define PINPOSITION25 25
93#define PINPOSITION26 26
94#define PINPOSITION27 27
95#define PINPOSITION28 28
96#define PINPOSITION29 29
97#define PINPOSITION30 30
98#define PINPOSITION31 31
99
100#define GPIO_PIN_0 (1<<PINPOSITION0)
101#define GPIO_PIN_1 (1<<PINPOSITION1)
102#define GPIO_PIN_2 (1<<PINPOSITION2)
103#define GPIO_PIN_3 (1<<PINPOSITION3)
104#define GPIO_PIN_4 (1<<PINPOSITION4)
105#define GPIO_PIN_5 (1<<PINPOSITION5)
106#define GPIO_PIN_6 (1<<PINPOSITION6)
107#define GPIO_PIN_7 (1<<PINPOSITION7)
108#define GPIO_PIN_8 (1<<PINPOSITION8)
109#define GPIO_PIN_9 (1<<PINPOSITION9)
110#define GPIO_PIN_10 (1<<PINPOSITION10)
111#define GPIO_PIN_11 (1<<PINPOSITION11)
112#define GPIO_PIN_12 (1<<PINPOSITION12)
113#define GPIO_PIN_13 (1<<PINPOSITION13)
114#define GPIO_PIN_14 (1<<PINPOSITION14)
115#define GPIO_PIN_15 (1<<PINPOSITION15)
116#define GPIO_PIN_16 (1<<PINPOSITION16)
117#define GPIO_PIN_17 (1<<PINPOSITION17)
118#define GPIO_PIN_18 (1<<PINPOSITION18)
119#define GPIO_PIN_19 (1<<PINPOSITION19)
120#define GPIO_PIN_20 (1<<PINPOSITION20)
121#define GPIO_PIN_21 (1<<PINPOSITION21)
122#define GPIO_PIN_22 (1<<PINPOSITION22)
123#define GPIO_PIN_23 (1<<PINPOSITION23)
124#define GPIO_PIN_24 (1<<PINPOSITION24)
125#define GPIO_PIN_25 (1<<PINPOSITION25)
126#define GPIO_PIN_26 (1<<PINPOSITION26)
127#define GPIO_PIN_27 (1<<PINPOSITION27)
128#define GPIO_PIN_28 (1<<PINPOSITION28)
129#define GPIO_PIN_29 (1<<PINPOSITION29)
130#define GPIO_PIN_30 (1<<PINPOSITION30)
131#define GPIO_PIN_31 (1<<PINPOSITION31)
132
133#define ARDUINO_GPIO_PORT 48
134
135/*
136 * GPIOモードパラメータ
137 */
138#define GPIO_MODE_INPUT 0x00000000 /* Input Floating Mode */
139#define GPIO_MODE_OUTPUT 0x00000001 /* Output Mode */
140
141/*
142 * GPIO-割込みモードパラメータ
143 */
144#define GPIO_MODE_IT_RISING 0x00110000 /* Interrupt Mode with Rising edge trigger detection */
145#define GPIO_MODE_IT_FALLING 0x00210000 /* Interrupt Mode with Falling edge trigger detection */
146#define GPIO_MODE_IT_HIGH 0x00410000 /* Interrupt Mode High Level */
147#define GPIO_MODE_IT_LOW 0x00810000 /* Interrupt Mode Low Level */
148
149/*
150 * GPIOプルアップダウンパラメータ
151 */
152#define GPIO_NOPULL 0x00000000 /* No Pull-up or Pull-down activation */
153#define GPIO_PULLUP 0x00000001 /* Pull-up activation */
154#define GPIO_PULLDOWN 0x00000002 /* Pull-down activation */
155#define GPIO_PULLMAX (GPIO_PULLDOWN+1)
156
157/*
158 * GPIO初期化設定
159 */
160typedef struct
161{
162 uint32_t mode; /* specifies the operating mode for the selected pins. */
163 uint32_t pull; /* specifies the Pull-up or Pull-Down */
164}GPIO_Init_t;
165
166extern void gpio_setup(unsigned long base, GPIO_Init_t *init, uint32_t pin);
167extern void gpio_set_pin(unsigned long base, uint8_t pin, uint8_t value);
168extern uint8_t gpio_get_pin(unsigned long base, uint8_t pin);
169extern int gpio_get_gpiohno(uint8_t fpio_pin, bool_t intreq);
170
171
172/*
173 * DMAチャンネル定義
174 */
175#define DMA_CHANNEL0 0
176#define DMA_CHANNEL1 1
177#define DMA_CHANNEL2 2
178#define DMA_CHANNEL3 3
179#define DMA_CHANNEL4 4
180#define DMA_CHANNEL5 5
181#define NUM_DMA_CHANNEL (NUM_DMAC_CHANNEL)
182
183/*
184 * DMA選択定義
185 */
186#define DMA_SELECT_SSI0_RX_REQ 0
187#define DMA_SELECT_SSI0_TX_REQ 1
188#define DMA_SELECT_SSI1_RX_REQ 2
189#define DMA_SELECT_SSI1_TX_REQ 3
190#define DMA_SELECT_SSI2_RX_REQ 4
191#define DMA_SELECT_SSI2_TX_REQ 5
192#define DMA_SELECT_SSI3_RX_REQ 6
193#define DMA_SELECT_SSI3_TX_REQ 7
194#define DMA_SELECT_I2C0_RX_REQ 8
195#define DMA_SELECT_I2C0_TX_REQ 9
196#define DMA_SELECT_I2C1_RX_REQ 10
197#define DMA_SELECT_I2C1_TX_REQ 11
198#define DMA_SELECT_I2C2_RX_REQ 12
199#define DMA_SELECT_I2C2_TX_REQ 13
200#define DMA_SELECT_UART1_RX_REQ 14
201#define DMA_SELECT_UART1_TX_REQ 15
202#define DMA_SELECT_UART2_RX_REQ 16
203#define DMA_SELECT_UART2_TX_REQ 17
204#define DMA_SELECT_UART3_RX_REQ 18
205#define DMA_SELECT_UART3_TX_REQ 19
206#define DMA_SELECT_AES_REQ 20
207#define DMA_SELECT_SHA_RX_REQ 21
208#define DMA_SELECT_AI_RX_REQ 22
209#define DMA_SELECT_FFT_RX_REQ 23
210#define DMA_SELECT_FFT_TX_REQ 24
211#define DMA_SELECT_I2S0_TX_REQ 25
212#define DMA_SELECT_I2S0_RX_REQ 26
213#define DMA_SELECT_I2S1_TX_REQ 27
214#define DMA_SELECT_I2S1_RX_REQ 28
215#define DMA_SELECT_I2S2_TX_REQ 29
216#define DMA_SELECT_I2S2_RX_REQ 30
217#define DMA_SELECT_I2S0_BF_DIR_REQ 31
218#define DMA_SELECT_I2S0_BF_VOICE_REQ 32
219#define NUM_DMA_SELECT 33
220
221/*
222 * DMAステータス定義
223 */
224#define DMA_STATUS_BUSY 0x0001 /* BUSY */
225#define DMA_STATUS_READY_HMEM0 0x0002 /* DMA Mem0 Half process success */
226#define DMA_STATUS_READY_HMEM1 0x0004 /* DMA Mem1 Half process success */
227#define DMA_STATUS_READY_MEM0 0x0008 /* DMA Mem0 process success */
228#define DMA_STATUS_READY_ERROR 0x0100 /* DMA Error end */
229
230/*
231 * DMA転送方向定義
232 */
233#define DMA_MEMORY_TO_MEMORY 0x0000 /* Memory to memory direction(DMAC) */
234#define DMA_MEMORY_TO_PERIPH 0x0001 /* Memory to peripheral direction(DMAC) */
235#define DMA_PERIPH_TO_MEMORY 0x0002 /* Peripheral to memory direction(DMAC) */
236#define DMA_PERIPH_TO_PERIPH 0x0003 /* Peripheral to peripheral direction(DMAC) */
237#define PRF_PERIPH_TO_MEMORY1 0x0004 /* Peripheral to memory direction(PRF-SRC) */
238#define PRF_PERIPH_TO_PERIPH 0x0005 /* Peripheral to peripheral direction(PRF) */
239#define PRF_MEMORY_TO_PERIPH 0x0006 /* Memory to peripheral direction(PRF) */
240#define PRF_PERIPH_TO_MEMORY2 0x0007 /* Peripheral to memory direction(PRF-DST) */
241
242/*
243 * DMAマルチブロックタイプ
244 */
245#define DMAC_MULTBLOCK_CONT 0x0000 /* Continuous multiblock type */
246#define DMAC_MULTBLOCK_RELOAD 0x0001 /* Reload multiblock type */
247#define DMAC_MULTBLOCK_SHADOW 0x0002 /* Shadow register based multiblock type */
248#define DMAC_MULTBLOCK_LINKED 0x0003 /* Linked lisr bases multiblock type */
249
250/*
251 * DMAソフトウェア-ハードウェアハンドシェイク
252 */
253#define DMAC_HS_HARDWARE 0x0000 /* Hardware handshaking */
254#define DMAC_HS_SOFTWARE 0x0001 /* Software handshaking */
255
256/*
257 * DMAハードウェアハンドシェイク極性
258 */
259#define DMAC_HWHS_POLARITY_LOW 0x0000 /* polarity low */
260#define DMAC_HWHS_POLARITY_HIGH 0x00001 /* polarity high */
261
262/*
263 * DMA優先度定義
264 */
265#define DMAC_PRIORITY_0 0x0000
266#define DMAC_PRIORITY_1 0x0001
267#define DMAC_PRIORITY_2 0x0002
268#define DMAC_PRIORITY_3 0x0003
269#define DMAC_PRIORITY_4 0x0004
270#define DMAC_PRIORITY_5 0x0005
271#define DMAC_PRIORITY_6 0x0006
272#define DMAC_PRIORITY_7 0x0007
273
274
275/*
276 * DMAマスター定義
277 */
278#define DMAC_MASTER1 0x0000 /* Master #1 */
279#define DMAC_MASTER2 0x0001 /* Master #2 */
280
281/*
282 * DMAインクリメントモード
283 */
284#define DMAC_ADDR_INCREMENT 0x0000 /* インクリメント */
285#define DMAC_ADDR_NOCHANGE 0x0001 /* 未変更 */
286
287/*
288 * DMA転送幅定義
289 */
290#define DMAC_TRANS_WIDTH_8 0x0000 /* 8ビット */
291#define DMAC_TRANS_WIDTH_16 0x0001 /* 16ビット */
292#define DMAC_TRANS_WIDTH_32 0x0002 /* 32ビット */
293#define DMAC_TRANS_WIDTH_64 0x0003 /* 64ビット */
294#define DMAC_TRANS_WIDTH_128 0x0004 /* 128ビット */
295#define DMAC_TRANS_WIDTH_256 0x0005 /* 256ビット */
296
297/*
298 * DMAブースト転送サイズ定義
299 */
300#define DMAC_MSIZE_1 0x0000 /* 1バイト */
301#define DMAC_MSIZE_4 0x0001 /* 4バイト */
302#define DMAC_MSIZE_8 0x0002 /* 8バイト */
303#define DMAC_MSIZE_16 0x0003 /* 16バイト */
304#define DMAC_MSIZE_32 0x0004 /* 32バイト */
305#define DMAC_MSIZE_64 0x0005 /* 64バイト */
306#define DMAC_MSIZE_128 0x0006 /* 128バイト */
307#define DMAC_MSIZE_256 0x0007 /* 256バイト */
308
309#define DMA_TRS_TIMEOUT 2000 /* 2秒 */
310
311/*
312 * DMA初期化構造体定義
313 */
314typedef struct
315{
316 uint16_t Request; /* DMA選択 */
317 uint16_t Direction; /* DMA転送方向 */
318 uint16_t SrcMultBlock; /* ソースマルチブロックタイプ */
319 uint16_t DrcMultBlock; /* デスティネーションマルチブロックタイプ */
320 uint16_t SrcHandShake; /* ソースハンドシェイク */
321 uint16_t DrcHandShake; /* デスティネーションハンドシェイク */
322 uint16_t SrcHwhsPol; /* ソースハードウェアハンドシェイク極性 */
323 uint16_t DrcHwhsPol; /* デスティネーションハードウェアハンドシェイク極性 */
324 uint16_t Priority; /* 優先度 */
325 uint16_t SrcMaster; /* ソースマスター設定 */
326 uint16_t DstMaster; /* デスティネーションマスター設定 */
327 uint16_t SrcInc; /* ソースインクリメント設定 */
328 uint16_t DstInc; /* デスティネーションインクリメント設定 */
329 uint16_t SrcTransWidth;/* ソース転送幅 */
330 uint16_t DstTransWidth;/* デスティネーション転送幅 */
331 uint16_t SrcBurstSize; /* ソースバーストサイズ */
332 uint16_t DstBurstSize; /* デスティネーションバーストサイズ */
333 uint16_t IocBlkTrans; /* IOCブロック転送 */
334}DMA_Init_t;
335
336/*
337 * DMAハンドラ構造体定義
338 */
339typedef struct __DMA_Handle_t DMA_Handle_t;
340struct __DMA_Handle_t
341{
342 unsigned long base; /* DMA Port base address */
343 unsigned long cbase; /* DMA Channel Port address */
344 DMA_Init_t Init; /* DMA communication parameters */
345 uint16_t chnum; /* channel number */
346 volatile uint16_t status; /* DMA status */
347 volatile uint16_t ErrorCode; /* DMA Error code */
348 uint16_t dummy;
349 void (*xfercallback)(DMA_Handle_t * hdma); /* DMA transfer complete callback */
350 void (*errorcallback)(DMA_Handle_t * hdma); /* DMA transfer error callback */
351 void *localdata; /* DMA local data */
352};
353
354/*
355 * DMAステータス定義
356 */
357#define DMA_STATUS_READY 0x0000 /* READY */
358#define DMA_STATUS_BUSY 0x0001 /* BUSY */
359#define DMA_STATUS_READY_TRN1 0x0008 /* DMA Mem process success */
360#define DMA_STATUS_READY_TRN2 0x0010 /* DMA SRC process success */
361#define DMA_STATUS_READY_TRN3 0x0020 /* DMA DST process success */
362#define DMA_STATUS_READY_ERROR 0x0100 /* DMA Error end */
363
364/*
365 * DMAエラー定義
366 */
367#define DMA_ERROR_NONE 0x0000 /* No error */
368#define DMA_ERROR_SRC_DODE 0x0020 /* Source Decode error */
369#define DMA_ERROR_DST_DECODE 0x0040 /* Destination Decode error */
370#define DMA_ERROR_SRC_SLV 0x0080 /* Source Slave Error Status Enable */
371#define DMA_ERROR_DST_SLV 0x0100 /* Destination Slave Error Status Enable */
372#define DMA_ERROR_LLI_RD_DEC 0x0200 /* LLI Read Decode Error Status */
373#define DMA_ERROR_LLI_WR_DEC 0x0400 /* LLI Write Decode Error Status */
374#define DMA_ERROR_LLI_RD_SLV 0x0800 /* LLI Read Slave Error Status Enable */
375#define DMA_ERROR_LLI_WR_SLV 0x1000 /* LLI Write Slave Error Status Enable */
376#define DMA_ERROR_TIMEOUT 0x0001 /* Timeout error */
377
378extern ER dma_init(DMA_Handle_t *hdma);
379extern ER dma_deinit(DMA_Handle_t *hdma);
380extern ER dma_reset(DMA_Handle_t *hdma);
381extern ER dma_start(DMA_Handle_t *hdma, uintptr_t SrcAddress, uintptr_t DstAddress, uint32_t DataLength);
382extern ER dma_end(DMA_Handle_t *hdma);
383extern void channel_dmac_isr(intptr_t exinf);
384extern ER select_dma_channel(uint8_t channel, uint8_t select);
385
386
387/*
388 * WDOGドライバ
389 */
390#define WDOG1_PORTID 1
391#define WDOG2_PORTID 2
392#define NUM_WDOGPORT 2
393
394/*
395 * WDOGモード定義
396 */
397#define WDT_MODE_REST WDT_CR_RMOD_RESET
398#define WDT_MODE_INTERRUPT WDT_CR_RMOD_INTERRUPT
399
400/*
401 * WDOGハンドラ定義
402 */
403typedef struct __WDT_Handle_t WDT_Handle_t;
404struct __WDT_Handle_t
405{
406 unsigned long base;
407 uint32_t wdtno;
408 uint32_t pclk;
409 void (*callback)(WDT_Handle_t *hwdt);
410};
411
412#define INHNO_WDOG1 IRQ_VECTOR_WDT0 /* 割込みハンドラ番号 */
413#define INTNO_WDOG1 IRQ_VECTOR_WDT0 /* 割込み番号 */
414#define INHNO_WDOG2 IRQ_VECTOR_WDT1 /* 割込みハンドラ番号 */
415#define INTNO_WDOG2 IRQ_VECTOR_WDT1 /* 割込み番号 */
416#define INTPRI_WDOG -1 /* 割込み優先度 */
417#define INTATR_WDOG 0 /* 割込み属性 */
418
419extern WDT_Handle_t *wdt_init(ID port);
420extern ER wdt_deinit(WDT_Handle_t *hwdt);
421extern ER_UINT wdt_start(WDT_Handle_t *hwdt, uint32_t mode, uint32_t timeout_ms);
422extern ER wdt_stop(WDT_Handle_t *hwdt);
423extern void wdog_isr(intptr_t exinf);
424
425
426/*
427 * RTCドライバ
428 */
429
430/*
431 * RTCモード定義
432 */
433#define RTC_TIMER_PAUSE 0 /* Timer pause */
434#define RTC_TIMER_RUNNING 1 /* Timer time running */
435#define RTC_TIMER_SETTING 2 /* Timer time setting */
436#define RTC_TIMER_MAX 3 /* Max count of this enum*/
437
438/*
439 * RTC TICK割込みモード
440 */
441#define RTC_INT_SECOND 0 /* 秒単位 */
442#define RTC_INT_MINUTE 1 /* 分単位 */
443#define RTC_INT_HOUR 2 /* 時間単位 */
444#define RTC_INT_DAY 3 /* 日単位 */
445
446/*
447 * RTC ALARMマスク
448 */
449#define RTC_ALARM_SECOND 0x02000000 /* 秒マスク */
450#define RTC_ALARM_MINUTE 0x04000000 /* 分マスク */
451#define RTC_ALARM_HOUR 0x08000000 /* 時マスク */
452#define RTC_ALARM_WEEK 0x10000000 /* 週マスク */
453#define RTC_ALARM_DAY 0x20000000 /* 日マスク */
454#define RTC_ALARM_MONTH 0x40000000 /* 月マスク */
455#define RTC_ALARM_YEAR 0x80000000 /* 年マスク */
456
457/*
458 * RTC割込み設定
459 */
460#define INHNO_RTC IRQ_VECTOR_RTC /* 割込みハンドラ番号 */
461#define INTNO_RTC IRQ_VECTOR_RTC /* 割込み番号 */
462#define INTPRI_RTC -7 /* 割込み優先度 */
463#define INTATR_RTC 0 /* 割込み属性 */
464
465/*
466 * 日時設定用の構造体を定義
467 */
468struct tm2 {
469 int tm_sec; /* 秒 */
470 int tm_min; /* 分 */
471 int tm_hour; /* 時 */
472 int tm_mday; /* 月中の日 */
473 int tm_mon; /* 月 */
474 int tm_year; /* 年 */
475 int tm_wday; /* 曜日 */
476 int tm_yday; /* 年中の日 */
477 int tm_isdst;
478};
479
480/*
481 * RTCアラーム構造体
482 */
483typedef struct
484{
485 uint32_t alarmmask; /* アラームマスク設定 */
486 void (*callback)(int); /* アラームコールバック */
487}RTC_Alarm_t;
488
489extern void rtc_init(intptr_t exinf);
490extern void rtc_info_init(intptr_t exinf);
491extern ER rtc_timer_set_mode(uint8_t timer_mode);
492extern ER rtc_set_time(struct tm2 *pt);
493extern ER rtc_get_time(struct tm2 *pt);
494extern ER_UINT rtc_intmode(int8_t mode, void *func);
495extern ER rtc_setalarm(RTC_Alarm_t *parm, struct tm2 *ptm);
496extern void rtc_int_handler(void);
497
498extern uint8_t rtc_timer_mode;
499
500/*
501 * デバイス初期化
502 */
503extern void device_init(intptr_t exinf);
504
505/*
506 * SPI0/DVPのモード設定
507 */
508extern ER select_spi0_dvp_mode(uint8_t en);
509
510
511/*
512 * FPIOAにファンクションを設定する
513 * param1 number The IO number
514 * param2 function The function enum number
515 * return 0-OK
516 */
517extern ER fpioa_set_function(int number, uint8_t function);
518
519
520/*
521 * PLLクロック取得
522 */
523extern uint32_t get_pll_clock(uint8_t no);
524
525
526
527#ifdef __cplusplus
528}
529#endif
530
531#endif
532
Note: See TracBrowser for help on using the repository browser.