/**
 * @file   MKY39.h
 * @author StepTechnica
 * @date   Feb. 26, 2026
 * 
 * @brief Evaluation Board 用ヘッダーファイル「MKY39デバイス」
 * 
 * @copyright (C) 2022- StepTechnica Co.,Ltd.
 * 
 * このソフトウェアは、コピー利用、配布、変更の追加、変更を加えたもの再配布、商用利用、有料販売など、どなたも自由にお使いいただくことができます。
 * このソフトウェアには保証はついていません。
 * このソフトウェアを利用したことで問題が起きた際に、ソフトウェアの製作者は一切の責任を負いません。
 * 
 */

#ifndef MKY_39_H
#define MKY_39_H

/* -----------------------------------------------------------------------------
 * #defineマクロ定義
 */
#define MKY_39							//プリプロセッサのデバイス識別用

#define MKY39_x				0			// DeiveType
#define MKY39_1				1
#define MKY39_2				2


#define MKY_MEMORY_BASE		0x00000000	//メモリ開始アドレス
#define MKY_MEMORY_SIZE		0x3FFF		//メモリサイズ
#define MAX_ACCESS_SIZE		(0x800)		//コマンドからアクセスできるメモリのサイズ
#define	SZ_AREA         	0x0080


// MKY39-1 address map
#define TOP_T1DoArea    	0x0000		// Dout Area
#define TOP_T1DiArea    	0x0080		// Din Area
#define	TOP_T1CMDSRArea 	0x011C
#define	TOP_T1CMDCRArea 	0x01B4

#define	OFS_regT1LSR    	0x0100
#define	OFS_regT1LSR3   	0x0108
#define	OFS_regT1C1SR   	0x0110
#define	OFS_regT1C2SR   	0x0114
#define	OFS_regT1SSR    	0x0118
#define	OFS_regT1INTCR  	0x019C
#define	OFS_regT1INTSR  	0x01A0
#define	OFS_regT1INTRR  	0x01A4
#define	OFS_regT1SCR    	0x01A8
#define	OFS_regT1CnRR   	0x01AC
#define	OFS_regT1BCR    	0x01B0
#define	OFS_regT1CCR    	0x0234
#define	OFS_regT1GPDO   	0x0244
#define	OFS_regT1GPDI   	0x024C

// 起動時 CCRチェック
#define	VAL_T1CCR       	"MKY39-1_10"



// MKY39-2 address map
#define TOP_T2C1DoArea  	0x0000		// Center1 Dout Area
#define TOP_T2C2DoArea  	0x0080		// Center2 Dout Area
#define TOP_T2C1DiArea  	0x0100		// Center1 Din Area
#define TOP_T2C2DiArea  	0x0180		// Center2 Din Area

#define	TOP_T2C1CMDSRArea	0x0238
#define	TOP_T2C2CMDSRArea	0x02B8
#define	TOP_T2C1CMDCRArea	0x0350
#define	TOP_T2C2CMDCRArea	0x03E8

#define	OFS_regT2C1LSR  	0x0200
#define	OFS_regT2C1LSR3 	0x0208
#define	OFS_regT2C1C1SR 	0x0210
#define	OFS_regT2C1C2SR 	0x0214
#define	OFS_regT2C1SSR  	0x0218

#define	OFS_regT2C2LSR  	0x021C
#define	OFS_regT2C2LSR3 	0x0224
#define	OFS_regT2C2C1SR 	0x022C
#define	OFS_regT2C2C2SR 	0x0230
#define	OFS_regT2C2SSR  	0x0234

#define	OFS_regT2C1INTCR	0x0338
#define	OFS_regT2C1INTSR	0x033C
#define	OFS_regT2C1INTRR	0x0340
#define	OFS_regT2C1SCR  	0x0344
#define	OFS_regT2C1CnRR 	0x0348
#define	OFS_regT2C1BCR  	0x034C

#define	OFS_regT2C2INTCR	0x03D0
#define	OFS_regT2C2INTSR	0x03D4
#define	OFS_regT2C2INTRR	0x03D8
#define	OFS_regT2C2SCR  	0x03DC
#define	OFS_regT2C2CnRR 	0x03E0
#define	OFS_regT2C2BCR  	0x03E4

#define	OFS_regT2CCR    	0x04E8
#define	OFS_regT2GPDO   	0x04F8
#define	OFS_regT2GPDI   	0x0500

// 起動時 CCRチェック
#define	VAL_T2CCR       	"MKY39-2_10"


// SSR
#define	BIT_regSSR_SYNC 	0x0800
#define	BIT_regSSR_SCAN 	0x0080
#define	BIT_regSSR_FT5  	0x0020
#define	BIT_regSSR_FT4  	0x0010
#define	BIT_regSSR_FT3  	0x0008
#define	BIT_regSSR_FT2  	0x0004
#define	BIT_regSSR_FT1  	0x0002
#define	BIT_regSSR_FT0  	0x0001
// INTCR
#define	BIT_regINTCR_SSTOP	0x8000
#define	BIT_regINTCR_CHK2 	0x4000
#define	BIT_regINTCR_CHK1 	0x2000
#define	BIT_regINTCR_SCANR	0x0800
// INTSR
#define	BIT_regINTSR_SSTOP	0x0080
#define	BIT_regINTSR_CHK2 	0x0040
#define	BIT_regINTSR_CHK1 	0x0020
#define	BIT_regINTSR_SCANR	0x0008
// SCR
#define	BIT_regSCR_SFS5 	0x2000
#define	BIT_regSCR_SFS4 	0x1000
#define	BIT_regSCR_SFS3 	0x0800
#define	BIT_regSCR_SFS2 	0x0400
#define	BIT_regSCR_SFS1 	0x0200
#define	BIT_regSCR_SFS0 	0x0100
#define	BIT_regSCR_FS5  	0x0020
#define	BIT_regSCR_FS4  	0x0010
#define	BIT_regSCR_FS3  	0x0008
#define	BIT_regSCR_FS2  	0x0004
#define	BIT_regSCR_FS1  	0x0002
#define	BIT_regSCR_FS0  	0x0001
// BCR
#define	BIT_regBCR_LFb2 	0x0400
#define	BIT_regBCR_LFb1 	0x0200
#define	BIT_regBCR_LFb0 	0x0100
#define	BIT_regBCR_FH   	0x0010
#define	BIT_regBCR_BPS1 	0x0002
#define	BIT_regBCR_BPS0 	0x0001
#define	BIT_regBCR_LF7  	(BIT_regBCR_LFb2 | BIT_regBCR_LFb1 | BIT_regBCR_LFb0)
#define	BIT_regBCR_LF6  	(BIT_regBCR_LFb2 | BIT_regBCR_LFb1 |                )
#define	BIT_regBCR_LF5  	(BIT_regBCR_LFb2 |                 | BIT_regBCR_LFb0)
#define	BIT_regBCR_LF4  	(BIT_regBCR_LFb2 |                 |                )
#define	BIT_regBCR_LF3  	(                  BIT_regBCR_LFb1 | BIT_regBCR_LFb0)
#define	BIT_regBCR_LF2  	(                  BIT_regBCR_LFb1 |                )
#define	BIT_regBCR_LF1  	(                                    BIT_regBCR_LFb0)
#define	BIT_regBCR_LF0  	( 0                                                 )
#define	BIT_regBCR_12MBPS 	(BIT_regBCR_BPS1 | BIT_regBCR_BPS0)
#define	BIT_regBCR_6MBPS 	(BIT_regBCR_BPS1                  )
#define	BIT_regBCR_3MBPS 	(                  BIT_regBCR_BPS0)

// -----------------------

/* -----------------------------------------------------------------------------
 * 変数定義
 */
extern char strPROMPT[16];
extern char gDeviceType;


#endif//MKY_39_H/
