From c59a94a16b49af7583c046e06236dad580784329 Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Mon, 14 Dec 2020 21:44:09 +1000 Subject: [PATCH] Add second SPI master for 5.2 board --- .../Generated_Source/PSoC5/NOR_CTL.c | 65 + .../Generated_Source/PSoC5/NOR_CTL.h | 67 + .../Generated_Source/PSoC5/NOR_CTL_PM.c | 109 + .../Generated_Source/PSoC5/NOR_Clock.c | 521 +++ .../Generated_Source/PSoC5/NOR_Clock.h | 124 + .../Generated_Source/PSoC5/NOR_SCK.c | 226 ++ .../Generated_Source/PSoC5/NOR_SCK.h | 165 + .../Generated_Source/PSoC5/NOR_SCK_aliases.h | 36 + .../Generated_Source/PSoC5/NOR_SI.c | 226 ++ .../Generated_Source/PSoC5/NOR_SI.h | 165 + .../Generated_Source/PSoC5/NOR_SI_aliases.h | 36 + .../Generated_Source/PSoC5/NOR_SO.c | 226 ++ .../Generated_Source/PSoC5/NOR_SO.h | 165 + .../Generated_Source/PSoC5/NOR_SO_aliases.h | 36 + .../Generated_Source/PSoC5/NOR_SPI.c | 1154 ++++++ .../Generated_Source/PSoC5/NOR_SPI.h | 367 ++ .../Generated_Source/PSoC5/NOR_SPI_INT.c | 206 + .../Generated_Source/PSoC5/NOR_SPI_PM.c | 149 + .../Generated_Source/PSoC5/NOR_SPI_PVT.h | 53 + .../Generated_Source/PSoC5/cyfitter.h | 661 ++-- .../Generated_Source/PSoC5/cyfitter_cfg.c | 3335 +++++++++-------- .../Generated_Source/PSoC5/cyfittergnu.inc | 661 ++-- .../Generated_Source/PSoC5/cyfitteriar.inc | 661 ++-- .../Generated_Source/PSoC5/cyfitterrv.inc | 661 ++-- .../Generated_Source/PSoC5/nNOR_CS.c | 226 ++ .../Generated_Source/PSoC5/nNOR_CS.h | 165 + .../Generated_Source/PSoC5/nNOR_CS_aliases.h | 36 + .../Generated_Source/PSoC5/nNOR_HOLD.c | 226 ++ .../Generated_Source/PSoC5/nNOR_HOLD.h | 165 + .../PSoC5/nNOR_HOLD_aliases.h | 36 + .../Generated_Source/PSoC5/nNOR_WP.c | 226 ++ .../Generated_Source/PSoC5/nNOR_WP.h | 165 + .../Generated_Source/PSoC5/nNOR_WP_aliases.h | 36 + .../Generated_Source/PSoC5/project.h | 20 +- .../SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cycdx | 259 +- .../SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cydwr | 34 +- .../SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyfit | Bin 258324 -> 275822 bytes .../SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyprj | 318 +- .../SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.svd | 1147 +++--- .../SCSI2SD.cydsn/TopDesign/TopDesign.cysch | Bin 325059 -> 339357 bytes 40 files changed, 10099 insertions(+), 3035 deletions(-) create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL_PM.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK_aliases.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI_aliases.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO_aliases.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_INT.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PM.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PVT.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS_aliases.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD_aliases.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.c create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.h create mode 100644 software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP_aliases.h diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.c new file mode 100644 index 0000000..a7a2cdd --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.c @@ -0,0 +1,65 @@ +/******************************************************************************* +* File Name: NOR_CTL.c +* Version 1.80 +* +* Description: +* This file contains API to enable firmware control of a Control Register. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "NOR_CTL.h" + +/* Check for removal by optimization */ +#if !defined(NOR_CTL_Sync_ctrl_reg__REMOVED) + + +/******************************************************************************* +* Function Name: NOR_CTL_Write +******************************************************************************** +* +* Summary: +* Write a byte to the Control Register. +* +* Parameters: +* control: The value to be assigned to the Control Register. +* +* Return: +* None. +* +*******************************************************************************/ +void NOR_CTL_Write(uint8 control) +{ + NOR_CTL_Control = control; +} + + +/******************************************************************************* +* Function Name: NOR_CTL_Read +******************************************************************************** +* +* Summary: +* Reads the current value assigned to the Control Register. +* +* Parameters: +* None. +* +* Return: +* Returns the current value in the Control Register. +* +*******************************************************************************/ +uint8 NOR_CTL_Read(void) +{ + return NOR_CTL_Control; +} + +#endif /* End check for removal by optimization */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.h new file mode 100644 index 0000000..b545356 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL.h @@ -0,0 +1,67 @@ +/******************************************************************************* +* File Name: NOR_CTL.h +* Version 1.80 +* +* Description: +* This file containts Control Register function prototypes and register defines +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_CONTROL_REG_NOR_CTL_H) /* CY_CONTROL_REG_NOR_CTL_H */ +#define CY_CONTROL_REG_NOR_CTL_H + +#include "cyfitter.h" + +#if ((CYDEV_CHIP_FAMILY_USED == CYDEV_CHIP_FAMILY_PSOC3) || \ + (CYDEV_CHIP_FAMILY_USED == CYDEV_CHIP_FAMILY_PSOC4) || \ + (CYDEV_CHIP_FAMILY_USED == CYDEV_CHIP_FAMILY_PSOC5)) + #include "cytypes.h" +#else + #include "syslib/cy_syslib.h" +#endif + + +/*************************************** +* Data Struct Definitions +***************************************/ + +/* Sleep Mode API Support */ +typedef struct +{ + uint8 controlState; + +} NOR_CTL_BACKUP_STRUCT; + + +/*************************************** +* Function Prototypes +***************************************/ + +void NOR_CTL_Write(uint8 control) ; +uint8 NOR_CTL_Read(void) ; + +void NOR_CTL_SaveConfig(void) ; +void NOR_CTL_RestoreConfig(void) ; +void NOR_CTL_Sleep(void) ; +void NOR_CTL_Wakeup(void) ; + + +/*************************************** +* Registers +***************************************/ + +/* Control Register */ +#define NOR_CTL_Control (* (reg8 *) NOR_CTL_Sync_ctrl_reg__CONTROL_REG ) +#define NOR_CTL_Control_PTR ( (reg8 *) NOR_CTL_Sync_ctrl_reg__CONTROL_REG ) + +#endif /* End CY_CONTROL_REG_NOR_CTL_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL_PM.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL_PM.c new file mode 100644 index 0000000..47f2d88 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_CTL_PM.c @@ -0,0 +1,109 @@ +/******************************************************************************* +* File Name: NOR_CTL_PM.c +* Version 1.80 +* +* Description: +* This file contains the setup, control, and status commands to support +* the component operation in the low power mode. +* +* Note: +* +******************************************************************************** +* Copyright 2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "NOR_CTL.h" + +/* Check for removal by optimization */ +#if !defined(NOR_CTL_Sync_ctrl_reg__REMOVED) + +static NOR_CTL_BACKUP_STRUCT NOR_CTL_backup = {0u}; + + +/******************************************************************************* +* Function Name: NOR_CTL_SaveConfig +******************************************************************************** +* +* Summary: +* Saves the control register value. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void NOR_CTL_SaveConfig(void) +{ + NOR_CTL_backup.controlState = NOR_CTL_Control; +} + + +/******************************************************************************* +* Function Name: NOR_CTL_RestoreConfig +******************************************************************************** +* +* Summary: +* Restores the control register value. +* +* Parameters: +* None +* +* Return: +* None +* +* +*******************************************************************************/ +void NOR_CTL_RestoreConfig(void) +{ + NOR_CTL_Control = NOR_CTL_backup.controlState; +} + + +/******************************************************************************* +* Function Name: NOR_CTL_Sleep +******************************************************************************** +* +* Summary: +* Prepares the component for entering the low power mode. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void NOR_CTL_Sleep(void) +{ + NOR_CTL_SaveConfig(); +} + + +/******************************************************************************* +* Function Name: NOR_CTL_Wakeup +******************************************************************************** +* +* Summary: +* Restores the component after waking up from the low power mode. +* +* Parameters: +* None +* +* Return: +* None +* +*******************************************************************************/ +void NOR_CTL_Wakeup(void) +{ + NOR_CTL_RestoreConfig(); +} + +#endif /* End check for removal by optimization */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.c new file mode 100644 index 0000000..10c1a16 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.c @@ -0,0 +1,521 @@ +/******************************************************************************* +* File Name: NOR_Clock.c +* Version 2.20 +* +* Description: +* This file provides the source code to the API for the clock component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include +#include "NOR_Clock.h" + +/* Clock Distribution registers. */ +#define CLK_DIST_LD (* (reg8 *) CYREG_CLKDIST_LD) +#define CLK_DIST_BCFG2 (* (reg8 *) CYREG_CLKDIST_BCFG2) +#define BCFG2_MASK (0x80u) +#define CLK_DIST_DMASK (* (reg8 *) CYREG_CLKDIST_DMASK) +#define CLK_DIST_AMASK (* (reg8 *) CYREG_CLKDIST_AMASK) + +#define HAS_CLKDIST_LD_DISABLE (CY_PSOC3 || CY_PSOC5LP) + + +/******************************************************************************* +* Function Name: NOR_Clock_Start +******************************************************************************** +* +* Summary: +* Starts the clock. Note that on startup, clocks may be already running if the +* "Start on Reset" option is enabled in the DWR. +* +* Parameters: +* None +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_Start(void) +{ + /* Set the bit to enable the clock. */ + NOR_Clock_CLKEN |= NOR_Clock_CLKEN_MASK; + NOR_Clock_CLKSTBY |= NOR_Clock_CLKSTBY_MASK; +} + + +/******************************************************************************* +* Function Name: NOR_Clock_Stop +******************************************************************************** +* +* Summary: +* Stops the clock and returns immediately. This API does not require the +* source clock to be running but may return before the hardware is actually +* disabled. If the settings of the clock are changed after calling this +* function, the clock may glitch when it is started. To avoid the clock +* glitch, use the StopBlock function. +* +* Parameters: +* None +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_Stop(void) +{ + /* Clear the bit to disable the clock. */ + NOR_Clock_CLKEN &= (uint8)(~NOR_Clock_CLKEN_MASK); + NOR_Clock_CLKSTBY &= (uint8)(~NOR_Clock_CLKSTBY_MASK); +} + + +#if(CY_PSOC3 || CY_PSOC5LP) + + +/******************************************************************************* +* Function Name: NOR_Clock_StopBlock +******************************************************************************** +* +* Summary: +* Stops the clock and waits for the hardware to actually be disabled before +* returning. This ensures that the clock is never truncated (high part of the +* cycle will terminate before the clock is disabled and the API returns). +* Note that the source clock must be running or this API will never return as +* a stopped clock cannot be disabled. +* +* Parameters: +* None +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_StopBlock(void) +{ + if ((NOR_Clock_CLKEN & NOR_Clock_CLKEN_MASK) != 0u) + { +#if HAS_CLKDIST_LD_DISABLE + uint16 oldDivider; + + CLK_DIST_LD = 0u; + + /* Clear all the mask bits except ours. */ +#if defined(NOR_Clock__CFG3) + CLK_DIST_AMASK = NOR_Clock_CLKEN_MASK; + CLK_DIST_DMASK = 0x00u; +#else + CLK_DIST_DMASK = NOR_Clock_CLKEN_MASK; + CLK_DIST_AMASK = 0x00u; +#endif /* NOR_Clock__CFG3 */ + + /* Clear mask of bus clock. */ + CLK_DIST_BCFG2 &= (uint8)(~BCFG2_MASK); + + oldDivider = CY_GET_REG16(NOR_Clock_DIV_PTR); + CY_SET_REG16(CYREG_CLKDIST_WRK0, oldDivider); + CLK_DIST_LD = CYCLK_LD_DISABLE | CYCLK_LD_SYNC_EN | CYCLK_LD_LOAD; + + /* Wait for clock to be disabled */ + while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { } +#endif /* HAS_CLKDIST_LD_DISABLE */ + + /* Clear the bit to disable the clock. */ + NOR_Clock_CLKEN &= (uint8)(~NOR_Clock_CLKEN_MASK); + NOR_Clock_CLKSTBY &= (uint8)(~NOR_Clock_CLKSTBY_MASK); + +#if HAS_CLKDIST_LD_DISABLE + /* Clear the disable bit */ + CLK_DIST_LD = 0x00u; + CY_SET_REG16(NOR_Clock_DIV_PTR, oldDivider); +#endif /* HAS_CLKDIST_LD_DISABLE */ + } +} +#endif /* (CY_PSOC3 || CY_PSOC5LP) */ + + +/******************************************************************************* +* Function Name: NOR_Clock_StandbyPower +******************************************************************************** +* +* Summary: +* Sets whether the clock is active in standby mode. +* +* Parameters: +* state: 0 to disable clock during standby, nonzero to enable. +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_StandbyPower(uint8 state) +{ + if(state == 0u) + { + NOR_Clock_CLKSTBY &= (uint8)(~NOR_Clock_CLKSTBY_MASK); + } + else + { + NOR_Clock_CLKSTBY |= NOR_Clock_CLKSTBY_MASK; + } +} + + +/******************************************************************************* +* Function Name: NOR_Clock_SetDividerRegister +******************************************************************************** +* +* Summary: +* Modifies the clock divider and, thus, the frequency. When the clock divider +* register is set to zero or changed from zero, the clock will be temporarily +* disabled in order to change the SSS mode bit. If the clock is enabled when +* SetDividerRegister is called, then the source clock must be running. +* +* Parameters: +* clkDivider: Divider register value (0-65,535). This value is NOT the +* divider; the clock hardware divides by clkDivider plus one. For example, +* to divide the clock by 2, this parameter should be set to 1. +* restart: If nonzero, restarts the clock divider: the current clock cycle +* will be truncated and the new divide value will take effect immediately. If +* zero, the new divide value will take effect at the end of the current clock +* cycle. +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_SetDividerRegister(uint16 clkDivider, uint8 restart) + +{ + uint8 enabled; + + uint8 currSrc = NOR_Clock_GetSourceRegister(); + uint16 oldDivider = NOR_Clock_GetDividerRegister(); + + if (clkDivider != oldDivider) + { + enabled = NOR_Clock_CLKEN & NOR_Clock_CLKEN_MASK; + + if ((currSrc == (uint8)CYCLK_SRC_SEL_CLK_SYNC_D) && ((oldDivider == 0u) || (clkDivider == 0u))) + { + /* Moving to/from SSS requires correct ordering to prevent halting the clock */ + if (oldDivider == 0u) + { + /* Moving away from SSS, set the divider first so when SSS is cleared we */ + /* don't halt the clock. Using the shadow load isn't required as the */ + /* divider is ignored while SSS is set. */ + CY_SET_REG16(NOR_Clock_DIV_PTR, clkDivider); + NOR_Clock_MOD_SRC &= (uint8)(~CYCLK_SSS); + } + else + { + /* Moving to SSS, set SSS which then ignores the divider and we can set */ + /* it without bothering with the shadow load. */ + NOR_Clock_MOD_SRC |= CYCLK_SSS; + CY_SET_REG16(NOR_Clock_DIV_PTR, clkDivider); + } + } + else + { + + if (enabled != 0u) + { + CLK_DIST_LD = 0x00u; + + /* Clear all the mask bits except ours. */ +#if defined(NOR_Clock__CFG3) + CLK_DIST_AMASK = NOR_Clock_CLKEN_MASK; + CLK_DIST_DMASK = 0x00u; +#else + CLK_DIST_DMASK = NOR_Clock_CLKEN_MASK; + CLK_DIST_AMASK = 0x00u; +#endif /* NOR_Clock__CFG3 */ + /* Clear mask of bus clock. */ + CLK_DIST_BCFG2 &= (uint8)(~BCFG2_MASK); + + /* If clock is currently enabled, disable it if async or going from N-to-1*/ + if (((NOR_Clock_MOD_SRC & CYCLK_SYNC) == 0u) || (clkDivider == 0u)) + { +#if HAS_CLKDIST_LD_DISABLE + CY_SET_REG16(CYREG_CLKDIST_WRK0, oldDivider); + CLK_DIST_LD = CYCLK_LD_DISABLE|CYCLK_LD_SYNC_EN|CYCLK_LD_LOAD; + + /* Wait for clock to be disabled */ + while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { } +#endif /* HAS_CLKDIST_LD_DISABLE */ + + NOR_Clock_CLKEN &= (uint8)(~NOR_Clock_CLKEN_MASK); + +#if HAS_CLKDIST_LD_DISABLE + /* Clear the disable bit */ + CLK_DIST_LD = 0x00u; +#endif /* HAS_CLKDIST_LD_DISABLE */ + } + } + + /* Load divide value. */ + if ((NOR_Clock_CLKEN & NOR_Clock_CLKEN_MASK) != 0u) + { + /* If the clock is still enabled, use the shadow registers */ + CY_SET_REG16(CYREG_CLKDIST_WRK0, clkDivider); + + CLK_DIST_LD = (CYCLK_LD_LOAD | ((restart != 0u) ? CYCLK_LD_SYNC_EN : 0x00u)); + while ((CLK_DIST_LD & CYCLK_LD_LOAD) != 0u) { } + } + else + { + /* If the clock is disabled, set the divider directly */ + CY_SET_REG16(NOR_Clock_DIV_PTR, clkDivider); + NOR_Clock_CLKEN |= enabled; + } + } + } +} + + +/******************************************************************************* +* Function Name: NOR_Clock_GetDividerRegister +******************************************************************************** +* +* Summary: +* Gets the clock divider register value. +* +* Parameters: +* None +* +* Returns: +* Divide value of the clock minus 1. For example, if the clock is set to +* divide by 2, the return value will be 1. +* +*******************************************************************************/ +uint16 NOR_Clock_GetDividerRegister(void) +{ + return CY_GET_REG16(NOR_Clock_DIV_PTR); +} + + +/******************************************************************************* +* Function Name: NOR_Clock_SetModeRegister +******************************************************************************** +* +* Summary: +* Sets flags that control the operating mode of the clock. This function only +* changes flags from 0 to 1; flags that are already 1 will remain unchanged. +* To clear flags, use the ClearModeRegister function. The clock must be +* disabled before changing the mode. +* +* Parameters: +* clkMode: Bit mask containing the bits to set. For PSoC 3 and PSoC 5, +* clkMode should be a set of the following optional bits or'ed together. +* - CYCLK_EARLY Enable early phase mode. Rising edge of output clock will +* occur when the divider count reaches half of the divide +* value. +* - CYCLK_DUTY Enable 50% duty cycle output. When enabled, the output clock +* is asserted for approximately half of its period. When +* disabled, the output clock is asserted for one period of the +* source clock. +* - CYCLK_SYNC Enable output synchronization to master clock. This should +* be enabled for all synchronous clocks. +* See the Technical Reference Manual for details about setting the mode of +* the clock. Specifically, see the CLKDIST.DCFG.CFG2 register. +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_SetModeRegister(uint8 modeBitMask) +{ + NOR_Clock_MOD_SRC |= modeBitMask & (uint8)NOR_Clock_MODE_MASK; +} + + +/******************************************************************************* +* Function Name: NOR_Clock_ClearModeRegister +******************************************************************************** +* +* Summary: +* Clears flags that control the operating mode of the clock. This function +* only changes flags from 1 to 0; flags that are already 0 will remain +* unchanged. To set flags, use the SetModeRegister function. The clock must be +* disabled before changing the mode. +* +* Parameters: +* clkMode: Bit mask containing the bits to clear. For PSoC 3 and PSoC 5, +* clkMode should be a set of the following optional bits or'ed together. +* - CYCLK_EARLY Enable early phase mode. Rising edge of output clock will +* occur when the divider count reaches half of the divide +* value. +* - CYCLK_DUTY Enable 50% duty cycle output. When enabled, the output clock +* is asserted for approximately half of its period. When +* disabled, the output clock is asserted for one period of the +* source clock. +* - CYCLK_SYNC Enable output synchronization to master clock. This should +* be enabled for all synchronous clocks. +* See the Technical Reference Manual for details about setting the mode of +* the clock. Specifically, see the CLKDIST.DCFG.CFG2 register. +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_ClearModeRegister(uint8 modeBitMask) +{ + NOR_Clock_MOD_SRC &= (uint8)(~modeBitMask) | (uint8)(~(uint8)(NOR_Clock_MODE_MASK)); +} + + +/******************************************************************************* +* Function Name: NOR_Clock_GetModeRegister +******************************************************************************** +* +* Summary: +* Gets the clock mode register value. +* +* Parameters: +* None +* +* Returns: +* Bit mask representing the enabled mode bits. See the SetModeRegister and +* ClearModeRegister descriptions for details about the mode bits. +* +*******************************************************************************/ +uint8 NOR_Clock_GetModeRegister(void) +{ + return NOR_Clock_MOD_SRC & (uint8)(NOR_Clock_MODE_MASK); +} + + +/******************************************************************************* +* Function Name: NOR_Clock_SetSourceRegister +******************************************************************************** +* +* Summary: +* Sets the input source of the clock. The clock must be disabled before +* changing the source. The old and new clock sources must be running. +* +* Parameters: +* clkSource: For PSoC 3 and PSoC 5 devices, clkSource should be one of the +* following input sources: +* - CYCLK_SRC_SEL_SYNC_DIG +* - CYCLK_SRC_SEL_IMO +* - CYCLK_SRC_SEL_XTALM +* - CYCLK_SRC_SEL_ILO +* - CYCLK_SRC_SEL_PLL +* - CYCLK_SRC_SEL_XTALK +* - CYCLK_SRC_SEL_DSI_G +* - CYCLK_SRC_SEL_DSI_D/CYCLK_SRC_SEL_DSI_A +* See the Technical Reference Manual for details on clock sources. +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_SetSourceRegister(uint8 clkSource) +{ + uint16 currDiv = NOR_Clock_GetDividerRegister(); + uint8 oldSrc = NOR_Clock_GetSourceRegister(); + + if (((oldSrc != ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D)) && + (clkSource == ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D))) && (currDiv == 0u)) + { + /* Switching to Master and divider is 1, set SSS, which will output master, */ + /* then set the source so we are consistent. */ + NOR_Clock_MOD_SRC |= CYCLK_SSS; + NOR_Clock_MOD_SRC = + (NOR_Clock_MOD_SRC & (uint8)(~NOR_Clock_SRC_SEL_MSK)) | clkSource; + } + else if (((oldSrc == ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D)) && + (clkSource != ((uint8)CYCLK_SRC_SEL_CLK_SYNC_D))) && (currDiv == 0u)) + { + /* Switching from Master to not and divider is 1, set source, so we don't */ + /* lock when we clear SSS. */ + NOR_Clock_MOD_SRC = + (NOR_Clock_MOD_SRC & (uint8)(~NOR_Clock_SRC_SEL_MSK)) | clkSource; + NOR_Clock_MOD_SRC &= (uint8)(~CYCLK_SSS); + } + else + { + NOR_Clock_MOD_SRC = + (NOR_Clock_MOD_SRC & (uint8)(~NOR_Clock_SRC_SEL_MSK)) | clkSource; + } +} + + +/******************************************************************************* +* Function Name: NOR_Clock_GetSourceRegister +******************************************************************************** +* +* Summary: +* Gets the input source of the clock. +* +* Parameters: +* None +* +* Returns: +* The input source of the clock. See SetSourceRegister for details. +* +*******************************************************************************/ +uint8 NOR_Clock_GetSourceRegister(void) +{ + return NOR_Clock_MOD_SRC & NOR_Clock_SRC_SEL_MSK; +} + + +#if defined(NOR_Clock__CFG3) + + +/******************************************************************************* +* Function Name: NOR_Clock_SetPhaseRegister +******************************************************************************** +* +* Summary: +* Sets the phase delay of the analog clock. This function is only available +* for analog clocks. The clock must be disabled before changing the phase +* delay to avoid glitches. +* +* Parameters: +* clkPhase: Amount to delay the phase of the clock, in 1.0ns increments. +* clkPhase must be from 1 to 11 inclusive. Other values, including 0, +* disable the clock. clkPhase = 1 produces a 0ns delay and clkPhase = 11 +* produces a 10ns delay. +* +* Returns: +* None +* +*******************************************************************************/ +void NOR_Clock_SetPhaseRegister(uint8 clkPhase) +{ + NOR_Clock_PHASE = clkPhase & NOR_Clock_PHASE_MASK; +} + + +/******************************************************************************* +* Function Name: NOR_Clock_GetPhase +******************************************************************************** +* +* Summary: +* Gets the phase delay of the analog clock. This function is only available +* for analog clocks. +* +* Parameters: +* None +* +* Returns: +* Phase of the analog clock. See SetPhaseRegister for details. +* +*******************************************************************************/ +uint8 NOR_Clock_GetPhaseRegister(void) +{ + return NOR_Clock_PHASE & NOR_Clock_PHASE_MASK; +} + +#endif /* NOR_Clock__CFG3 */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.h new file mode 100644 index 0000000..837e277 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_Clock.h @@ -0,0 +1,124 @@ +/******************************************************************************* +* File Name: NOR_Clock.h +* Version 2.20 +* +* Description: +* Provides the function and constant definitions for the clock component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2012, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_CLOCK_NOR_Clock_H) +#define CY_CLOCK_NOR_Clock_H + +#include +#include + + +/*************************************** +* Conditional Compilation Parameters +***************************************/ + +/* Check to see if required defines such as CY_PSOC5LP are available */ +/* They are defined starting with cy_boot v3.0 */ +#if !defined (CY_PSOC5LP) + #error Component cy_clock_v2_20 requires cy_boot v3.0 or later +#endif /* (CY_PSOC5LP) */ + + +/*************************************** +* Function Prototypes +***************************************/ + +void NOR_Clock_Start(void) ; +void NOR_Clock_Stop(void) ; + +#if(CY_PSOC3 || CY_PSOC5LP) +void NOR_Clock_StopBlock(void) ; +#endif /* (CY_PSOC3 || CY_PSOC5LP) */ + +void NOR_Clock_StandbyPower(uint8 state) ; +void NOR_Clock_SetDividerRegister(uint16 clkDivider, uint8 restart) + ; +uint16 NOR_Clock_GetDividerRegister(void) ; +void NOR_Clock_SetModeRegister(uint8 modeBitMask) ; +void NOR_Clock_ClearModeRegister(uint8 modeBitMask) ; +uint8 NOR_Clock_GetModeRegister(void) ; +void NOR_Clock_SetSourceRegister(uint8 clkSource) ; +uint8 NOR_Clock_GetSourceRegister(void) ; +#if defined(NOR_Clock__CFG3) +void NOR_Clock_SetPhaseRegister(uint8 clkPhase) ; +uint8 NOR_Clock_GetPhaseRegister(void) ; +#endif /* defined(NOR_Clock__CFG3) */ + +#define NOR_Clock_Enable() NOR_Clock_Start() +#define NOR_Clock_Disable() NOR_Clock_Stop() +#define NOR_Clock_SetDivider(clkDivider) NOR_Clock_SetDividerRegister(clkDivider, 1u) +#define NOR_Clock_SetDividerValue(clkDivider) NOR_Clock_SetDividerRegister((clkDivider) - 1u, 1u) +#define NOR_Clock_SetMode(clkMode) NOR_Clock_SetModeRegister(clkMode) +#define NOR_Clock_SetSource(clkSource) NOR_Clock_SetSourceRegister(clkSource) +#if defined(NOR_Clock__CFG3) +#define NOR_Clock_SetPhase(clkPhase) NOR_Clock_SetPhaseRegister(clkPhase) +#define NOR_Clock_SetPhaseValue(clkPhase) NOR_Clock_SetPhaseRegister((clkPhase) + 1u) +#endif /* defined(NOR_Clock__CFG3) */ + + +/*************************************** +* Registers +***************************************/ + +/* Register to enable or disable the clock */ +#define NOR_Clock_CLKEN (* (reg8 *) NOR_Clock__PM_ACT_CFG) +#define NOR_Clock_CLKEN_PTR ((reg8 *) NOR_Clock__PM_ACT_CFG) + +/* Register to enable or disable the clock */ +#define NOR_Clock_CLKSTBY (* (reg8 *) NOR_Clock__PM_STBY_CFG) +#define NOR_Clock_CLKSTBY_PTR ((reg8 *) NOR_Clock__PM_STBY_CFG) + +/* Clock LSB divider configuration register. */ +#define NOR_Clock_DIV_LSB (* (reg8 *) NOR_Clock__CFG0) +#define NOR_Clock_DIV_LSB_PTR ((reg8 *) NOR_Clock__CFG0) +#define NOR_Clock_DIV_PTR ((reg16 *) NOR_Clock__CFG0) + +/* Clock MSB divider configuration register. */ +#define NOR_Clock_DIV_MSB (* (reg8 *) NOR_Clock__CFG1) +#define NOR_Clock_DIV_MSB_PTR ((reg8 *) NOR_Clock__CFG1) + +/* Mode and source configuration register */ +#define NOR_Clock_MOD_SRC (* (reg8 *) NOR_Clock__CFG2) +#define NOR_Clock_MOD_SRC_PTR ((reg8 *) NOR_Clock__CFG2) + +#if defined(NOR_Clock__CFG3) +/* Analog clock phase configuration register */ +#define NOR_Clock_PHASE (* (reg8 *) NOR_Clock__CFG3) +#define NOR_Clock_PHASE_PTR ((reg8 *) NOR_Clock__CFG3) +#endif /* defined(NOR_Clock__CFG3) */ + + +/************************************** +* Register Constants +**************************************/ + +/* Power manager register masks */ +#define NOR_Clock_CLKEN_MASK NOR_Clock__PM_ACT_MSK +#define NOR_Clock_CLKSTBY_MASK NOR_Clock__PM_STBY_MSK + +/* CFG2 field masks */ +#define NOR_Clock_SRC_SEL_MSK NOR_Clock__CFG2_SRC_SEL_MASK +#define NOR_Clock_MODE_MASK (~(NOR_Clock_SRC_SEL_MSK)) + +#if defined(NOR_Clock__CFG3) +/* CFG3 phase mask */ +#define NOR_Clock_PHASE_MASK NOR_Clock__CFG3_PHASE_DLY_MASK +#endif /* defined(NOR_Clock__CFG3) */ + +#endif /* CY_CLOCK_NOR_Clock_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.c new file mode 100644 index 0000000..fa4f937 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.c @@ -0,0 +1,226 @@ +/******************************************************************************* +* File Name: NOR_SCK.c +* Version 2.20 +* +* Description: +* This file contains API to enable firmware control of a Pins component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "cytypes.h" +#include "NOR_SCK.h" + +/* APIs are not generated for P15[7:6] on PSoC 5 */ +#if !(CY_PSOC5A &&\ + NOR_SCK__PORT == 15 && ((NOR_SCK__MASK & 0xC0) != 0)) + + +/******************************************************************************* +* Function Name: NOR_SCK_Write +****************************************************************************//** +* +* \brief Writes the value to the physical port (data output register), masking +* and shifting the bits appropriately. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This function avoids changing +* other bits in the port by using the appropriate method (read-modify-write or +* bit banding). +* +* Note This function should not be used on a hardware digital output pin +* as it is driven by the hardware signal attached to it. +* +* \param value +* Value to write to the component instance. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic; the Interrupt +* Service Routines (ISR) can cause corruption of this function. An ISR that +* interrupts this function and performs writes to the Pins component data +* register can cause corrupted port data. To avoid this issue, you should +* either use the Per-Pin APIs (primary method) or disable interrupts around +* this function. +* +* \funcusage +* \snippet NOR_SCK_SUT.c usage_NOR_SCK_Write +*******************************************************************************/ +void NOR_SCK_Write(uint8 value) +{ + uint8 staticBits = (NOR_SCK_DR & (uint8)(~NOR_SCK_MASK)); + NOR_SCK_DR = staticBits | ((uint8)(value << NOR_SCK_SHIFT) & NOR_SCK_MASK); +} + + +/******************************************************************************* +* Function Name: NOR_SCK_SetDriveMode +****************************************************************************//** +* +* \brief Sets the drive mode for each of the Pins component's pins. +* +* Note This affects all pins in the Pins component instance. Use the +* Per-Pin APIs if you wish to control individual pin's drive modes. +* +* \param mode +* Mode for the selected signals. Valid options are documented in +* \ref driveMode. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic, the ISR can +* cause corruption of this function. An ISR that interrupts this function +* and performs writes to the Pins component Drive Mode registers can cause +* corrupted port data. To avoid this issue, you should either use the Per-Pin +* APIs (primary method) or disable interrupts around this function. +* +* \funcusage +* \snippet NOR_SCK_SUT.c usage_NOR_SCK_SetDriveMode +*******************************************************************************/ +void NOR_SCK_SetDriveMode(uint8 mode) +{ + CyPins_SetPinDriveMode(NOR_SCK_0, mode); +} + + +/******************************************************************************* +* Function Name: NOR_SCK_Read +****************************************************************************//** +* +* \brief Reads the associated physical port (pin status register) and masks +* the required bits according to the width and bit position of the component +* instance. +* +* The pin's status register returns the current logic level present on the +* physical pin. +* +* \return +* The current value for the pins in the component as a right justified number. +* +* \funcusage +* \snippet NOR_SCK_SUT.c usage_NOR_SCK_Read +*******************************************************************************/ +uint8 NOR_SCK_Read(void) +{ + return (NOR_SCK_PS & NOR_SCK_MASK) >> NOR_SCK_SHIFT; +} + + +/******************************************************************************* +* Function Name: NOR_SCK_ReadDataReg +****************************************************************************//** +* +* \brief Reads the associated physical port's data output register and masks +* the correct bits according to the width and bit position of the component +* instance. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This is not the same as the +* preferred NOR_SCK_Read() API because the +* NOR_SCK_ReadDataReg() reads the data register instead of the status +* register. For output pins this is a useful function to determine the value +* just written to the pin. +* +* \return +* The current value of the data register masked and shifted into a right +* justified number for the component instance. +* +* \funcusage +* \snippet NOR_SCK_SUT.c usage_NOR_SCK_ReadDataReg +*******************************************************************************/ +uint8 NOR_SCK_ReadDataReg(void) +{ + return (NOR_SCK_DR & NOR_SCK_MASK) >> NOR_SCK_SHIFT; +} + + +/* If interrupt is connected for this Pins component */ +#if defined(NOR_SCK_INTSTAT) + + /******************************************************************************* + * Function Name: NOR_SCK_SetInterruptMode + ****************************************************************************//** + * + * \brief Configures the interrupt mode for each of the Pins component's + * pins. Alternatively you may set the interrupt mode for all the pins + * specified in the Pins component. + * + * Note The interrupt is port-wide and therefore any enabled pin + * interrupt may trigger it. + * + * \param position + * The pin position as listed in the Pins component. You may OR these to be + * able to configure the interrupt mode of multiple pins within a Pins + * component. Or you may use NOR_SCK_INTR_ALL to configure the + * interrupt mode of all the pins in the Pins component. + * - NOR_SCK_0_INTR (First pin in the list) + * - NOR_SCK_1_INTR (Second pin in the list) + * - ... + * - NOR_SCK_INTR_ALL (All pins in Pins component) + * + * \param mode + * Interrupt mode for the selected pins. Valid options are documented in + * \ref intrMode. + * + * \return + * None + * + * \sideeffect + * It is recommended that the interrupt be disabled before calling this + * function to avoid unintended interrupt requests. Note that the interrupt + * type is port wide, and therefore will trigger for any enabled pin on the + * port. + * + * \funcusage + * \snippet NOR_SCK_SUT.c usage_NOR_SCK_SetInterruptMode + *******************************************************************************/ + void NOR_SCK_SetInterruptMode(uint16 position, uint16 mode) + { + if((position & NOR_SCK_0_INTR) != 0u) + { + NOR_SCK_0_INTTYPE_REG = (uint8)mode; + } + } + + + /******************************************************************************* + * Function Name: NOR_SCK_ClearInterrupt + ****************************************************************************//** + * + * \brief Clears any active interrupts attached with the component and returns + * the value of the interrupt status register allowing determination of which + * pins generated an interrupt event. + * + * \return + * The right-shifted current value of the interrupt status register. Each pin + * has one bit set if it generated an interrupt event. For example, bit 0 is + * for pin 0 and bit 1 is for pin 1 of the Pins component. + * + * \sideeffect + * Clears all bits of the physical port's interrupt status register, not just + * those associated with the Pins component. + * + * \funcusage + * \snippet NOR_SCK_SUT.c usage_NOR_SCK_ClearInterrupt + *******************************************************************************/ + uint8 NOR_SCK_ClearInterrupt(void) + { + return (NOR_SCK_INTSTAT & NOR_SCK_MASK) >> NOR_SCK_SHIFT; + } + +#endif /* If Interrupts Are Enabled for this Pins component */ + +#endif /* CY_PSOC5A... */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.h new file mode 100644 index 0000000..40db117 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK.h @@ -0,0 +1,165 @@ +/******************************************************************************* +* File Name: NOR_SCK.h +* Version 2.20 +* +* Description: +* This file contains Pin function prototypes and register defines +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_NOR_SCK_H) /* Pins NOR_SCK_H */ +#define CY_PINS_NOR_SCK_H + +#include "cytypes.h" +#include "cyfitter.h" +#include "cypins.h" +#include "NOR_SCK_aliases.h" + +/* APIs are not generated for P15[7:6] */ +#if !(CY_PSOC5A &&\ + NOR_SCK__PORT == 15 && ((NOR_SCK__MASK & 0xC0) != 0)) + + +/*************************************** +* Function Prototypes +***************************************/ + +/** +* \addtogroup group_general +* @{ +*/ +void NOR_SCK_Write(uint8 value); +void NOR_SCK_SetDriveMode(uint8 mode); +uint8 NOR_SCK_ReadDataReg(void); +uint8 NOR_SCK_Read(void); +void NOR_SCK_SetInterruptMode(uint16 position, uint16 mode); +uint8 NOR_SCK_ClearInterrupt(void); +/** @} general */ + +/*************************************** +* API Constants +***************************************/ +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup driveMode Drive mode constants + * \brief Constants to be passed as "mode" parameter in the NOR_SCK_SetDriveMode() function. + * @{ + */ + #define NOR_SCK_DM_ALG_HIZ PIN_DM_ALG_HIZ + #define NOR_SCK_DM_DIG_HIZ PIN_DM_DIG_HIZ + #define NOR_SCK_DM_RES_UP PIN_DM_RES_UP + #define NOR_SCK_DM_RES_DWN PIN_DM_RES_DWN + #define NOR_SCK_DM_OD_LO PIN_DM_OD_LO + #define NOR_SCK_DM_OD_HI PIN_DM_OD_HI + #define NOR_SCK_DM_STRONG PIN_DM_STRONG + #define NOR_SCK_DM_RES_UPDWN PIN_DM_RES_UPDWN + /** @} driveMode */ +/** @} group_constants */ + +/* Digital Port Constants */ +#define NOR_SCK_MASK NOR_SCK__MASK +#define NOR_SCK_SHIFT NOR_SCK__SHIFT +#define NOR_SCK_WIDTH 1u + +/* Interrupt constants */ +#if defined(NOR_SCK__INTSTAT) +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup intrMode Interrupt constants + * \brief Constants to be passed as "mode" parameter in NOR_SCK_SetInterruptMode() function. + * @{ + */ + #define NOR_SCK_INTR_NONE (uint16)(0x0000u) + #define NOR_SCK_INTR_RISING (uint16)(0x0001u) + #define NOR_SCK_INTR_FALLING (uint16)(0x0002u) + #define NOR_SCK_INTR_BOTH (uint16)(0x0003u) + /** @} intrMode */ +/** @} group_constants */ + + #define NOR_SCK_INTR_MASK (0x01u) +#endif /* (NOR_SCK__INTSTAT) */ + + +/*************************************** +* Registers +***************************************/ + +/* Main Port Registers */ +/* Pin State */ +#define NOR_SCK_PS (* (reg8 *) NOR_SCK__PS) +/* Data Register */ +#define NOR_SCK_DR (* (reg8 *) NOR_SCK__DR) +/* Port Number */ +#define NOR_SCK_PRT_NUM (* (reg8 *) NOR_SCK__PRT) +/* Connect to Analog Globals */ +#define NOR_SCK_AG (* (reg8 *) NOR_SCK__AG) +/* Analog MUX bux enable */ +#define NOR_SCK_AMUX (* (reg8 *) NOR_SCK__AMUX) +/* Bidirectional Enable */ +#define NOR_SCK_BIE (* (reg8 *) NOR_SCK__BIE) +/* Bit-mask for Aliased Register Access */ +#define NOR_SCK_BIT_MASK (* (reg8 *) NOR_SCK__BIT_MASK) +/* Bypass Enable */ +#define NOR_SCK_BYP (* (reg8 *) NOR_SCK__BYP) +/* Port wide control signals */ +#define NOR_SCK_CTL (* (reg8 *) NOR_SCK__CTL) +/* Drive Modes */ +#define NOR_SCK_DM0 (* (reg8 *) NOR_SCK__DM0) +#define NOR_SCK_DM1 (* (reg8 *) NOR_SCK__DM1) +#define NOR_SCK_DM2 (* (reg8 *) NOR_SCK__DM2) +/* Input Buffer Disable Override */ +#define NOR_SCK_INP_DIS (* (reg8 *) NOR_SCK__INP_DIS) +/* LCD Common or Segment Drive */ +#define NOR_SCK_LCD_COM_SEG (* (reg8 *) NOR_SCK__LCD_COM_SEG) +/* Enable Segment LCD */ +#define NOR_SCK_LCD_EN (* (reg8 *) NOR_SCK__LCD_EN) +/* Slew Rate Control */ +#define NOR_SCK_SLW (* (reg8 *) NOR_SCK__SLW) + +/* DSI Port Registers */ +/* Global DSI Select Register */ +#define NOR_SCK_PRTDSI__CAPS_SEL (* (reg8 *) NOR_SCK__PRTDSI__CAPS_SEL) +/* Double Sync Enable */ +#define NOR_SCK_PRTDSI__DBL_SYNC_IN (* (reg8 *) NOR_SCK__PRTDSI__DBL_SYNC_IN) +/* Output Enable Select Drive Strength */ +#define NOR_SCK_PRTDSI__OE_SEL0 (* (reg8 *) NOR_SCK__PRTDSI__OE_SEL0) +#define NOR_SCK_PRTDSI__OE_SEL1 (* (reg8 *) NOR_SCK__PRTDSI__OE_SEL1) +/* Port Pin Output Select Registers */ +#define NOR_SCK_PRTDSI__OUT_SEL0 (* (reg8 *) NOR_SCK__PRTDSI__OUT_SEL0) +#define NOR_SCK_PRTDSI__OUT_SEL1 (* (reg8 *) NOR_SCK__PRTDSI__OUT_SEL1) +/* Sync Output Enable Registers */ +#define NOR_SCK_PRTDSI__SYNC_OUT (* (reg8 *) NOR_SCK__PRTDSI__SYNC_OUT) + +/* SIO registers */ +#if defined(NOR_SCK__SIO_CFG) + #define NOR_SCK_SIO_HYST_EN (* (reg8 *) NOR_SCK__SIO_HYST_EN) + #define NOR_SCK_SIO_REG_HIFREQ (* (reg8 *) NOR_SCK__SIO_REG_HIFREQ) + #define NOR_SCK_SIO_CFG (* (reg8 *) NOR_SCK__SIO_CFG) + #define NOR_SCK_SIO_DIFF (* (reg8 *) NOR_SCK__SIO_DIFF) +#endif /* (NOR_SCK__SIO_CFG) */ + +/* Interrupt Registers */ +#if defined(NOR_SCK__INTSTAT) + #define NOR_SCK_INTSTAT (* (reg8 *) NOR_SCK__INTSTAT) + #define NOR_SCK_SNAP (* (reg8 *) NOR_SCK__SNAP) + + #define NOR_SCK_0_INTTYPE_REG (* (reg8 *) NOR_SCK__0__INTTYPE) +#endif /* (NOR_SCK__INTSTAT) */ + +#endif /* CY_PSOC5A... */ + +#endif /* CY_PINS_NOR_SCK_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK_aliases.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK_aliases.h new file mode 100644 index 0000000..3801382 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SCK_aliases.h @@ -0,0 +1,36 @@ +/******************************************************************************* +* File Name: NOR_SCK.h +* Version 2.20 +* +* Description: +* This file contains the Alias definitions for Per-Pin APIs in cypins.h. +* Information on using these APIs can be found in the System Reference Guide. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_NOR_SCK_ALIASES_H) /* Pins NOR_SCK_ALIASES_H */ +#define CY_PINS_NOR_SCK_ALIASES_H + +#include "cytypes.h" +#include "cyfitter.h" + + +/*************************************** +* Constants +***************************************/ +#define NOR_SCK_0 (NOR_SCK__0__PC) +#define NOR_SCK_0_INTR ((uint16)((uint16)0x0001u << NOR_SCK__0__SHIFT)) + +#define NOR_SCK_INTR_ALL ((uint16)(NOR_SCK_0_INTR)) + +#endif /* End Pins NOR_SCK_ALIASES_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.c new file mode 100644 index 0000000..bc9aaff --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.c @@ -0,0 +1,226 @@ +/******************************************************************************* +* File Name: NOR_SI.c +* Version 2.20 +* +* Description: +* This file contains API to enable firmware control of a Pins component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "cytypes.h" +#include "NOR_SI.h" + +/* APIs are not generated for P15[7:6] on PSoC 5 */ +#if !(CY_PSOC5A &&\ + NOR_SI__PORT == 15 && ((NOR_SI__MASK & 0xC0) != 0)) + + +/******************************************************************************* +* Function Name: NOR_SI_Write +****************************************************************************//** +* +* \brief Writes the value to the physical port (data output register), masking +* and shifting the bits appropriately. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This function avoids changing +* other bits in the port by using the appropriate method (read-modify-write or +* bit banding). +* +* Note This function should not be used on a hardware digital output pin +* as it is driven by the hardware signal attached to it. +* +* \param value +* Value to write to the component instance. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic; the Interrupt +* Service Routines (ISR) can cause corruption of this function. An ISR that +* interrupts this function and performs writes to the Pins component data +* register can cause corrupted port data. To avoid this issue, you should +* either use the Per-Pin APIs (primary method) or disable interrupts around +* this function. +* +* \funcusage +* \snippet NOR_SI_SUT.c usage_NOR_SI_Write +*******************************************************************************/ +void NOR_SI_Write(uint8 value) +{ + uint8 staticBits = (NOR_SI_DR & (uint8)(~NOR_SI_MASK)); + NOR_SI_DR = staticBits | ((uint8)(value << NOR_SI_SHIFT) & NOR_SI_MASK); +} + + +/******************************************************************************* +* Function Name: NOR_SI_SetDriveMode +****************************************************************************//** +* +* \brief Sets the drive mode for each of the Pins component's pins. +* +* Note This affects all pins in the Pins component instance. Use the +* Per-Pin APIs if you wish to control individual pin's drive modes. +* +* \param mode +* Mode for the selected signals. Valid options are documented in +* \ref driveMode. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic, the ISR can +* cause corruption of this function. An ISR that interrupts this function +* and performs writes to the Pins component Drive Mode registers can cause +* corrupted port data. To avoid this issue, you should either use the Per-Pin +* APIs (primary method) or disable interrupts around this function. +* +* \funcusage +* \snippet NOR_SI_SUT.c usage_NOR_SI_SetDriveMode +*******************************************************************************/ +void NOR_SI_SetDriveMode(uint8 mode) +{ + CyPins_SetPinDriveMode(NOR_SI_0, mode); +} + + +/******************************************************************************* +* Function Name: NOR_SI_Read +****************************************************************************//** +* +* \brief Reads the associated physical port (pin status register) and masks +* the required bits according to the width and bit position of the component +* instance. +* +* The pin's status register returns the current logic level present on the +* physical pin. +* +* \return +* The current value for the pins in the component as a right justified number. +* +* \funcusage +* \snippet NOR_SI_SUT.c usage_NOR_SI_Read +*******************************************************************************/ +uint8 NOR_SI_Read(void) +{ + return (NOR_SI_PS & NOR_SI_MASK) >> NOR_SI_SHIFT; +} + + +/******************************************************************************* +* Function Name: NOR_SI_ReadDataReg +****************************************************************************//** +* +* \brief Reads the associated physical port's data output register and masks +* the correct bits according to the width and bit position of the component +* instance. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This is not the same as the +* preferred NOR_SI_Read() API because the +* NOR_SI_ReadDataReg() reads the data register instead of the status +* register. For output pins this is a useful function to determine the value +* just written to the pin. +* +* \return +* The current value of the data register masked and shifted into a right +* justified number for the component instance. +* +* \funcusage +* \snippet NOR_SI_SUT.c usage_NOR_SI_ReadDataReg +*******************************************************************************/ +uint8 NOR_SI_ReadDataReg(void) +{ + return (NOR_SI_DR & NOR_SI_MASK) >> NOR_SI_SHIFT; +} + + +/* If interrupt is connected for this Pins component */ +#if defined(NOR_SI_INTSTAT) + + /******************************************************************************* + * Function Name: NOR_SI_SetInterruptMode + ****************************************************************************//** + * + * \brief Configures the interrupt mode for each of the Pins component's + * pins. Alternatively you may set the interrupt mode for all the pins + * specified in the Pins component. + * + * Note The interrupt is port-wide and therefore any enabled pin + * interrupt may trigger it. + * + * \param position + * The pin position as listed in the Pins component. You may OR these to be + * able to configure the interrupt mode of multiple pins within a Pins + * component. Or you may use NOR_SI_INTR_ALL to configure the + * interrupt mode of all the pins in the Pins component. + * - NOR_SI_0_INTR (First pin in the list) + * - NOR_SI_1_INTR (Second pin in the list) + * - ... + * - NOR_SI_INTR_ALL (All pins in Pins component) + * + * \param mode + * Interrupt mode for the selected pins. Valid options are documented in + * \ref intrMode. + * + * \return + * None + * + * \sideeffect + * It is recommended that the interrupt be disabled before calling this + * function to avoid unintended interrupt requests. Note that the interrupt + * type is port wide, and therefore will trigger for any enabled pin on the + * port. + * + * \funcusage + * \snippet NOR_SI_SUT.c usage_NOR_SI_SetInterruptMode + *******************************************************************************/ + void NOR_SI_SetInterruptMode(uint16 position, uint16 mode) + { + if((position & NOR_SI_0_INTR) != 0u) + { + NOR_SI_0_INTTYPE_REG = (uint8)mode; + } + } + + + /******************************************************************************* + * Function Name: NOR_SI_ClearInterrupt + ****************************************************************************//** + * + * \brief Clears any active interrupts attached with the component and returns + * the value of the interrupt status register allowing determination of which + * pins generated an interrupt event. + * + * \return + * The right-shifted current value of the interrupt status register. Each pin + * has one bit set if it generated an interrupt event. For example, bit 0 is + * for pin 0 and bit 1 is for pin 1 of the Pins component. + * + * \sideeffect + * Clears all bits of the physical port's interrupt status register, not just + * those associated with the Pins component. + * + * \funcusage + * \snippet NOR_SI_SUT.c usage_NOR_SI_ClearInterrupt + *******************************************************************************/ + uint8 NOR_SI_ClearInterrupt(void) + { + return (NOR_SI_INTSTAT & NOR_SI_MASK) >> NOR_SI_SHIFT; + } + +#endif /* If Interrupts Are Enabled for this Pins component */ + +#endif /* CY_PSOC5A... */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.h new file mode 100644 index 0000000..be45b97 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI.h @@ -0,0 +1,165 @@ +/******************************************************************************* +* File Name: NOR_SI.h +* Version 2.20 +* +* Description: +* This file contains Pin function prototypes and register defines +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_NOR_SI_H) /* Pins NOR_SI_H */ +#define CY_PINS_NOR_SI_H + +#include "cytypes.h" +#include "cyfitter.h" +#include "cypins.h" +#include "NOR_SI_aliases.h" + +/* APIs are not generated for P15[7:6] */ +#if !(CY_PSOC5A &&\ + NOR_SI__PORT == 15 && ((NOR_SI__MASK & 0xC0) != 0)) + + +/*************************************** +* Function Prototypes +***************************************/ + +/** +* \addtogroup group_general +* @{ +*/ +void NOR_SI_Write(uint8 value); +void NOR_SI_SetDriveMode(uint8 mode); +uint8 NOR_SI_ReadDataReg(void); +uint8 NOR_SI_Read(void); +void NOR_SI_SetInterruptMode(uint16 position, uint16 mode); +uint8 NOR_SI_ClearInterrupt(void); +/** @} general */ + +/*************************************** +* API Constants +***************************************/ +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup driveMode Drive mode constants + * \brief Constants to be passed as "mode" parameter in the NOR_SI_SetDriveMode() function. + * @{ + */ + #define NOR_SI_DM_ALG_HIZ PIN_DM_ALG_HIZ + #define NOR_SI_DM_DIG_HIZ PIN_DM_DIG_HIZ + #define NOR_SI_DM_RES_UP PIN_DM_RES_UP + #define NOR_SI_DM_RES_DWN PIN_DM_RES_DWN + #define NOR_SI_DM_OD_LO PIN_DM_OD_LO + #define NOR_SI_DM_OD_HI PIN_DM_OD_HI + #define NOR_SI_DM_STRONG PIN_DM_STRONG + #define NOR_SI_DM_RES_UPDWN PIN_DM_RES_UPDWN + /** @} driveMode */ +/** @} group_constants */ + +/* Digital Port Constants */ +#define NOR_SI_MASK NOR_SI__MASK +#define NOR_SI_SHIFT NOR_SI__SHIFT +#define NOR_SI_WIDTH 1u + +/* Interrupt constants */ +#if defined(NOR_SI__INTSTAT) +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup intrMode Interrupt constants + * \brief Constants to be passed as "mode" parameter in NOR_SI_SetInterruptMode() function. + * @{ + */ + #define NOR_SI_INTR_NONE (uint16)(0x0000u) + #define NOR_SI_INTR_RISING (uint16)(0x0001u) + #define NOR_SI_INTR_FALLING (uint16)(0x0002u) + #define NOR_SI_INTR_BOTH (uint16)(0x0003u) + /** @} intrMode */ +/** @} group_constants */ + + #define NOR_SI_INTR_MASK (0x01u) +#endif /* (NOR_SI__INTSTAT) */ + + +/*************************************** +* Registers +***************************************/ + +/* Main Port Registers */ +/* Pin State */ +#define NOR_SI_PS (* (reg8 *) NOR_SI__PS) +/* Data Register */ +#define NOR_SI_DR (* (reg8 *) NOR_SI__DR) +/* Port Number */ +#define NOR_SI_PRT_NUM (* (reg8 *) NOR_SI__PRT) +/* Connect to Analog Globals */ +#define NOR_SI_AG (* (reg8 *) NOR_SI__AG) +/* Analog MUX bux enable */ +#define NOR_SI_AMUX (* (reg8 *) NOR_SI__AMUX) +/* Bidirectional Enable */ +#define NOR_SI_BIE (* (reg8 *) NOR_SI__BIE) +/* Bit-mask for Aliased Register Access */ +#define NOR_SI_BIT_MASK (* (reg8 *) NOR_SI__BIT_MASK) +/* Bypass Enable */ +#define NOR_SI_BYP (* (reg8 *) NOR_SI__BYP) +/* Port wide control signals */ +#define NOR_SI_CTL (* (reg8 *) NOR_SI__CTL) +/* Drive Modes */ +#define NOR_SI_DM0 (* (reg8 *) NOR_SI__DM0) +#define NOR_SI_DM1 (* (reg8 *) NOR_SI__DM1) +#define NOR_SI_DM2 (* (reg8 *) NOR_SI__DM2) +/* Input Buffer Disable Override */ +#define NOR_SI_INP_DIS (* (reg8 *) NOR_SI__INP_DIS) +/* LCD Common or Segment Drive */ +#define NOR_SI_LCD_COM_SEG (* (reg8 *) NOR_SI__LCD_COM_SEG) +/* Enable Segment LCD */ +#define NOR_SI_LCD_EN (* (reg8 *) NOR_SI__LCD_EN) +/* Slew Rate Control */ +#define NOR_SI_SLW (* (reg8 *) NOR_SI__SLW) + +/* DSI Port Registers */ +/* Global DSI Select Register */ +#define NOR_SI_PRTDSI__CAPS_SEL (* (reg8 *) NOR_SI__PRTDSI__CAPS_SEL) +/* Double Sync Enable */ +#define NOR_SI_PRTDSI__DBL_SYNC_IN (* (reg8 *) NOR_SI__PRTDSI__DBL_SYNC_IN) +/* Output Enable Select Drive Strength */ +#define NOR_SI_PRTDSI__OE_SEL0 (* (reg8 *) NOR_SI__PRTDSI__OE_SEL0) +#define NOR_SI_PRTDSI__OE_SEL1 (* (reg8 *) NOR_SI__PRTDSI__OE_SEL1) +/* Port Pin Output Select Registers */ +#define NOR_SI_PRTDSI__OUT_SEL0 (* (reg8 *) NOR_SI__PRTDSI__OUT_SEL0) +#define NOR_SI_PRTDSI__OUT_SEL1 (* (reg8 *) NOR_SI__PRTDSI__OUT_SEL1) +/* Sync Output Enable Registers */ +#define NOR_SI_PRTDSI__SYNC_OUT (* (reg8 *) NOR_SI__PRTDSI__SYNC_OUT) + +/* SIO registers */ +#if defined(NOR_SI__SIO_CFG) + #define NOR_SI_SIO_HYST_EN (* (reg8 *) NOR_SI__SIO_HYST_EN) + #define NOR_SI_SIO_REG_HIFREQ (* (reg8 *) NOR_SI__SIO_REG_HIFREQ) + #define NOR_SI_SIO_CFG (* (reg8 *) NOR_SI__SIO_CFG) + #define NOR_SI_SIO_DIFF (* (reg8 *) NOR_SI__SIO_DIFF) +#endif /* (NOR_SI__SIO_CFG) */ + +/* Interrupt Registers */ +#if defined(NOR_SI__INTSTAT) + #define NOR_SI_INTSTAT (* (reg8 *) NOR_SI__INTSTAT) + #define NOR_SI_SNAP (* (reg8 *) NOR_SI__SNAP) + + #define NOR_SI_0_INTTYPE_REG (* (reg8 *) NOR_SI__0__INTTYPE) +#endif /* (NOR_SI__INTSTAT) */ + +#endif /* CY_PSOC5A... */ + +#endif /* CY_PINS_NOR_SI_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI_aliases.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI_aliases.h new file mode 100644 index 0000000..03d953f --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SI_aliases.h @@ -0,0 +1,36 @@ +/******************************************************************************* +* File Name: NOR_SI.h +* Version 2.20 +* +* Description: +* This file contains the Alias definitions for Per-Pin APIs in cypins.h. +* Information on using these APIs can be found in the System Reference Guide. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_NOR_SI_ALIASES_H) /* Pins NOR_SI_ALIASES_H */ +#define CY_PINS_NOR_SI_ALIASES_H + +#include "cytypes.h" +#include "cyfitter.h" + + +/*************************************** +* Constants +***************************************/ +#define NOR_SI_0 (NOR_SI__0__PC) +#define NOR_SI_0_INTR ((uint16)((uint16)0x0001u << NOR_SI__0__SHIFT)) + +#define NOR_SI_INTR_ALL ((uint16)(NOR_SI_0_INTR)) + +#endif /* End Pins NOR_SI_ALIASES_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.c new file mode 100644 index 0000000..4a0a554 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.c @@ -0,0 +1,226 @@ +/******************************************************************************* +* File Name: NOR_SO.c +* Version 2.20 +* +* Description: +* This file contains API to enable firmware control of a Pins component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "cytypes.h" +#include "NOR_SO.h" + +/* APIs are not generated for P15[7:6] on PSoC 5 */ +#if !(CY_PSOC5A &&\ + NOR_SO__PORT == 15 && ((NOR_SO__MASK & 0xC0) != 0)) + + +/******************************************************************************* +* Function Name: NOR_SO_Write +****************************************************************************//** +* +* \brief Writes the value to the physical port (data output register), masking +* and shifting the bits appropriately. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This function avoids changing +* other bits in the port by using the appropriate method (read-modify-write or +* bit banding). +* +* Note This function should not be used on a hardware digital output pin +* as it is driven by the hardware signal attached to it. +* +* \param value +* Value to write to the component instance. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic; the Interrupt +* Service Routines (ISR) can cause corruption of this function. An ISR that +* interrupts this function and performs writes to the Pins component data +* register can cause corrupted port data. To avoid this issue, you should +* either use the Per-Pin APIs (primary method) or disable interrupts around +* this function. +* +* \funcusage +* \snippet NOR_SO_SUT.c usage_NOR_SO_Write +*******************************************************************************/ +void NOR_SO_Write(uint8 value) +{ + uint8 staticBits = (NOR_SO_DR & (uint8)(~NOR_SO_MASK)); + NOR_SO_DR = staticBits | ((uint8)(value << NOR_SO_SHIFT) & NOR_SO_MASK); +} + + +/******************************************************************************* +* Function Name: NOR_SO_SetDriveMode +****************************************************************************//** +* +* \brief Sets the drive mode for each of the Pins component's pins. +* +* Note This affects all pins in the Pins component instance. Use the +* Per-Pin APIs if you wish to control individual pin's drive modes. +* +* \param mode +* Mode for the selected signals. Valid options are documented in +* \ref driveMode. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic, the ISR can +* cause corruption of this function. An ISR that interrupts this function +* and performs writes to the Pins component Drive Mode registers can cause +* corrupted port data. To avoid this issue, you should either use the Per-Pin +* APIs (primary method) or disable interrupts around this function. +* +* \funcusage +* \snippet NOR_SO_SUT.c usage_NOR_SO_SetDriveMode +*******************************************************************************/ +void NOR_SO_SetDriveMode(uint8 mode) +{ + CyPins_SetPinDriveMode(NOR_SO_0, mode); +} + + +/******************************************************************************* +* Function Name: NOR_SO_Read +****************************************************************************//** +* +* \brief Reads the associated physical port (pin status register) and masks +* the required bits according to the width and bit position of the component +* instance. +* +* The pin's status register returns the current logic level present on the +* physical pin. +* +* \return +* The current value for the pins in the component as a right justified number. +* +* \funcusage +* \snippet NOR_SO_SUT.c usage_NOR_SO_Read +*******************************************************************************/ +uint8 NOR_SO_Read(void) +{ + return (NOR_SO_PS & NOR_SO_MASK) >> NOR_SO_SHIFT; +} + + +/******************************************************************************* +* Function Name: NOR_SO_ReadDataReg +****************************************************************************//** +* +* \brief Reads the associated physical port's data output register and masks +* the correct bits according to the width and bit position of the component +* instance. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This is not the same as the +* preferred NOR_SO_Read() API because the +* NOR_SO_ReadDataReg() reads the data register instead of the status +* register. For output pins this is a useful function to determine the value +* just written to the pin. +* +* \return +* The current value of the data register masked and shifted into a right +* justified number for the component instance. +* +* \funcusage +* \snippet NOR_SO_SUT.c usage_NOR_SO_ReadDataReg +*******************************************************************************/ +uint8 NOR_SO_ReadDataReg(void) +{ + return (NOR_SO_DR & NOR_SO_MASK) >> NOR_SO_SHIFT; +} + + +/* If interrupt is connected for this Pins component */ +#if defined(NOR_SO_INTSTAT) + + /******************************************************************************* + * Function Name: NOR_SO_SetInterruptMode + ****************************************************************************//** + * + * \brief Configures the interrupt mode for each of the Pins component's + * pins. Alternatively you may set the interrupt mode for all the pins + * specified in the Pins component. + * + * Note The interrupt is port-wide and therefore any enabled pin + * interrupt may trigger it. + * + * \param position + * The pin position as listed in the Pins component. You may OR these to be + * able to configure the interrupt mode of multiple pins within a Pins + * component. Or you may use NOR_SO_INTR_ALL to configure the + * interrupt mode of all the pins in the Pins component. + * - NOR_SO_0_INTR (First pin in the list) + * - NOR_SO_1_INTR (Second pin in the list) + * - ... + * - NOR_SO_INTR_ALL (All pins in Pins component) + * + * \param mode + * Interrupt mode for the selected pins. Valid options are documented in + * \ref intrMode. + * + * \return + * None + * + * \sideeffect + * It is recommended that the interrupt be disabled before calling this + * function to avoid unintended interrupt requests. Note that the interrupt + * type is port wide, and therefore will trigger for any enabled pin on the + * port. + * + * \funcusage + * \snippet NOR_SO_SUT.c usage_NOR_SO_SetInterruptMode + *******************************************************************************/ + void NOR_SO_SetInterruptMode(uint16 position, uint16 mode) + { + if((position & NOR_SO_0_INTR) != 0u) + { + NOR_SO_0_INTTYPE_REG = (uint8)mode; + } + } + + + /******************************************************************************* + * Function Name: NOR_SO_ClearInterrupt + ****************************************************************************//** + * + * \brief Clears any active interrupts attached with the component and returns + * the value of the interrupt status register allowing determination of which + * pins generated an interrupt event. + * + * \return + * The right-shifted current value of the interrupt status register. Each pin + * has one bit set if it generated an interrupt event. For example, bit 0 is + * for pin 0 and bit 1 is for pin 1 of the Pins component. + * + * \sideeffect + * Clears all bits of the physical port's interrupt status register, not just + * those associated with the Pins component. + * + * \funcusage + * \snippet NOR_SO_SUT.c usage_NOR_SO_ClearInterrupt + *******************************************************************************/ + uint8 NOR_SO_ClearInterrupt(void) + { + return (NOR_SO_INTSTAT & NOR_SO_MASK) >> NOR_SO_SHIFT; + } + +#endif /* If Interrupts Are Enabled for this Pins component */ + +#endif /* CY_PSOC5A... */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.h new file mode 100644 index 0000000..970ffaf --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO.h @@ -0,0 +1,165 @@ +/******************************************************************************* +* File Name: NOR_SO.h +* Version 2.20 +* +* Description: +* This file contains Pin function prototypes and register defines +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_NOR_SO_H) /* Pins NOR_SO_H */ +#define CY_PINS_NOR_SO_H + +#include "cytypes.h" +#include "cyfitter.h" +#include "cypins.h" +#include "NOR_SO_aliases.h" + +/* APIs are not generated for P15[7:6] */ +#if !(CY_PSOC5A &&\ + NOR_SO__PORT == 15 && ((NOR_SO__MASK & 0xC0) != 0)) + + +/*************************************** +* Function Prototypes +***************************************/ + +/** +* \addtogroup group_general +* @{ +*/ +void NOR_SO_Write(uint8 value); +void NOR_SO_SetDriveMode(uint8 mode); +uint8 NOR_SO_ReadDataReg(void); +uint8 NOR_SO_Read(void); +void NOR_SO_SetInterruptMode(uint16 position, uint16 mode); +uint8 NOR_SO_ClearInterrupt(void); +/** @} general */ + +/*************************************** +* API Constants +***************************************/ +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup driveMode Drive mode constants + * \brief Constants to be passed as "mode" parameter in the NOR_SO_SetDriveMode() function. + * @{ + */ + #define NOR_SO_DM_ALG_HIZ PIN_DM_ALG_HIZ + #define NOR_SO_DM_DIG_HIZ PIN_DM_DIG_HIZ + #define NOR_SO_DM_RES_UP PIN_DM_RES_UP + #define NOR_SO_DM_RES_DWN PIN_DM_RES_DWN + #define NOR_SO_DM_OD_LO PIN_DM_OD_LO + #define NOR_SO_DM_OD_HI PIN_DM_OD_HI + #define NOR_SO_DM_STRONG PIN_DM_STRONG + #define NOR_SO_DM_RES_UPDWN PIN_DM_RES_UPDWN + /** @} driveMode */ +/** @} group_constants */ + +/* Digital Port Constants */ +#define NOR_SO_MASK NOR_SO__MASK +#define NOR_SO_SHIFT NOR_SO__SHIFT +#define NOR_SO_WIDTH 1u + +/* Interrupt constants */ +#if defined(NOR_SO__INTSTAT) +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup intrMode Interrupt constants + * \brief Constants to be passed as "mode" parameter in NOR_SO_SetInterruptMode() function. + * @{ + */ + #define NOR_SO_INTR_NONE (uint16)(0x0000u) + #define NOR_SO_INTR_RISING (uint16)(0x0001u) + #define NOR_SO_INTR_FALLING (uint16)(0x0002u) + #define NOR_SO_INTR_BOTH (uint16)(0x0003u) + /** @} intrMode */ +/** @} group_constants */ + + #define NOR_SO_INTR_MASK (0x01u) +#endif /* (NOR_SO__INTSTAT) */ + + +/*************************************** +* Registers +***************************************/ + +/* Main Port Registers */ +/* Pin State */ +#define NOR_SO_PS (* (reg8 *) NOR_SO__PS) +/* Data Register */ +#define NOR_SO_DR (* (reg8 *) NOR_SO__DR) +/* Port Number */ +#define NOR_SO_PRT_NUM (* (reg8 *) NOR_SO__PRT) +/* Connect to Analog Globals */ +#define NOR_SO_AG (* (reg8 *) NOR_SO__AG) +/* Analog MUX bux enable */ +#define NOR_SO_AMUX (* (reg8 *) NOR_SO__AMUX) +/* Bidirectional Enable */ +#define NOR_SO_BIE (* (reg8 *) NOR_SO__BIE) +/* Bit-mask for Aliased Register Access */ +#define NOR_SO_BIT_MASK (* (reg8 *) NOR_SO__BIT_MASK) +/* Bypass Enable */ +#define NOR_SO_BYP (* (reg8 *) NOR_SO__BYP) +/* Port wide control signals */ +#define NOR_SO_CTL (* (reg8 *) NOR_SO__CTL) +/* Drive Modes */ +#define NOR_SO_DM0 (* (reg8 *) NOR_SO__DM0) +#define NOR_SO_DM1 (* (reg8 *) NOR_SO__DM1) +#define NOR_SO_DM2 (* (reg8 *) NOR_SO__DM2) +/* Input Buffer Disable Override */ +#define NOR_SO_INP_DIS (* (reg8 *) NOR_SO__INP_DIS) +/* LCD Common or Segment Drive */ +#define NOR_SO_LCD_COM_SEG (* (reg8 *) NOR_SO__LCD_COM_SEG) +/* Enable Segment LCD */ +#define NOR_SO_LCD_EN (* (reg8 *) NOR_SO__LCD_EN) +/* Slew Rate Control */ +#define NOR_SO_SLW (* (reg8 *) NOR_SO__SLW) + +/* DSI Port Registers */ +/* Global DSI Select Register */ +#define NOR_SO_PRTDSI__CAPS_SEL (* (reg8 *) NOR_SO__PRTDSI__CAPS_SEL) +/* Double Sync Enable */ +#define NOR_SO_PRTDSI__DBL_SYNC_IN (* (reg8 *) NOR_SO__PRTDSI__DBL_SYNC_IN) +/* Output Enable Select Drive Strength */ +#define NOR_SO_PRTDSI__OE_SEL0 (* (reg8 *) NOR_SO__PRTDSI__OE_SEL0) +#define NOR_SO_PRTDSI__OE_SEL1 (* (reg8 *) NOR_SO__PRTDSI__OE_SEL1) +/* Port Pin Output Select Registers */ +#define NOR_SO_PRTDSI__OUT_SEL0 (* (reg8 *) NOR_SO__PRTDSI__OUT_SEL0) +#define NOR_SO_PRTDSI__OUT_SEL1 (* (reg8 *) NOR_SO__PRTDSI__OUT_SEL1) +/* Sync Output Enable Registers */ +#define NOR_SO_PRTDSI__SYNC_OUT (* (reg8 *) NOR_SO__PRTDSI__SYNC_OUT) + +/* SIO registers */ +#if defined(NOR_SO__SIO_CFG) + #define NOR_SO_SIO_HYST_EN (* (reg8 *) NOR_SO__SIO_HYST_EN) + #define NOR_SO_SIO_REG_HIFREQ (* (reg8 *) NOR_SO__SIO_REG_HIFREQ) + #define NOR_SO_SIO_CFG (* (reg8 *) NOR_SO__SIO_CFG) + #define NOR_SO_SIO_DIFF (* (reg8 *) NOR_SO__SIO_DIFF) +#endif /* (NOR_SO__SIO_CFG) */ + +/* Interrupt Registers */ +#if defined(NOR_SO__INTSTAT) + #define NOR_SO_INTSTAT (* (reg8 *) NOR_SO__INTSTAT) + #define NOR_SO_SNAP (* (reg8 *) NOR_SO__SNAP) + + #define NOR_SO_0_INTTYPE_REG (* (reg8 *) NOR_SO__0__INTTYPE) +#endif /* (NOR_SO__INTSTAT) */ + +#endif /* CY_PSOC5A... */ + +#endif /* CY_PINS_NOR_SO_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO_aliases.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO_aliases.h new file mode 100644 index 0000000..46f455c --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SO_aliases.h @@ -0,0 +1,36 @@ +/******************************************************************************* +* File Name: NOR_SO.h +* Version 2.20 +* +* Description: +* This file contains the Alias definitions for Per-Pin APIs in cypins.h. +* Information on using these APIs can be found in the System Reference Guide. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_NOR_SO_ALIASES_H) /* Pins NOR_SO_ALIASES_H */ +#define CY_PINS_NOR_SO_ALIASES_H + +#include "cytypes.h" +#include "cyfitter.h" + + +/*************************************** +* Constants +***************************************/ +#define NOR_SO_0 (NOR_SO__0__PC) +#define NOR_SO_0_INTR ((uint16)((uint16)0x0001u << NOR_SO__0__SHIFT)) + +#define NOR_SO_INTR_ALL ((uint16)(NOR_SO_0_INTR)) + +#endif /* End Pins NOR_SO_ALIASES_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.c new file mode 100644 index 0000000..5a93af1 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.c @@ -0,0 +1,1154 @@ +/******************************************************************************* +* File Name: NOR_SPI.c +* Version 2.50 +* +* Description: +* This file provides all API functionality of the SPI Master component. +* +* Note: +* None. +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "NOR_SPI_PVT.h" + +#if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + volatile uint8 NOR_SPI_txBuffer[NOR_SPI_TX_BUFFER_SIZE]; + volatile uint8 NOR_SPI_txBufferFull; + volatile uint8 NOR_SPI_txBufferRead; + volatile uint8 NOR_SPI_txBufferWrite; +#endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + +#if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + volatile uint8 NOR_SPI_rxBuffer[NOR_SPI_RX_BUFFER_SIZE]; + volatile uint8 NOR_SPI_rxBufferFull; + volatile uint8 NOR_SPI_rxBufferRead; + volatile uint8 NOR_SPI_rxBufferWrite; +#endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + +uint8 NOR_SPI_initVar = 0u; + +volatile uint8 NOR_SPI_swStatusTx; +volatile uint8 NOR_SPI_swStatusRx; + + +/******************************************************************************* +* Function Name: NOR_SPI_Init +******************************************************************************** +* +* Summary: +* Inits/Restores default SPIM configuration provided with customizer. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Side Effects: +* When this function is called it initializes all of the necessary parameters +* for execution. i.e. setting the initial interrupt mask, configuring the +* interrupt service routine, configuring the bit-counter parameters and +* clearing the FIFO and Status Register. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_Init(void) +{ + /* Initialize the Bit counter */ + NOR_SPI_COUNTER_PERIOD_REG = NOR_SPI_BITCTR_INIT; + + /* Init TX ISR */ + #if(0u != NOR_SPI_INTERNAL_TX_INT_ENABLED) + CyIntDisable (NOR_SPI_TX_ISR_NUMBER); + CyIntSetPriority (NOR_SPI_TX_ISR_NUMBER, NOR_SPI_TX_ISR_PRIORITY); + (void) CyIntSetVector(NOR_SPI_TX_ISR_NUMBER, &NOR_SPI_TX_ISR); + #endif /* (0u != NOR_SPI_INTERNAL_TX_INT_ENABLED) */ + + /* Init RX ISR */ + #if(0u != NOR_SPI_INTERNAL_RX_INT_ENABLED) + CyIntDisable (NOR_SPI_RX_ISR_NUMBER); + CyIntSetPriority (NOR_SPI_RX_ISR_NUMBER, NOR_SPI_RX_ISR_PRIORITY); + (void) CyIntSetVector(NOR_SPI_RX_ISR_NUMBER, &NOR_SPI_RX_ISR); + #endif /* (0u != NOR_SPI_INTERNAL_RX_INT_ENABLED) */ + + /* Clear any stray data from the RX and TX FIFO */ + NOR_SPI_ClearFIFO(); + + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + NOR_SPI_rxBufferFull = 0u; + NOR_SPI_rxBufferRead = 0u; + NOR_SPI_rxBufferWrite = 0u; + #endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + NOR_SPI_txBufferFull = 0u; + NOR_SPI_txBufferRead = 0u; + NOR_SPI_txBufferWrite = 0u; + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + + (void) NOR_SPI_ReadTxStatus(); /* Clear Tx status and swStatusTx */ + (void) NOR_SPI_ReadRxStatus(); /* Clear Rx status and swStatusRx */ + + /* Configure TX and RX interrupt mask */ + NOR_SPI_TX_STATUS_MASK_REG = NOR_SPI_TX_INIT_INTERRUPTS_MASK; + NOR_SPI_RX_STATUS_MASK_REG = NOR_SPI_RX_INIT_INTERRUPTS_MASK; +} + + +/******************************************************************************* +* Function Name: NOR_SPI_Enable +******************************************************************************** +* +* Summary: +* Enable SPIM component. +* +* Parameters: +* None. +* +* Return: +* None. +* +*******************************************************************************/ +void NOR_SPI_Enable(void) +{ + uint8 enableInterrupts; + + enableInterrupts = CyEnterCriticalSection(); + NOR_SPI_COUNTER_CONTROL_REG |= NOR_SPI_CNTR_ENABLE; + NOR_SPI_TX_STATUS_ACTL_REG |= NOR_SPI_INT_ENABLE; + NOR_SPI_RX_STATUS_ACTL_REG |= NOR_SPI_INT_ENABLE; + CyExitCriticalSection(enableInterrupts); + + #if(0u != NOR_SPI_INTERNAL_CLOCK) + NOR_SPI_IntClock_Enable(); + #endif /* (0u != NOR_SPI_INTERNAL_CLOCK) */ + + NOR_SPI_EnableTxInt(); + NOR_SPI_EnableRxInt(); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_Start +******************************************************************************** +* +* Summary: +* Initialize and Enable the SPI Master component. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Global variables: +* NOR_SPI_initVar - used to check initial configuration, modified on +* first function call. +* +* Theory: +* Enable the clock input to enable operation. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_Start(void) +{ + if(0u == NOR_SPI_initVar) + { + NOR_SPI_Init(); + NOR_SPI_initVar = 1u; + } + + NOR_SPI_Enable(); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_Stop +******************************************************************************** +* +* Summary: +* Disable the SPI Master component. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Theory: +* Disable the clock input to enable operation. +* +*******************************************************************************/ +void NOR_SPI_Stop(void) +{ + uint8 enableInterrupts; + + enableInterrupts = CyEnterCriticalSection(); + NOR_SPI_TX_STATUS_ACTL_REG &= ((uint8) ~NOR_SPI_INT_ENABLE); + NOR_SPI_RX_STATUS_ACTL_REG &= ((uint8) ~NOR_SPI_INT_ENABLE); + CyExitCriticalSection(enableInterrupts); + + #if(0u != NOR_SPI_INTERNAL_CLOCK) + NOR_SPI_IntClock_Disable(); + #endif /* (0u != NOR_SPI_INTERNAL_CLOCK) */ + + NOR_SPI_DisableTxInt(); + NOR_SPI_DisableRxInt(); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_EnableTxInt +******************************************************************************** +* +* Summary: +* Enable internal Tx interrupt generation. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Theory: +* Enable the internal Tx interrupt output -or- the interrupt component itself. +* +*******************************************************************************/ +void NOR_SPI_EnableTxInt(void) +{ + #if(0u != NOR_SPI_INTERNAL_TX_INT_ENABLED) + CyIntEnable(NOR_SPI_TX_ISR_NUMBER); + #endif /* (0u != NOR_SPI_INTERNAL_TX_INT_ENABLED) */ +} + + +/******************************************************************************* +* Function Name: NOR_SPI_EnableRxInt +******************************************************************************** +* +* Summary: +* Enable internal Rx interrupt generation. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Theory: +* Enable the internal Rx interrupt output -or- the interrupt component itself. +* +*******************************************************************************/ +void NOR_SPI_EnableRxInt(void) +{ + #if(0u != NOR_SPI_INTERNAL_RX_INT_ENABLED) + CyIntEnable(NOR_SPI_RX_ISR_NUMBER); + #endif /* (0u != NOR_SPI_INTERNAL_RX_INT_ENABLED) */ +} + + +/******************************************************************************* +* Function Name: NOR_SPI_DisableTxInt +******************************************************************************** +* +* Summary: +* Disable internal Tx interrupt generation. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Theory: +* Disable the internal Tx interrupt output -or- the interrupt component itself. +* +*******************************************************************************/ +void NOR_SPI_DisableTxInt(void) +{ + #if(0u != NOR_SPI_INTERNAL_TX_INT_ENABLED) + CyIntDisable(NOR_SPI_TX_ISR_NUMBER); + #endif /* (0u != NOR_SPI_INTERNAL_TX_INT_ENABLED) */ +} + + +/******************************************************************************* +* Function Name: NOR_SPI_DisableRxInt +******************************************************************************** +* +* Summary: +* Disable internal Rx interrupt generation. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Theory: +* Disable the internal Rx interrupt output -or- the interrupt component itself. +* +*******************************************************************************/ +void NOR_SPI_DisableRxInt(void) +{ + #if(0u != NOR_SPI_INTERNAL_RX_INT_ENABLED) + CyIntDisable(NOR_SPI_RX_ISR_NUMBER); + #endif /* (0u != NOR_SPI_INTERNAL_RX_INT_ENABLED) */ +} + + +/******************************************************************************* +* Function Name: NOR_SPI_SetTxInterruptMode +******************************************************************************** +* +* Summary: +* Configure which status bits trigger an interrupt event. +* +* Parameters: +* intSrc: An or'd combination of the desired status bit masks (defined in the +* header file). +* +* Return: +* None. +* +* Theory: +* Enables the output of specific status bits to the interrupt controller. +* +*******************************************************************************/ +void NOR_SPI_SetTxInterruptMode(uint8 intSrc) +{ + NOR_SPI_TX_STATUS_MASK_REG = intSrc; +} + + +/******************************************************************************* +* Function Name: NOR_SPI_SetRxInterruptMode +******************************************************************************** +* +* Summary: +* Configure which status bits trigger an interrupt event. +* +* Parameters: +* intSrc: An or'd combination of the desired status bit masks (defined in the +* header file). +* +* Return: +* None. +* +* Theory: +* Enables the output of specific status bits to the interrupt controller. +* +*******************************************************************************/ +void NOR_SPI_SetRxInterruptMode(uint8 intSrc) +{ + NOR_SPI_RX_STATUS_MASK_REG = intSrc; +} + + +/******************************************************************************* +* Function Name: NOR_SPI_ReadTxStatus +******************************************************************************** +* +* Summary: +* Read the Tx status register for the component. +* +* Parameters: +* None. +* +* Return: +* Contents of the Tx status register. +* +* Global variables: +* NOR_SPI_swStatusTx - used to store in software status register, +* modified every function call - resets to zero. +* +* Theory: +* Allows the user and the API to read the Tx status register for error +* detection and flow control. +* +* Side Effects: +* Clear Tx status register of the component. +* +* Reentrant: +* No. +* +*******************************************************************************/ +uint8 NOR_SPI_ReadTxStatus(void) +{ + uint8 tmpStatus; + + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + /* Disable TX interrupt to protect global veriables */ + NOR_SPI_DisableTxInt(); + + tmpStatus = NOR_SPI_GET_STATUS_TX(NOR_SPI_swStatusTx); + NOR_SPI_swStatusTx = 0u; + + NOR_SPI_EnableTxInt(); + + #else + + tmpStatus = NOR_SPI_TX_STATUS_REG; + + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + + return(tmpStatus); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_ReadRxStatus +******************************************************************************** +* +* Summary: +* Read the Rx status register for the component. +* +* Parameters: +* None. +* +* Return: +* Contents of the Rx status register. +* +* Global variables: +* NOR_SPI_swStatusRx - used to store in software Rx status register, +* modified every function call - resets to zero. +* +* Theory: +* Allows the user and the API to read the Rx status register for error +* detection and flow control. +* +* Side Effects: +* Clear Rx status register of the component. +* +* Reentrant: +* No. +* +*******************************************************************************/ +uint8 NOR_SPI_ReadRxStatus(void) +{ + uint8 tmpStatus; + + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + /* Disable RX interrupt to protect global veriables */ + NOR_SPI_DisableRxInt(); + + tmpStatus = NOR_SPI_GET_STATUS_RX(NOR_SPI_swStatusRx); + NOR_SPI_swStatusRx = 0u; + + NOR_SPI_EnableRxInt(); + + #else + + tmpStatus = NOR_SPI_RX_STATUS_REG; + + #endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + + return(tmpStatus); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_WriteTxData +******************************************************************************** +* +* Summary: +* Write a byte of data to be sent across the SPI. +* +* Parameters: +* txDataByte: The data value to send across the SPI. +* +* Return: +* None. +* +* Global variables: +* NOR_SPI_txBufferWrite - used for the account of the bytes which +* have been written down in the TX software buffer, modified every function +* call if TX Software Buffer is used. +* NOR_SPI_txBufferRead - used for the account of the bytes which +* have been read from the TX software buffer. +* NOR_SPI_txBuffer[NOR_SPI_TX_BUFFER_SIZE] - used to store +* data to sending, modified every function call if TX Software Buffer is used. +* +* Theory: +* Allows the user to transmit any byte of data in a single transfer. +* +* Side Effects: +* If this function is called again before the previous byte is finished then +* the next byte will be appended to the transfer with no time between +* the byte transfers. Clear Tx status register of the component. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_WriteTxData(uint8 txData) +{ + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + + uint8 tempStatus; + uint8 tmpTxBufferRead; + + /* Block if TX buffer is FULL: don't overwrite */ + do + { + tmpTxBufferRead = NOR_SPI_txBufferRead; + if(0u == tmpTxBufferRead) + { + tmpTxBufferRead = (NOR_SPI_TX_BUFFER_SIZE - 1u); + } + else + { + tmpTxBufferRead--; + } + + }while(tmpTxBufferRead == NOR_SPI_txBufferWrite); + + /* Disable TX interrupt to protect global veriables */ + NOR_SPI_DisableTxInt(); + + tempStatus = NOR_SPI_GET_STATUS_TX(NOR_SPI_swStatusTx); + NOR_SPI_swStatusTx = tempStatus; + + + if((NOR_SPI_txBufferRead == NOR_SPI_txBufferWrite) && + (0u != (NOR_SPI_swStatusTx & NOR_SPI_STS_TX_FIFO_NOT_FULL))) + { + /* Put data element into the TX FIFO */ + CY_SET_REG8(NOR_SPI_TXDATA_PTR, txData); + } + else + { + /* Add to the TX software buffer */ + NOR_SPI_txBufferWrite++; + if(NOR_SPI_txBufferWrite >= NOR_SPI_TX_BUFFER_SIZE) + { + NOR_SPI_txBufferWrite = 0u; + } + + if(NOR_SPI_txBufferWrite == NOR_SPI_txBufferRead) + { + NOR_SPI_txBufferRead++; + if(NOR_SPI_txBufferRead >= NOR_SPI_TX_BUFFER_SIZE) + { + NOR_SPI_txBufferRead = 0u; + } + NOR_SPI_txBufferFull = 1u; + } + + NOR_SPI_txBuffer[NOR_SPI_txBufferWrite] = txData; + + NOR_SPI_TX_STATUS_MASK_REG |= NOR_SPI_STS_TX_FIFO_NOT_FULL; + } + + NOR_SPI_EnableTxInt(); + + #else + /* Wait until TX FIFO has a place */ + while(0u == (NOR_SPI_TX_STATUS_REG & NOR_SPI_STS_TX_FIFO_NOT_FULL)) + { + } + + /* Put data element into the TX FIFO */ + CY_SET_REG8(NOR_SPI_TXDATA_PTR, txData); + + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ +} + + +/******************************************************************************* +* Function Name: NOR_SPI_ReadRxData +******************************************************************************** +* +* Summary: +* Read the next byte of data received across the SPI. +* +* Parameters: +* None. +* +* Return: +* The next byte of data read from the FIFO. +* +* Global variables: +* NOR_SPI_rxBufferWrite - used for the account of the bytes which +* have been written down in the RX software buffer. +* NOR_SPI_rxBufferRead - used for the account of the bytes which +* have been read from the RX software buffer, modified every function +* call if RX Software Buffer is used. +* NOR_SPI_rxBuffer[NOR_SPI_RX_BUFFER_SIZE] - used to store +* received data. +* +* Theory: +* Allows the user to read a byte of data received. +* +* Side Effects: +* Will return invalid data if the FIFO is empty. The user should Call +* GetRxBufferSize() and if it returns a non-zero value then it is safe to call +* ReadByte() function. +* +* Reentrant: +* No. +* +*******************************************************************************/ +uint8 NOR_SPI_ReadRxData(void) +{ + uint8 rxData; + + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + + /* Disable RX interrupt to protect global veriables */ + NOR_SPI_DisableRxInt(); + + if(NOR_SPI_rxBufferRead != NOR_SPI_rxBufferWrite) + { + if(0u == NOR_SPI_rxBufferFull) + { + NOR_SPI_rxBufferRead++; + if(NOR_SPI_rxBufferRead >= NOR_SPI_RX_BUFFER_SIZE) + { + NOR_SPI_rxBufferRead = 0u; + } + } + else + { + NOR_SPI_rxBufferFull = 0u; + } + } + + rxData = NOR_SPI_rxBuffer[NOR_SPI_rxBufferRead]; + + NOR_SPI_EnableRxInt(); + + #else + + rxData = CY_GET_REG8(NOR_SPI_RXDATA_PTR); + + #endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + + return(rxData); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_GetRxBufferSize +******************************************************************************** +* +* Summary: +* Returns the number of bytes/words of data currently held in the RX buffer. +* If RX Software Buffer not used then function return 0 if FIFO empty or 1 if +* FIFO not empty. In another case function return size of RX Software Buffer. +* +* Parameters: +* None. +* +* Return: +* Integer count of the number of bytes/words in the RX buffer. +* +* Global variables: +* NOR_SPI_rxBufferWrite - used for the account of the bytes which +* have been written down in the RX software buffer. +* NOR_SPI_rxBufferRead - used for the account of the bytes which +* have been read from the RX software buffer. +* +* Side Effects: +* Clear status register of the component. +* +*******************************************************************************/ +uint8 NOR_SPI_GetRxBufferSize(void) +{ + uint8 size; + + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + + /* Disable RX interrupt to protect global veriables */ + NOR_SPI_DisableRxInt(); + + if(NOR_SPI_rxBufferRead == NOR_SPI_rxBufferWrite) + { + size = 0u; + } + else if(NOR_SPI_rxBufferRead < NOR_SPI_rxBufferWrite) + { + size = (NOR_SPI_rxBufferWrite - NOR_SPI_rxBufferRead); + } + else + { + size = (NOR_SPI_RX_BUFFER_SIZE - NOR_SPI_rxBufferRead) + NOR_SPI_rxBufferWrite; + } + + NOR_SPI_EnableRxInt(); + + #else + + /* We can only know if there is data in the RX FIFO */ + size = (0u != (NOR_SPI_RX_STATUS_REG & NOR_SPI_STS_RX_FIFO_NOT_EMPTY)) ? 1u : 0u; + + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + + return(size); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_GetTxBufferSize +******************************************************************************** +* +* Summary: +* Returns the number of bytes/words of data currently held in the TX buffer. +* If TX Software Buffer not used then function return 0 - if FIFO empty, 1 - if +* FIFO not full, 4 - if FIFO full. In another case function return size of TX +* Software Buffer. +* +* Parameters: +* None. +* +* Return: +* Integer count of the number of bytes/words in the TX buffer. +* +* Global variables: +* NOR_SPI_txBufferWrite - used for the account of the bytes which +* have been written down in the TX software buffer. +* NOR_SPI_txBufferRead - used for the account of the bytes which +* have been read from the TX software buffer. +* +* Side Effects: +* Clear status register of the component. +* +*******************************************************************************/ +uint8 NOR_SPI_GetTxBufferSize(void) +{ + uint8 size; + + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + /* Disable TX interrupt to protect global veriables */ + NOR_SPI_DisableTxInt(); + + if(NOR_SPI_txBufferRead == NOR_SPI_txBufferWrite) + { + size = 0u; + } + else if(NOR_SPI_txBufferRead < NOR_SPI_txBufferWrite) + { + size = (NOR_SPI_txBufferWrite - NOR_SPI_txBufferRead); + } + else + { + size = (NOR_SPI_TX_BUFFER_SIZE - NOR_SPI_txBufferRead) + NOR_SPI_txBufferWrite; + } + + NOR_SPI_EnableTxInt(); + + #else + + size = NOR_SPI_TX_STATUS_REG; + + if(0u != (size & NOR_SPI_STS_TX_FIFO_EMPTY)) + { + size = 0u; + } + else if(0u != (size & NOR_SPI_STS_TX_FIFO_NOT_FULL)) + { + size = 1u; + } + else + { + size = NOR_SPI_FIFO_SIZE; + } + + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + + return(size); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_ClearRxBuffer +******************************************************************************** +* +* Summary: +* Clear the RX RAM buffer by setting the read and write pointers both to zero. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Global variables: +* NOR_SPI_rxBufferWrite - used for the account of the bytes which +* have been written down in the RX software buffer, modified every function +* call - resets to zero. +* NOR_SPI_rxBufferRead - used for the account of the bytes which +* have been read from the RX software buffer, modified every function call - +* resets to zero. +* +* Theory: +* Setting the pointers to zero makes the system believe there is no data to +* read and writing will resume at address 0 overwriting any data that may have +* remained in the RAM. +* +* Side Effects: +* Any received data not read from the RAM buffer will be lost when overwritten. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_ClearRxBuffer(void) +{ + /* Clear Hardware RX FIFO */ + while(0u !=(NOR_SPI_RX_STATUS_REG & NOR_SPI_STS_RX_FIFO_NOT_EMPTY)) + { + (void) CY_GET_REG8(NOR_SPI_RXDATA_PTR); + } + + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + /* Disable RX interrupt to protect global veriables */ + NOR_SPI_DisableRxInt(); + + NOR_SPI_rxBufferFull = 0u; + NOR_SPI_rxBufferRead = 0u; + NOR_SPI_rxBufferWrite = 0u; + + NOR_SPI_EnableRxInt(); + #endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ +} + + +/******************************************************************************* +* Function Name: NOR_SPI_ClearTxBuffer +******************************************************************************** +* +* Summary: +* Clear the TX RAM buffer by setting the read and write pointers both to zero. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Global variables: +* NOR_SPI_txBufferWrite - used for the account of the bytes which +* have been written down in the TX software buffer, modified every function +* call - resets to zero. +* NOR_SPI_txBufferRead - used for the account of the bytes which +* have been read from the TX software buffer, modified every function call - +* resets to zero. +* +* Theory: +* Setting the pointers to zero makes the system believe there is no data to +* read and writing will resume at address 0 overwriting any data that may have +* remained in the RAM. +* +* Side Effects: +* Any data not yet transmitted from the RAM buffer will be lost when +* overwritten. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_ClearTxBuffer(void) +{ + uint8 enableInterrupts; + + enableInterrupts = CyEnterCriticalSection(); + /* Clear TX FIFO */ + NOR_SPI_AUX_CONTROL_DP0_REG |= ((uint8) NOR_SPI_TX_FIFO_CLR); + NOR_SPI_AUX_CONTROL_DP0_REG &= ((uint8) ~NOR_SPI_TX_FIFO_CLR); + + #if(NOR_SPI_USE_SECOND_DATAPATH) + /* Clear TX FIFO for 2nd Datapath */ + NOR_SPI_AUX_CONTROL_DP1_REG |= ((uint8) NOR_SPI_TX_FIFO_CLR); + NOR_SPI_AUX_CONTROL_DP1_REG &= ((uint8) ~NOR_SPI_TX_FIFO_CLR); + #endif /* (NOR_SPI_USE_SECOND_DATAPATH) */ + CyExitCriticalSection(enableInterrupts); + + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + /* Disable TX interrupt to protect global veriables */ + NOR_SPI_DisableTxInt(); + + NOR_SPI_txBufferFull = 0u; + NOR_SPI_txBufferRead = 0u; + NOR_SPI_txBufferWrite = 0u; + + /* Buffer is EMPTY: disable TX FIFO NOT FULL interrupt */ + NOR_SPI_TX_STATUS_MASK_REG &= ((uint8) ~NOR_SPI_STS_TX_FIFO_NOT_FULL); + + NOR_SPI_EnableTxInt(); + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ +} + + +#if(0u != NOR_SPI_BIDIRECTIONAL_MODE) + /******************************************************************************* + * Function Name: NOR_SPI_TxEnable + ******************************************************************************** + * + * Summary: + * If the SPI master is configured to use a single bi-directional pin then this + * will set the bi-directional pin to transmit. + * + * Parameters: + * None. + * + * Return: + * None. + * + *******************************************************************************/ + void NOR_SPI_TxEnable(void) + { + NOR_SPI_CONTROL_REG |= NOR_SPI_CTRL_TX_SIGNAL_EN; + } + + + /******************************************************************************* + * Function Name: NOR_SPI_TxDisable + ******************************************************************************** + * + * Summary: + * If the SPI master is configured to use a single bi-directional pin then this + * will set the bi-directional pin to receive. + * + * Parameters: + * None. + * + * Return: + * None. + * + *******************************************************************************/ + void NOR_SPI_TxDisable(void) + { + NOR_SPI_CONTROL_REG &= ((uint8) ~NOR_SPI_CTRL_TX_SIGNAL_EN); + } + +#endif /* (0u != NOR_SPI_BIDIRECTIONAL_MODE) */ + + +/******************************************************************************* +* Function Name: NOR_SPI_PutArray +******************************************************************************** +* +* Summary: +* Write available data from ROM/RAM to the TX buffer while space is available +* in the TX buffer. Keep trying until all data is passed to the TX buffer. +* +* Parameters: +* *buffer: Pointer to the location in RAM containing the data to send +* byteCount: The number of bytes to move to the transmit buffer. +* +* Return: +* None. +* +* Side Effects: +* Will stay in this routine until all data has been sent. May get locked in +* this loop if data is not being initiated by the master if there is not +* enough room in the TX FIFO. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_PutArray(const uint8 buffer[], uint8 byteCount) + +{ + uint8 bufIndex; + + bufIndex = 0u; + + while(byteCount > 0u) + { + NOR_SPI_WriteTxData(buffer[bufIndex]); + bufIndex++; + byteCount--; + } +} + + +/******************************************************************************* +* Function Name: NOR_SPI_ClearFIFO +******************************************************************************** +* +* Summary: +* Clear the RX and TX FIFO's of all data for a fresh start. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Side Effects: +* Clear status register of the component. +* +*******************************************************************************/ +void NOR_SPI_ClearFIFO(void) +{ + uint8 enableInterrupts; + + /* Clear Hardware RX FIFO */ + while(0u !=(NOR_SPI_RX_STATUS_REG & NOR_SPI_STS_RX_FIFO_NOT_EMPTY)) + { + (void) CY_GET_REG8(NOR_SPI_RXDATA_PTR); + } + + enableInterrupts = CyEnterCriticalSection(); + /* Clear TX FIFO */ + NOR_SPI_AUX_CONTROL_DP0_REG |= ((uint8) NOR_SPI_TX_FIFO_CLR); + NOR_SPI_AUX_CONTROL_DP0_REG &= ((uint8) ~NOR_SPI_TX_FIFO_CLR); + + #if(NOR_SPI_USE_SECOND_DATAPATH) + /* Clear TX FIFO for 2nd Datapath */ + NOR_SPI_AUX_CONTROL_DP1_REG |= ((uint8) NOR_SPI_TX_FIFO_CLR); + NOR_SPI_AUX_CONTROL_DP1_REG &= ((uint8) ~NOR_SPI_TX_FIFO_CLR); + #endif /* (NOR_SPI_USE_SECOND_DATAPATH) */ + CyExitCriticalSection(enableInterrupts); +} + + +/* Following functions are for version Compatibility, they are obsolete. +* Please do not use it in new projects. +*/ + + +/******************************************************************************* +* Function Name: NOR_SPI_EnableInt +******************************************************************************** +* +* Summary: +* Enable internal interrupt generation. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Theory: +* Enable the internal interrupt output -or- the interrupt component itself. +* +*******************************************************************************/ +void NOR_SPI_EnableInt(void) +{ + NOR_SPI_EnableRxInt(); + NOR_SPI_EnableTxInt(); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_DisableInt +******************************************************************************** +* +* Summary: +* Disable internal interrupt generation. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Theory: +* Disable the internal interrupt output -or- the interrupt component itself. +* +*******************************************************************************/ +void NOR_SPI_DisableInt(void) +{ + NOR_SPI_DisableTxInt(); + NOR_SPI_DisableRxInt(); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_SetInterruptMode +******************************************************************************** +* +* Summary: +* Configure which status bits trigger an interrupt event. +* +* Parameters: +* intSrc: An or'd combination of the desired status bit masks (defined in the +* header file). +* +* Return: +* None. +* +* Theory: +* Enables the output of specific status bits to the interrupt controller. +* +*******************************************************************************/ +void NOR_SPI_SetInterruptMode(uint8 intSrc) +{ + NOR_SPI_TX_STATUS_MASK_REG = (intSrc & ((uint8) ~NOR_SPI_STS_SPI_IDLE)); + NOR_SPI_RX_STATUS_MASK_REG = intSrc; +} + + +/******************************************************************************* +* Function Name: NOR_SPI_ReadStatus +******************************************************************************** +* +* Summary: +* Read the status register for the component. +* +* Parameters: +* None. +* +* Return: +* Contents of the status register. +* +* Global variables: +* NOR_SPI_swStatus - used to store in software status register, +* modified every function call - resets to zero. +* +* Theory: +* Allows the user and the API to read the status register for error detection +* and flow control. +* +* Side Effects: +* Clear status register of the component. +* +* Reentrant: +* No. +* +*******************************************************************************/ +uint8 NOR_SPI_ReadStatus(void) +{ + uint8 tmpStatus; + + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED || NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + + NOR_SPI_DisableInt(); + + tmpStatus = NOR_SPI_GET_STATUS_RX(NOR_SPI_swStatusRx); + tmpStatus |= NOR_SPI_GET_STATUS_TX(NOR_SPI_swStatusTx); + tmpStatus &= ((uint8) ~NOR_SPI_STS_SPI_IDLE); + + NOR_SPI_swStatusTx = 0u; + NOR_SPI_swStatusRx = 0u; + + NOR_SPI_EnableInt(); + + #else + + tmpStatus = NOR_SPI_RX_STATUS_REG; + tmpStatus |= NOR_SPI_TX_STATUS_REG; + tmpStatus &= ((uint8) ~NOR_SPI_STS_SPI_IDLE); + + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED || NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + + return(tmpStatus); +} + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.h new file mode 100644 index 0000000..c0f90bd --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI.h @@ -0,0 +1,367 @@ +/******************************************************************************* +* File Name: NOR_SPI.h +* Version 2.50 +* +* Description: +* Contains the function prototypes, constants and register definition +* of the SPI Master Component. +* +* Note: +* None +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_SPIM_NOR_SPI_H) +#define CY_SPIM_NOR_SPI_H + +#include "cyfitter.h" +#include "cytypes.h" +#include "CyLib.h" /* For CyEnterCriticalSection() and CyExitCriticalSection() functions */ + + +/*************************************** +* Conditional Compilation Parameters +***************************************/ + +#define NOR_SPI_INTERNAL_CLOCK (0u) + +#if(0u != NOR_SPI_INTERNAL_CLOCK) + #include "NOR_SPI_IntClock.h" +#endif /* (0u != NOR_SPI_INTERNAL_CLOCK) */ + +#define NOR_SPI_MODE (1u) +#define NOR_SPI_DATA_WIDTH (8u) +#define NOR_SPI_MODE_USE_ZERO (1u) +#define NOR_SPI_BIDIRECTIONAL_MODE (0u) + +/* Internal interrupt handling */ +#define NOR_SPI_TX_BUFFER_SIZE (4u) +#define NOR_SPI_RX_BUFFER_SIZE (4u) +#define NOR_SPI_INTERNAL_TX_INT_ENABLED (0u) +#define NOR_SPI_INTERNAL_RX_INT_ENABLED (0u) + +#define NOR_SPI_SINGLE_REG_SIZE (8u) +#define NOR_SPI_USE_SECOND_DATAPATH (NOR_SPI_DATA_WIDTH > NOR_SPI_SINGLE_REG_SIZE) + +#define NOR_SPI_FIFO_SIZE (4u) +#define NOR_SPI_TX_SOFTWARE_BUF_ENABLED ((0u != NOR_SPI_INTERNAL_TX_INT_ENABLED) && \ + (NOR_SPI_TX_BUFFER_SIZE > NOR_SPI_FIFO_SIZE)) + +#define NOR_SPI_RX_SOFTWARE_BUF_ENABLED ((0u != NOR_SPI_INTERNAL_RX_INT_ENABLED) && \ + (NOR_SPI_RX_BUFFER_SIZE > NOR_SPI_FIFO_SIZE)) + + +/*************************************** +* Data Struct Definition +***************************************/ + +/* Sleep Mode API Support */ +typedef struct +{ + uint8 enableState; + uint8 cntrPeriod; +} NOR_SPI_BACKUP_STRUCT; + + +/*************************************** +* Function Prototypes +***************************************/ + +void NOR_SPI_Init(void) ; +void NOR_SPI_Enable(void) ; +void NOR_SPI_Start(void) ; +void NOR_SPI_Stop(void) ; + +void NOR_SPI_EnableTxInt(void) ; +void NOR_SPI_EnableRxInt(void) ; +void NOR_SPI_DisableTxInt(void) ; +void NOR_SPI_DisableRxInt(void) ; + +void NOR_SPI_Sleep(void) ; +void NOR_SPI_Wakeup(void) ; +void NOR_SPI_SaveConfig(void) ; +void NOR_SPI_RestoreConfig(void) ; + +void NOR_SPI_SetTxInterruptMode(uint8 intSrc) ; +void NOR_SPI_SetRxInterruptMode(uint8 intSrc) ; +uint8 NOR_SPI_ReadTxStatus(void) ; +uint8 NOR_SPI_ReadRxStatus(void) ; +void NOR_SPI_WriteTxData(uint8 txData) \ + ; +uint8 NOR_SPI_ReadRxData(void) \ + ; +uint8 NOR_SPI_GetRxBufferSize(void) ; +uint8 NOR_SPI_GetTxBufferSize(void) ; +void NOR_SPI_ClearRxBuffer(void) ; +void NOR_SPI_ClearTxBuffer(void) ; +void NOR_SPI_ClearFIFO(void) ; +void NOR_SPI_PutArray(const uint8 buffer[], uint8 byteCount) \ + ; + +#if(0u != NOR_SPI_BIDIRECTIONAL_MODE) + void NOR_SPI_TxEnable(void) ; + void NOR_SPI_TxDisable(void) ; +#endif /* (0u != NOR_SPI_BIDIRECTIONAL_MODE) */ + +CY_ISR_PROTO(NOR_SPI_TX_ISR); +CY_ISR_PROTO(NOR_SPI_RX_ISR); + + +/*************************************** +* Variable with external linkage +***************************************/ + +extern uint8 NOR_SPI_initVar; + + +/*************************************** +* API Constants +***************************************/ + +#define NOR_SPI_TX_ISR_NUMBER ((uint8) (NOR_SPI_TxInternalInterrupt__INTC_NUMBER)) +#define NOR_SPI_RX_ISR_NUMBER ((uint8) (NOR_SPI_RxInternalInterrupt__INTC_NUMBER)) + +#define NOR_SPI_TX_ISR_PRIORITY ((uint8) (NOR_SPI_TxInternalInterrupt__INTC_PRIOR_NUM)) +#define NOR_SPI_RX_ISR_PRIORITY ((uint8) (NOR_SPI_RxInternalInterrupt__INTC_PRIOR_NUM)) + + +/*************************************** +* Initial Parameter Constants +***************************************/ + +#define NOR_SPI_INT_ON_SPI_DONE ((uint8) (0u << NOR_SPI_STS_SPI_DONE_SHIFT)) +#define NOR_SPI_INT_ON_TX_EMPTY ((uint8) (0u << NOR_SPI_STS_TX_FIFO_EMPTY_SHIFT)) +#define NOR_SPI_INT_ON_TX_NOT_FULL ((uint8) (0u << \ + NOR_SPI_STS_TX_FIFO_NOT_FULL_SHIFT)) +#define NOR_SPI_INT_ON_BYTE_COMP ((uint8) (0u << NOR_SPI_STS_BYTE_COMPLETE_SHIFT)) +#define NOR_SPI_INT_ON_SPI_IDLE ((uint8) (0u << NOR_SPI_STS_SPI_IDLE_SHIFT)) + +/* Disable TX_NOT_FULL if software buffer is used */ +#define NOR_SPI_INT_ON_TX_NOT_FULL_DEF ((NOR_SPI_TX_SOFTWARE_BUF_ENABLED) ? \ + (0u) : (NOR_SPI_INT_ON_TX_NOT_FULL)) + +/* TX interrupt mask */ +#define NOR_SPI_TX_INIT_INTERRUPTS_MASK (NOR_SPI_INT_ON_SPI_DONE | \ + NOR_SPI_INT_ON_TX_EMPTY | \ + NOR_SPI_INT_ON_TX_NOT_FULL_DEF | \ + NOR_SPI_INT_ON_BYTE_COMP | \ + NOR_SPI_INT_ON_SPI_IDLE) + +#define NOR_SPI_INT_ON_RX_FULL ((uint8) (0u << \ + NOR_SPI_STS_RX_FIFO_FULL_SHIFT)) +#define NOR_SPI_INT_ON_RX_NOT_EMPTY ((uint8) (0u << \ + NOR_SPI_STS_RX_FIFO_NOT_EMPTY_SHIFT)) +#define NOR_SPI_INT_ON_RX_OVER ((uint8) (0u << \ + NOR_SPI_STS_RX_FIFO_OVERRUN_SHIFT)) + +/* RX interrupt mask */ +#define NOR_SPI_RX_INIT_INTERRUPTS_MASK (NOR_SPI_INT_ON_RX_FULL | \ + NOR_SPI_INT_ON_RX_NOT_EMPTY | \ + NOR_SPI_INT_ON_RX_OVER) +/* Nubmer of bits to receive/transmit */ +#define NOR_SPI_BITCTR_INIT (((uint8) (NOR_SPI_DATA_WIDTH << 1u)) - 1u) + + +/*************************************** +* Registers +***************************************/ +#if(CY_PSOC3 || CY_PSOC5) + #define NOR_SPI_TXDATA_REG (* (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG) + #define NOR_SPI_TXDATA_PTR ( (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG) + #define NOR_SPI_RXDATA_REG (* (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG) + #define NOR_SPI_RXDATA_PTR ( (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG) +#else /* PSOC4 */ + #if(NOR_SPI_USE_SECOND_DATAPATH) + #define NOR_SPI_TXDATA_REG (* (reg16 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F0_REG) + #define NOR_SPI_TXDATA_PTR ( (reg16 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F0_REG) + #define NOR_SPI_RXDATA_REG (* (reg16 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F1_REG) + #define NOR_SPI_RXDATA_PTR ( (reg16 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F1_REG) + #else + #define NOR_SPI_TXDATA_REG (* (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG) + #define NOR_SPI_TXDATA_PTR ( (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG) + #define NOR_SPI_RXDATA_REG (* (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG) + #define NOR_SPI_RXDATA_PTR ( (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG) + #endif /* (NOR_SPI_USE_SECOND_DATAPATH) */ +#endif /* (CY_PSOC3 || CY_PSOC5) */ + +#define NOR_SPI_AUX_CONTROL_DP0_REG (* (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG) +#define NOR_SPI_AUX_CONTROL_DP0_PTR ( (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG) + +#if(NOR_SPI_USE_SECOND_DATAPATH) + #define NOR_SPI_AUX_CONTROL_DP1_REG (* (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u1__DP_AUX_CTL_REG) + #define NOR_SPI_AUX_CONTROL_DP1_PTR ( (reg8 *) \ + NOR_SPI_BSPIM_sR8_Dp_u1__DP_AUX_CTL_REG) +#endif /* (NOR_SPI_USE_SECOND_DATAPATH) */ + +#define NOR_SPI_COUNTER_PERIOD_REG (* (reg8 *) NOR_SPI_BSPIM_BitCounter__PERIOD_REG) +#define NOR_SPI_COUNTER_PERIOD_PTR ( (reg8 *) NOR_SPI_BSPIM_BitCounter__PERIOD_REG) +#define NOR_SPI_COUNTER_CONTROL_REG (* (reg8 *) NOR_SPI_BSPIM_BitCounter__CONTROL_AUX_CTL_REG) +#define NOR_SPI_COUNTER_CONTROL_PTR ( (reg8 *) NOR_SPI_BSPIM_BitCounter__CONTROL_AUX_CTL_REG) + +#define NOR_SPI_TX_STATUS_REG (* (reg8 *) NOR_SPI_BSPIM_TxStsReg__STATUS_REG) +#define NOR_SPI_TX_STATUS_PTR ( (reg8 *) NOR_SPI_BSPIM_TxStsReg__STATUS_REG) +#define NOR_SPI_RX_STATUS_REG (* (reg8 *) NOR_SPI_BSPIM_RxStsReg__STATUS_REG) +#define NOR_SPI_RX_STATUS_PTR ( (reg8 *) NOR_SPI_BSPIM_RxStsReg__STATUS_REG) + +#define NOR_SPI_CONTROL_REG (* (reg8 *) \ + NOR_SPI_BSPIM_BidirMode_CtrlReg__CONTROL_REG) +#define NOR_SPI_CONTROL_PTR ( (reg8 *) \ + NOR_SPI_BSPIM_BidirMode_CtrlReg__CONTROL_REG) + +#define NOR_SPI_TX_STATUS_MASK_REG (* (reg8 *) NOR_SPI_BSPIM_TxStsReg__MASK_REG) +#define NOR_SPI_TX_STATUS_MASK_PTR ( (reg8 *) NOR_SPI_BSPIM_TxStsReg__MASK_REG) +#define NOR_SPI_RX_STATUS_MASK_REG (* (reg8 *) NOR_SPI_BSPIM_RxStsReg__MASK_REG) +#define NOR_SPI_RX_STATUS_MASK_PTR ( (reg8 *) NOR_SPI_BSPIM_RxStsReg__MASK_REG) + +#define NOR_SPI_TX_STATUS_ACTL_REG (* (reg8 *) NOR_SPI_BSPIM_TxStsReg__STATUS_AUX_CTL_REG) +#define NOR_SPI_TX_STATUS_ACTL_PTR ( (reg8 *) NOR_SPI_BSPIM_TxStsReg__STATUS_AUX_CTL_REG) +#define NOR_SPI_RX_STATUS_ACTL_REG (* (reg8 *) NOR_SPI_BSPIM_RxStsReg__STATUS_AUX_CTL_REG) +#define NOR_SPI_RX_STATUS_ACTL_PTR ( (reg8 *) NOR_SPI_BSPIM_RxStsReg__STATUS_AUX_CTL_REG) + +#if(NOR_SPI_USE_SECOND_DATAPATH) + #define NOR_SPI_AUX_CONTROLDP1 (NOR_SPI_AUX_CONTROL_DP1_REG) +#endif /* (NOR_SPI_USE_SECOND_DATAPATH) */ + + +/*************************************** +* Register Constants +***************************************/ + +/* Status Register Definitions */ +#define NOR_SPI_STS_SPI_DONE_SHIFT (0x00u) +#define NOR_SPI_STS_TX_FIFO_EMPTY_SHIFT (0x01u) +#define NOR_SPI_STS_TX_FIFO_NOT_FULL_SHIFT (0x02u) +#define NOR_SPI_STS_BYTE_COMPLETE_SHIFT (0x03u) +#define NOR_SPI_STS_SPI_IDLE_SHIFT (0x04u) +#define NOR_SPI_STS_RX_FIFO_FULL_SHIFT (0x04u) +#define NOR_SPI_STS_RX_FIFO_NOT_EMPTY_SHIFT (0x05u) +#define NOR_SPI_STS_RX_FIFO_OVERRUN_SHIFT (0x06u) + +#define NOR_SPI_STS_SPI_DONE ((uint8) (0x01u << NOR_SPI_STS_SPI_DONE_SHIFT)) +#define NOR_SPI_STS_TX_FIFO_EMPTY ((uint8) (0x01u << NOR_SPI_STS_TX_FIFO_EMPTY_SHIFT)) +#define NOR_SPI_STS_TX_FIFO_NOT_FULL ((uint8) (0x01u << NOR_SPI_STS_TX_FIFO_NOT_FULL_SHIFT)) +#define NOR_SPI_STS_BYTE_COMPLETE ((uint8) (0x01u << NOR_SPI_STS_BYTE_COMPLETE_SHIFT)) +#define NOR_SPI_STS_SPI_IDLE ((uint8) (0x01u << NOR_SPI_STS_SPI_IDLE_SHIFT)) +#define NOR_SPI_STS_RX_FIFO_FULL ((uint8) (0x01u << NOR_SPI_STS_RX_FIFO_FULL_SHIFT)) +#define NOR_SPI_STS_RX_FIFO_NOT_EMPTY ((uint8) (0x01u << NOR_SPI_STS_RX_FIFO_NOT_EMPTY_SHIFT)) +#define NOR_SPI_STS_RX_FIFO_OVERRUN ((uint8) (0x01u << NOR_SPI_STS_RX_FIFO_OVERRUN_SHIFT)) + +/* TX and RX masks for clear on read bits */ +#define NOR_SPI_TX_STS_CLR_ON_RD_BYTES_MASK (0x09u) +#define NOR_SPI_RX_STS_CLR_ON_RD_BYTES_MASK (0x40u) + +/* StatusI Register Interrupt Enable Control Bits */ +/* As defined by the Register map for the AUX Control Register */ +#define NOR_SPI_INT_ENABLE (0x10u) /* Enable interrupt from statusi */ +#define NOR_SPI_TX_FIFO_CLR (0x01u) /* F0 - TX FIFO */ +#define NOR_SPI_RX_FIFO_CLR (0x02u) /* F1 - RX FIFO */ +#define NOR_SPI_FIFO_CLR (NOR_SPI_TX_FIFO_CLR | NOR_SPI_RX_FIFO_CLR) + +/* Bit Counter (7-bit) Control Register Bit Definitions */ +/* As defined by the Register map for the AUX Control Register */ +#define NOR_SPI_CNTR_ENABLE (0x20u) /* Enable CNT7 */ + +/* Bi-Directional mode control bit */ +#define NOR_SPI_CTRL_TX_SIGNAL_EN (0x01u) + +/* Datapath Auxillary Control Register definitions */ +#define NOR_SPI_AUX_CTRL_FIFO0_CLR (0x01u) +#define NOR_SPI_AUX_CTRL_FIFO1_CLR (0x02u) +#define NOR_SPI_AUX_CTRL_FIFO0_LVL (0x04u) +#define NOR_SPI_AUX_CTRL_FIFO1_LVL (0x08u) +#define NOR_SPI_STATUS_ACTL_INT_EN_MASK (0x10u) + +/* Component disabled */ +#define NOR_SPI_DISABLED (0u) + + +/*************************************** +* Macros +***************************************/ + +/* Returns true if componentn enabled */ +#define NOR_SPI_IS_ENABLED (0u != (NOR_SPI_TX_STATUS_ACTL_REG & NOR_SPI_INT_ENABLE)) + +/* Retuns TX status register */ +#define NOR_SPI_GET_STATUS_TX(swTxSts) ( (uint8)(NOR_SPI_TX_STATUS_REG | \ + ((swTxSts) & NOR_SPI_TX_STS_CLR_ON_RD_BYTES_MASK)) ) +/* Retuns RX status register */ +#define NOR_SPI_GET_STATUS_RX(swRxSts) ( (uint8)(NOR_SPI_RX_STATUS_REG | \ + ((swRxSts) & NOR_SPI_RX_STS_CLR_ON_RD_BYTES_MASK)) ) + + +/*************************************** +* The following code is DEPRECATED and +* should not be used in new projects. +***************************************/ + +#define NOR_SPI_WriteByte NOR_SPI_WriteTxData +#define NOR_SPI_ReadByte NOR_SPI_ReadRxData +void NOR_SPI_SetInterruptMode(uint8 intSrc) ; +uint8 NOR_SPI_ReadStatus(void) ; +void NOR_SPI_EnableInt(void) ; +void NOR_SPI_DisableInt(void) ; + +#define NOR_SPI_TXDATA (NOR_SPI_TXDATA_REG) +#define NOR_SPI_RXDATA (NOR_SPI_RXDATA_REG) +#define NOR_SPI_AUX_CONTROLDP0 (NOR_SPI_AUX_CONTROL_DP0_REG) +#define NOR_SPI_TXBUFFERREAD (NOR_SPI_txBufferRead) +#define NOR_SPI_TXBUFFERWRITE (NOR_SPI_txBufferWrite) +#define NOR_SPI_RXBUFFERREAD (NOR_SPI_rxBufferRead) +#define NOR_SPI_RXBUFFERWRITE (NOR_SPI_rxBufferWrite) + +#define NOR_SPI_COUNTER_PERIOD (NOR_SPI_COUNTER_PERIOD_REG) +#define NOR_SPI_COUNTER_CONTROL (NOR_SPI_COUNTER_CONTROL_REG) +#define NOR_SPI_STATUS (NOR_SPI_TX_STATUS_REG) +#define NOR_SPI_CONTROL (NOR_SPI_CONTROL_REG) +#define NOR_SPI_STATUS_MASK (NOR_SPI_TX_STATUS_MASK_REG) +#define NOR_SPI_STATUS_ACTL (NOR_SPI_TX_STATUS_ACTL_REG) + +#define NOR_SPI_INIT_INTERRUPTS_MASK (NOR_SPI_INT_ON_SPI_DONE | \ + NOR_SPI_INT_ON_TX_EMPTY | \ + NOR_SPI_INT_ON_TX_NOT_FULL_DEF | \ + NOR_SPI_INT_ON_RX_FULL | \ + NOR_SPI_INT_ON_RX_NOT_EMPTY | \ + NOR_SPI_INT_ON_RX_OVER | \ + NOR_SPI_INT_ON_BYTE_COMP) + +#define NOR_SPI_DataWidth (NOR_SPI_DATA_WIDTH) +#define NOR_SPI_InternalClockUsed (NOR_SPI_INTERNAL_CLOCK) +#define NOR_SPI_InternalTxInterruptEnabled (NOR_SPI_INTERNAL_TX_INT_ENABLED) +#define NOR_SPI_InternalRxInterruptEnabled (NOR_SPI_INTERNAL_RX_INT_ENABLED) +#define NOR_SPI_ModeUseZero (NOR_SPI_MODE_USE_ZERO) +#define NOR_SPI_BidirectionalMode (NOR_SPI_BIDIRECTIONAL_MODE) +#define NOR_SPI_Mode (NOR_SPI_MODE) +#define NOR_SPI_DATAWIDHT (NOR_SPI_DATA_WIDTH) +#define NOR_SPI_InternalInterruptEnabled (0u) + +#define NOR_SPI_TXBUFFERSIZE (NOR_SPI_TX_BUFFER_SIZE) +#define NOR_SPI_RXBUFFERSIZE (NOR_SPI_RX_BUFFER_SIZE) + +#define NOR_SPI_TXBUFFER NOR_SPI_txBuffer +#define NOR_SPI_RXBUFFER NOR_SPI_rxBuffer + +#endif /* (CY_SPIM_NOR_SPI_H) */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_INT.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_INT.c new file mode 100644 index 0000000..05fa53b --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_INT.c @@ -0,0 +1,206 @@ +/******************************************************************************* +* File Name: NOR_SPI_INT.c +* Version 2.50 +* +* Description: +* This file provides all Interrupt Service Routine (ISR) for the SPI Master +* component. +* +* Note: +* None. +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "NOR_SPI_PVT.h" + + +/* User code required at start of ISR */ +/* `#START NOR_SPI_ISR_START_DEF` */ + +/* `#END` */ + + +/******************************************************************************* +* Function Name: NOR_SPI_TX_ISR +******************************************************************************** +* +* Summary: +* Interrupt Service Routine for TX portion of the SPI Master. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Global variables: +* NOR_SPI_txBufferWrite - used for the account of the bytes which +* have been written down in the TX software buffer. +* NOR_SPI_txBufferRead - used for the account of the bytes which +* have been read from the TX software buffer, modified when exist data to +* sending and FIFO Not Full. +* NOR_SPI_txBuffer[NOR_SPI_TX_BUFFER_SIZE] - used to store +* data to sending. +* All described above Global variables are used when Software Buffer is used. +* +*******************************************************************************/ +CY_ISR(NOR_SPI_TX_ISR) +{ + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + uint8 tmpStatus; + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + + #ifdef NOR_SPI_TX_ISR_ENTRY_CALLBACK + NOR_SPI_TX_ISR_EntryCallback(); + #endif /* NOR_SPI_TX_ISR_ENTRY_CALLBACK */ + + /* User code required at start of ISR */ + /* `#START NOR_SPI_TX_ISR_START` */ + + /* `#END` */ + + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + /* Check if TX data buffer is not empty and there is space in TX FIFO */ + while(NOR_SPI_txBufferRead != NOR_SPI_txBufferWrite) + { + tmpStatus = NOR_SPI_GET_STATUS_TX(NOR_SPI_swStatusTx); + NOR_SPI_swStatusTx = tmpStatus; + + if(0u != (NOR_SPI_swStatusTx & NOR_SPI_STS_TX_FIFO_NOT_FULL)) + { + if(0u == NOR_SPI_txBufferFull) + { + NOR_SPI_txBufferRead++; + + if(NOR_SPI_txBufferRead >= NOR_SPI_TX_BUFFER_SIZE) + { + NOR_SPI_txBufferRead = 0u; + } + } + else + { + NOR_SPI_txBufferFull = 0u; + } + + /* Put data element into the TX FIFO */ + CY_SET_REG8(NOR_SPI_TXDATA_PTR, + NOR_SPI_txBuffer[NOR_SPI_txBufferRead]); + } + else + { + break; + } + } + + if(NOR_SPI_txBufferRead == NOR_SPI_txBufferWrite) + { + /* TX Buffer is EMPTY: disable interrupt on TX NOT FULL */ + NOR_SPI_TX_STATUS_MASK_REG &= ((uint8) ~NOR_SPI_STS_TX_FIFO_NOT_FULL); + } + + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + + /* User code required at end of ISR (Optional) */ + /* `#START NOR_SPI_TX_ISR_END` */ + + /* `#END` */ + + #ifdef NOR_SPI_TX_ISR_EXIT_CALLBACK + NOR_SPI_TX_ISR_ExitCallback(); + #endif /* NOR_SPI_TX_ISR_EXIT_CALLBACK */ +} + + +/******************************************************************************* +* Function Name: NOR_SPI_RX_ISR +******************************************************************************** +* +* Summary: +* Interrupt Service Routine for RX portion of the SPI Master. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Global variables: +* NOR_SPI_rxBufferWrite - used for the account of the bytes which +* have been written down in the RX software buffer modified when FIFO contains +* new data. +* NOR_SPI_rxBufferRead - used for the account of the bytes which +* have been read from the RX software buffer, modified when overflow occurred. +* NOR_SPI_rxBuffer[NOR_SPI_RX_BUFFER_SIZE] - used to store +* received data, modified when FIFO contains new data. +* All described above Global variables are used when Software Buffer is used. +* +*******************************************************************************/ +CY_ISR(NOR_SPI_RX_ISR) +{ + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + uint8 tmpStatus; + uint8 rxData; + #endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + + #ifdef NOR_SPI_RX_ISR_ENTRY_CALLBACK + NOR_SPI_RX_ISR_EntryCallback(); + #endif /* NOR_SPI_RX_ISR_ENTRY_CALLBACK */ + + /* User code required at start of ISR */ + /* `#START NOR_SPI_RX_ISR_START` */ + + /* `#END` */ + + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + + tmpStatus = NOR_SPI_GET_STATUS_RX(NOR_SPI_swStatusRx); + NOR_SPI_swStatusRx = tmpStatus; + + /* Check if RX data FIFO has some data to be moved into the RX Buffer */ + while(0u != (NOR_SPI_swStatusRx & NOR_SPI_STS_RX_FIFO_NOT_EMPTY)) + { + rxData = CY_GET_REG8(NOR_SPI_RXDATA_PTR); + + /* Set next pointer. */ + NOR_SPI_rxBufferWrite++; + if(NOR_SPI_rxBufferWrite >= NOR_SPI_RX_BUFFER_SIZE) + { + NOR_SPI_rxBufferWrite = 0u; + } + + if(NOR_SPI_rxBufferWrite == NOR_SPI_rxBufferRead) + { + NOR_SPI_rxBufferRead++; + if(NOR_SPI_rxBufferRead >= NOR_SPI_RX_BUFFER_SIZE) + { + NOR_SPI_rxBufferRead = 0u; + } + + NOR_SPI_rxBufferFull = 1u; + } + + /* Move data from the FIFO to the Buffer */ + NOR_SPI_rxBuffer[NOR_SPI_rxBufferWrite] = rxData; + + tmpStatus = NOR_SPI_GET_STATUS_RX(NOR_SPI_swStatusRx); + NOR_SPI_swStatusRx = tmpStatus; + } + + #endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + + /* User code required at end of ISR (Optional) */ + /* `#START NOR_SPI_RX_ISR_END` */ + + /* `#END` */ + + #ifdef NOR_SPI_RX_ISR_EXIT_CALLBACK + NOR_SPI_RX_ISR_ExitCallback(); + #endif /* NOR_SPI_RX_ISR_EXIT_CALLBACK */ +} + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PM.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PM.c new file mode 100644 index 0000000..c8e5ca1 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PM.c @@ -0,0 +1,149 @@ +/******************************************************************************* +* File Name: NOR_SPI_PM.c +* Version 2.50 +* +* Description: +* This file contains the setup, control and status commands to support +* component operations in low power mode. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "NOR_SPI_PVT.h" + +static NOR_SPI_BACKUP_STRUCT NOR_SPI_backup = +{ + NOR_SPI_DISABLED, + NOR_SPI_BITCTR_INIT, +}; + + +/******************************************************************************* +* Function Name: NOR_SPI_SaveConfig +******************************************************************************** +* +* Summary: +* Empty function. Included for consistency with other components. +* +* Parameters: +* None. +* +* Return: +* None. +* +*******************************************************************************/ +void NOR_SPI_SaveConfig(void) +{ + +} + + +/******************************************************************************* +* Function Name: NOR_SPI_RestoreConfig +******************************************************************************** +* +* Summary: +* Empty function. Included for consistency with other components. +* +* Parameters: +* None. +* +* Return: +* None. +* +*******************************************************************************/ +void NOR_SPI_RestoreConfig(void) +{ + +} + + +/******************************************************************************* +* Function Name: NOR_SPI_Sleep +******************************************************************************** +* +* Summary: +* Prepare SPIM Component goes to sleep. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Global Variables: +* NOR_SPI_backup - modified when non-retention registers are saved. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_Sleep(void) +{ + /* Save components enable state */ + NOR_SPI_backup.enableState = ((uint8) NOR_SPI_IS_ENABLED); + + NOR_SPI_Stop(); +} + + +/******************************************************************************* +* Function Name: NOR_SPI_Wakeup +******************************************************************************** +* +* Summary: +* Prepare SPIM Component to wake up. +* +* Parameters: +* None. +* +* Return: +* None. +* +* Global Variables: +* NOR_SPI_backup - used when non-retention registers are restored. +* NOR_SPI_txBufferWrite - modified every function call - resets to +* zero. +* NOR_SPI_txBufferRead - modified every function call - resets to +* zero. +* NOR_SPI_rxBufferWrite - modified every function call - resets to +* zero. +* NOR_SPI_rxBufferRead - modified every function call - resets to +* zero. +* +* Reentrant: +* No. +* +*******************************************************************************/ +void NOR_SPI_Wakeup(void) +{ + #if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + NOR_SPI_rxBufferFull = 0u; + NOR_SPI_rxBufferRead = 0u; + NOR_SPI_rxBufferWrite = 0u; + #endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + + #if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + NOR_SPI_txBufferFull = 0u; + NOR_SPI_txBufferRead = 0u; + NOR_SPI_txBufferWrite = 0u; + #endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + + /* Clear any data from the RX and TX FIFO */ + NOR_SPI_ClearFIFO(); + + /* Restore components block enable state */ + if(0u != NOR_SPI_backup.enableState) + { + NOR_SPI_Enable(); + } +} + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PVT.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PVT.h new file mode 100644 index 0000000..392c7ad --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/NOR_SPI_PVT.h @@ -0,0 +1,53 @@ +/******************************************************************************* +* File Name: .h +* Version 2.50 +* +* Description: +* This private header file contains internal definitions for the SPIM +* component. Do not use these definitions directly in your application. +* +* Note: +* +******************************************************************************** +* Copyright 2012-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_SPIM_PVT_NOR_SPI_H) +#define CY_SPIM_PVT_NOR_SPI_H + +#include "NOR_SPI.h" + + +/********************************** +* Functions with external linkage +**********************************/ + + +/********************************** +* Variables with external linkage +**********************************/ + +extern volatile uint8 NOR_SPI_swStatusTx; +extern volatile uint8 NOR_SPI_swStatusRx; + +#if(NOR_SPI_TX_SOFTWARE_BUF_ENABLED) + extern volatile uint8 NOR_SPI_txBuffer[NOR_SPI_TX_BUFFER_SIZE]; + extern volatile uint8 NOR_SPI_txBufferRead; + extern volatile uint8 NOR_SPI_txBufferWrite; + extern volatile uint8 NOR_SPI_txBufferFull; +#endif /* (NOR_SPI_TX_SOFTWARE_BUF_ENABLED) */ + +#if(NOR_SPI_RX_SOFTWARE_BUF_ENABLED) + extern volatile uint8 NOR_SPI_rxBuffer[NOR_SPI_RX_BUFFER_SIZE]; + extern volatile uint8 NOR_SPI_rxBufferRead; + extern volatile uint8 NOR_SPI_rxBufferWrite; + extern volatile uint8 NOR_SPI_rxBufferFull; +#endif /* (NOR_SPI_RX_SOFTWARE_BUF_ENABLED) */ + +#endif /* CY_SPIM_PVT_NOR_SPI_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter.h index c917e54..6704c4a 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter.h +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter.h @@ -355,33 +355,101 @@ #define USBFS_USB__USBIO_CR0 CYREG_USB_USBIO_CR0 #define USBFS_USB__USBIO_CR1 CYREG_USB_USBIO_CR1 +/* NOR_SI */ +#define NOR_SI__0__INTTYPE CYREG_PICU3_INTTYPE6 +#define NOR_SI__0__MASK 0x40u +#define NOR_SI__0__PC CYREG_PRT3_PC6 +#define NOR_SI__0__PORT 3u +#define NOR_SI__0__SHIFT 6u +#define NOR_SI__AG CYREG_PRT3_AG +#define NOR_SI__AMUX CYREG_PRT3_AMUX +#define NOR_SI__BIE CYREG_PRT3_BIE +#define NOR_SI__BIT_MASK CYREG_PRT3_BIT_MASK +#define NOR_SI__BYP CYREG_PRT3_BYP +#define NOR_SI__CTL CYREG_PRT3_CTL +#define NOR_SI__DM0 CYREG_PRT3_DM0 +#define NOR_SI__DM1 CYREG_PRT3_DM1 +#define NOR_SI__DM2 CYREG_PRT3_DM2 +#define NOR_SI__DR CYREG_PRT3_DR +#define NOR_SI__INP_DIS CYREG_PRT3_INP_DIS +#define NOR_SI__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU3_BASE +#define NOR_SI__LCD_COM_SEG CYREG_PRT3_LCD_COM_SEG +#define NOR_SI__LCD_EN CYREG_PRT3_LCD_EN +#define NOR_SI__MASK 0x40u +#define NOR_SI__PORT 3u +#define NOR_SI__PRT CYREG_PRT3_PRT +#define NOR_SI__PRTDSI__CAPS_SEL CYREG_PRT3_CAPS_SEL +#define NOR_SI__PRTDSI__DBL_SYNC_IN CYREG_PRT3_DBL_SYNC_IN +#define NOR_SI__PRTDSI__OE_SEL0 CYREG_PRT3_OE_SEL0 +#define NOR_SI__PRTDSI__OE_SEL1 CYREG_PRT3_OE_SEL1 +#define NOR_SI__PRTDSI__OUT_SEL0 CYREG_PRT3_OUT_SEL0 +#define NOR_SI__PRTDSI__OUT_SEL1 CYREG_PRT3_OUT_SEL1 +#define NOR_SI__PRTDSI__SYNC_OUT CYREG_PRT3_SYNC_OUT +#define NOR_SI__PS CYREG_PRT3_PS +#define NOR_SI__SHIFT 6u +#define NOR_SI__SLW CYREG_PRT3_SLW + +/* NOR_SO */ +#define NOR_SO__0__INTTYPE CYREG_PICU15_INTTYPE2 +#define NOR_SO__0__MASK 0x04u +#define NOR_SO__0__PC CYREG_IO_PC_PRT15_PC2 +#define NOR_SO__0__PORT 15u +#define NOR_SO__0__SHIFT 2u +#define NOR_SO__AG CYREG_PRT15_AG +#define NOR_SO__AMUX CYREG_PRT15_AMUX +#define NOR_SO__BIE CYREG_PRT15_BIE +#define NOR_SO__BIT_MASK CYREG_PRT15_BIT_MASK +#define NOR_SO__BYP CYREG_PRT15_BYP +#define NOR_SO__CTL CYREG_PRT15_CTL +#define NOR_SO__DM0 CYREG_PRT15_DM0 +#define NOR_SO__DM1 CYREG_PRT15_DM1 +#define NOR_SO__DM2 CYREG_PRT15_DM2 +#define NOR_SO__DR CYREG_PRT15_DR +#define NOR_SO__INP_DIS CYREG_PRT15_INP_DIS +#define NOR_SO__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU15_BASE +#define NOR_SO__LCD_COM_SEG CYREG_PRT15_LCD_COM_SEG +#define NOR_SO__LCD_EN CYREG_PRT15_LCD_EN +#define NOR_SO__MASK 0x04u +#define NOR_SO__PORT 15u +#define NOR_SO__PRT CYREG_PRT15_PRT +#define NOR_SO__PRTDSI__CAPS_SEL CYREG_PRT15_CAPS_SEL +#define NOR_SO__PRTDSI__DBL_SYNC_IN CYREG_PRT15_DBL_SYNC_IN +#define NOR_SO__PRTDSI__OE_SEL0 CYREG_PRT15_OE_SEL0 +#define NOR_SO__PRTDSI__OE_SEL1 CYREG_PRT15_OE_SEL1 +#define NOR_SO__PRTDSI__OUT_SEL0 CYREG_PRT15_OUT_SEL0 +#define NOR_SO__PRTDSI__OUT_SEL1 CYREG_PRT15_OUT_SEL1 +#define NOR_SO__PRTDSI__SYNC_OUT CYREG_PRT15_SYNC_OUT +#define NOR_SO__PS CYREG_PRT15_PS +#define NOR_SO__SHIFT 2u +#define NOR_SO__SLW CYREG_PRT15_SLW + /* SDCard */ -#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG CYREG_B1_UDB04_05_ACTL -#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG CYREG_B1_UDB04_05_CTL -#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG CYREG_B1_UDB04_05_CTL -#define SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG CYREG_B1_UDB04_05_CTL -#define SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG CYREG_B1_UDB04_05_CTL -#define SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG CYREG_B1_UDB04_05_MSK -#define SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG CYREG_B1_UDB04_05_MSK -#define SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG CYREG_B1_UDB04_05_MSK -#define SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG CYREG_B1_UDB04_05_MSK -#define SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG CYREG_B1_UDB04_ACTL -#define SDCard_BSPIM_BitCounter__CONTROL_REG CYREG_B1_UDB04_CTL -#define SDCard_BSPIM_BitCounter__CONTROL_ST_REG CYREG_B1_UDB04_ST_CTL -#define SDCard_BSPIM_BitCounter__COUNT_REG CYREG_B1_UDB04_CTL -#define SDCard_BSPIM_BitCounter__COUNT_ST_REG CYREG_B1_UDB04_ST_CTL -#define SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG CYREG_B1_UDB04_MSK_ACTL -#define SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG CYREG_B1_UDB04_MSK_ACTL -#define SDCard_BSPIM_BitCounter__PERIOD_REG CYREG_B1_UDB04_MSK -#define SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB04_05_ACTL -#define SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG CYREG_B1_UDB04_05_ST -#define SDCard_BSPIM_BitCounter_ST__MASK_REG CYREG_B1_UDB04_MSK -#define SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG CYREG_B1_UDB04_MSK_ACTL -#define SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG CYREG_B1_UDB04_MSK_ACTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG CYREG_B1_UDB04_ACTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG CYREG_B1_UDB04_ST_CTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG CYREG_B1_UDB04_ST_CTL -#define SDCard_BSPIM_BitCounter_ST__STATUS_REG CYREG_B1_UDB04_ST +#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG CYREG_B1_UDB05_06_ACTL +#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG CYREG_B1_UDB05_06_CTL +#define SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG CYREG_B1_UDB05_06_CTL +#define SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG CYREG_B1_UDB05_06_CTL +#define SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG CYREG_B1_UDB05_06_CTL +#define SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG CYREG_B1_UDB05_06_MSK +#define SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG CYREG_B1_UDB05_06_MSK +#define SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG CYREG_B1_UDB05_06_MSK +#define SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG CYREG_B1_UDB05_06_MSK +#define SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG CYREG_B1_UDB05_ACTL +#define SDCard_BSPIM_BitCounter__CONTROL_REG CYREG_B1_UDB05_CTL +#define SDCard_BSPIM_BitCounter__CONTROL_ST_REG CYREG_B1_UDB05_ST_CTL +#define SDCard_BSPIM_BitCounter__COUNT_REG CYREG_B1_UDB05_CTL +#define SDCard_BSPIM_BitCounter__COUNT_ST_REG CYREG_B1_UDB05_ST_CTL +#define SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG CYREG_B1_UDB05_MSK_ACTL +#define SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG CYREG_B1_UDB05_MSK_ACTL +#define SDCard_BSPIM_BitCounter__PERIOD_REG CYREG_B1_UDB05_MSK +#define SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB05_06_ACTL +#define SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG CYREG_B1_UDB05_06_ST +#define SDCard_BSPIM_BitCounter_ST__MASK_REG CYREG_B1_UDB05_MSK +#define SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG CYREG_B1_UDB05_MSK_ACTL +#define SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG CYREG_B1_UDB05_MSK_ACTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG CYREG_B1_UDB05_ACTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG CYREG_B1_UDB05_ST_CTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG CYREG_B1_UDB05_ST_CTL +#define SDCard_BSPIM_BitCounter_ST__STATUS_REG CYREG_B1_UDB05_ST #define SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB06_07_ACTL #define SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG CYREG_B1_UDB06_07_ST #define SDCard_BSPIM_RxStsReg__4__MASK 0x10u @@ -392,7 +460,11 @@ #define SDCard_BSPIM_RxStsReg__6__POS 6 #define SDCard_BSPIM_RxStsReg__MASK 0x70u #define SDCard_BSPIM_RxStsReg__MASK_REG CYREG_B1_UDB06_MSK +#define SDCard_BSPIM_RxStsReg__MASK_ST_AUX_CTL_REG CYREG_B1_UDB06_MSK_ACTL +#define SDCard_BSPIM_RxStsReg__PER_ST_AUX_CTL_REG CYREG_B1_UDB06_MSK_ACTL #define SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG CYREG_B1_UDB06_ACTL +#define SDCard_BSPIM_RxStsReg__STATUS_CNT_REG CYREG_B1_UDB06_ST_CTL +#define SDCard_BSPIM_RxStsReg__STATUS_CONTROL_REG CYREG_B1_UDB06_ST_CTL #define SDCard_BSPIM_RxStsReg__STATUS_REG CYREG_B1_UDB06_ST #define SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG CYREG_B1_UDB04_05_A0 #define SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG CYREG_B1_UDB04_05_A1 @@ -411,14 +483,12 @@ #define SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG CYREG_B1_UDB04_F0_F1 #define SDCard_BSPIM_sR8_Dp_u0__F0_REG CYREG_B1_UDB04_F0 #define SDCard_BSPIM_sR8_Dp_u0__F1_REG CYREG_B1_UDB04_F1 -#define SDCard_BSPIM_sR8_Dp_u0__MSK_DP_AUX_CTL_REG CYREG_B1_UDB04_MSK_ACTL -#define SDCard_BSPIM_sR8_Dp_u0__PER_DP_AUX_CTL_REG CYREG_B1_UDB04_MSK_ACTL #define SDCard_BSPIM_TxStsReg__0__MASK 0x01u #define SDCard_BSPIM_TxStsReg__0__POS 0 #define SDCard_BSPIM_TxStsReg__1__MASK 0x02u #define SDCard_BSPIM_TxStsReg__1__POS 1 -#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB07_08_ACTL -#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG CYREG_B1_UDB07_08_ST +#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB06_07_ACTL +#define SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG CYREG_B0_UDB06_07_ST #define SDCard_BSPIM_TxStsReg__2__MASK 0x04u #define SDCard_BSPIM_TxStsReg__2__POS 2 #define SDCard_BSPIM_TxStsReg__3__MASK 0x08u @@ -426,9 +496,9 @@ #define SDCard_BSPIM_TxStsReg__4__MASK 0x10u #define SDCard_BSPIM_TxStsReg__4__POS 4 #define SDCard_BSPIM_TxStsReg__MASK 0x1Fu -#define SDCard_BSPIM_TxStsReg__MASK_REG CYREG_B1_UDB07_MSK -#define SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG CYREG_B1_UDB07_ACTL -#define SDCard_BSPIM_TxStsReg__STATUS_REG CYREG_B1_UDB07_ST +#define SDCard_BSPIM_TxStsReg__MASK_REG CYREG_B0_UDB06_MSK +#define SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG CYREG_B0_UDB06_ACTL +#define SDCard_BSPIM_TxStsReg__STATUS_REG CYREG_B0_UDB06_ST /* SD_SCK */ #define SD_SCK__0__INTTYPE CYREG_PICU3_INTTYPE1 @@ -464,6 +534,137 @@ #define SD_SCK__SHIFT 1u #define SD_SCK__SLW CYREG_PRT3_SLW +/* NOR_CTL */ +#define NOR_CTL_Sync_ctrl_reg__0__MASK 0x01u +#define NOR_CTL_Sync_ctrl_reg__0__POS 0 +#define NOR_CTL_Sync_ctrl_reg__1__MASK 0x02u +#define NOR_CTL_Sync_ctrl_reg__1__POS 1 +#define NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B1_UDB06_07_ACTL +#define NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B1_UDB06_07_CTL +#define NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B1_UDB06_07_CTL +#define NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B1_UDB06_07_CTL +#define NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B1_UDB06_07_CTL +#define NOR_CTL_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B1_UDB06_07_MSK +#define NOR_CTL_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B1_UDB06_07_MSK +#define NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B1_UDB06_07_MSK +#define NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B1_UDB06_07_MSK +#define NOR_CTL_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B1_UDB06_ACTL +#define NOR_CTL_Sync_ctrl_reg__CONTROL_REG CYREG_B1_UDB06_CTL +#define NOR_CTL_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B1_UDB06_ST_CTL +#define NOR_CTL_Sync_ctrl_reg__COUNT_REG CYREG_B1_UDB06_CTL +#define NOR_CTL_Sync_ctrl_reg__COUNT_ST_REG CYREG_B1_UDB06_ST_CTL +#define NOR_CTL_Sync_ctrl_reg__MASK 0x03u +#define NOR_CTL_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B1_UDB06_MSK_ACTL +#define NOR_CTL_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B1_UDB06_MSK_ACTL +#define NOR_CTL_Sync_ctrl_reg__PERIOD_REG CYREG_B1_UDB06_MSK + +/* NOR_SCK */ +#define NOR_SCK__0__INTTYPE CYREG_PICU3_INTTYPE7 +#define NOR_SCK__0__MASK 0x80u +#define NOR_SCK__0__PC CYREG_PRT3_PC7 +#define NOR_SCK__0__PORT 3u +#define NOR_SCK__0__SHIFT 7u +#define NOR_SCK__AG CYREG_PRT3_AG +#define NOR_SCK__AMUX CYREG_PRT3_AMUX +#define NOR_SCK__BIE CYREG_PRT3_BIE +#define NOR_SCK__BIT_MASK CYREG_PRT3_BIT_MASK +#define NOR_SCK__BYP CYREG_PRT3_BYP +#define NOR_SCK__CTL CYREG_PRT3_CTL +#define NOR_SCK__DM0 CYREG_PRT3_DM0 +#define NOR_SCK__DM1 CYREG_PRT3_DM1 +#define NOR_SCK__DM2 CYREG_PRT3_DM2 +#define NOR_SCK__DR CYREG_PRT3_DR +#define NOR_SCK__INP_DIS CYREG_PRT3_INP_DIS +#define NOR_SCK__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU3_BASE +#define NOR_SCK__LCD_COM_SEG CYREG_PRT3_LCD_COM_SEG +#define NOR_SCK__LCD_EN CYREG_PRT3_LCD_EN +#define NOR_SCK__MASK 0x80u +#define NOR_SCK__PORT 3u +#define NOR_SCK__PRT CYREG_PRT3_PRT +#define NOR_SCK__PRTDSI__CAPS_SEL CYREG_PRT3_CAPS_SEL +#define NOR_SCK__PRTDSI__DBL_SYNC_IN CYREG_PRT3_DBL_SYNC_IN +#define NOR_SCK__PRTDSI__OE_SEL0 CYREG_PRT3_OE_SEL0 +#define NOR_SCK__PRTDSI__OE_SEL1 CYREG_PRT3_OE_SEL1 +#define NOR_SCK__PRTDSI__OUT_SEL0 CYREG_PRT3_OUT_SEL0 +#define NOR_SCK__PRTDSI__OUT_SEL1 CYREG_PRT3_OUT_SEL1 +#define NOR_SCK__PRTDSI__SYNC_OUT CYREG_PRT3_SYNC_OUT +#define NOR_SCK__PS CYREG_PRT3_PS +#define NOR_SCK__SHIFT 7u +#define NOR_SCK__SLW CYREG_PRT3_SLW + +/* NOR_SPI */ +#define NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB08_09_ACTL +#define NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB08_09_CTL +#define NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB08_09_CTL +#define NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB08_09_CTL +#define NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG CYREG_B0_UDB08_09_CTL +#define NOR_SPI_BSPIM_BitCounter__16BIT_MASK_MASK_REG CYREG_B0_UDB08_09_MSK +#define NOR_SPI_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG CYREG_B0_UDB08_09_MSK +#define NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG CYREG_B0_UDB08_09_MSK +#define NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB08_09_MSK +#define NOR_SPI_BSPIM_BitCounter__CONTROL_AUX_CTL_REG CYREG_B0_UDB08_ACTL +#define NOR_SPI_BSPIM_BitCounter__CONTROL_REG CYREG_B0_UDB08_CTL +#define NOR_SPI_BSPIM_BitCounter__CONTROL_ST_REG CYREG_B0_UDB08_ST_CTL +#define NOR_SPI_BSPIM_BitCounter__COUNT_REG CYREG_B0_UDB08_CTL +#define NOR_SPI_BSPIM_BitCounter__COUNT_ST_REG CYREG_B0_UDB08_ST_CTL +#define NOR_SPI_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB08_MSK_ACTL +#define NOR_SPI_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG CYREG_B0_UDB08_MSK_ACTL +#define NOR_SPI_BSPIM_BitCounter__PERIOD_REG CYREG_B0_UDB08_MSK +#define NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB08_09_ACTL +#define NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_REG CYREG_B0_UDB08_09_ST +#define NOR_SPI_BSPIM_BitCounter_ST__MASK_REG CYREG_B0_UDB08_MSK +#define NOR_SPI_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG CYREG_B0_UDB08_MSK_ACTL +#define NOR_SPI_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG CYREG_B0_UDB08_MSK_ACTL +#define NOR_SPI_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG CYREG_B0_UDB08_ACTL +#define NOR_SPI_BSPIM_BitCounter_ST__STATUS_CNT_REG CYREG_B0_UDB08_ST_CTL +#define NOR_SPI_BSPIM_BitCounter_ST__STATUS_CONTROL_REG CYREG_B0_UDB08_ST_CTL +#define NOR_SPI_BSPIM_BitCounter_ST__STATUS_REG CYREG_B0_UDB08_ST +#define NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B1_UDB08_09_ACTL +#define NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_REG CYREG_B1_UDB08_09_ST +#define NOR_SPI_BSPIM_RxStsReg__4__MASK 0x10u +#define NOR_SPI_BSPIM_RxStsReg__4__POS 4 +#define NOR_SPI_BSPIM_RxStsReg__5__MASK 0x20u +#define NOR_SPI_BSPIM_RxStsReg__5__POS 5 +#define NOR_SPI_BSPIM_RxStsReg__6__MASK 0x40u +#define NOR_SPI_BSPIM_RxStsReg__6__POS 6 +#define NOR_SPI_BSPIM_RxStsReg__MASK 0x70u +#define NOR_SPI_BSPIM_RxStsReg__MASK_REG CYREG_B1_UDB08_MSK +#define NOR_SPI_BSPIM_RxStsReg__STATUS_AUX_CTL_REG CYREG_B1_UDB08_ACTL +#define NOR_SPI_BSPIM_RxStsReg__STATUS_REG CYREG_B1_UDB08_ST +#define NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A0_REG CYREG_B0_UDB04_05_A0 +#define NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A1_REG CYREG_B0_UDB04_05_A1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D0_REG CYREG_B0_UDB04_05_D0 +#define NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D1_REG CYREG_B0_UDB04_05_D1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG CYREG_B0_UDB04_05_ACTL +#define NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F0_REG CYREG_B0_UDB04_05_F0 +#define NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F1_REG CYREG_B0_UDB04_05_F1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__A0_A1_REG CYREG_B0_UDB04_A0_A1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__A0_REG CYREG_B0_UDB04_A0 +#define NOR_SPI_BSPIM_sR8_Dp_u0__A1_REG CYREG_B0_UDB04_A1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__D0_D1_REG CYREG_B0_UDB04_D0_D1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__D0_REG CYREG_B0_UDB04_D0 +#define NOR_SPI_BSPIM_sR8_Dp_u0__D1_REG CYREG_B0_UDB04_D1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG CYREG_B0_UDB04_ACTL +#define NOR_SPI_BSPIM_sR8_Dp_u0__F0_F1_REG CYREG_B0_UDB04_F0_F1 +#define NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG CYREG_B0_UDB04_F0 +#define NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG CYREG_B0_UDB04_F1 +#define NOR_SPI_BSPIM_TxStsReg__0__MASK 0x01u +#define NOR_SPI_BSPIM_TxStsReg__0__POS 0 +#define NOR_SPI_BSPIM_TxStsReg__1__MASK 0x02u +#define NOR_SPI_BSPIM_TxStsReg__1__POS 1 +#define NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB07_08_ACTL +#define NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_REG CYREG_B0_UDB07_08_ST +#define NOR_SPI_BSPIM_TxStsReg__2__MASK 0x04u +#define NOR_SPI_BSPIM_TxStsReg__2__POS 2 +#define NOR_SPI_BSPIM_TxStsReg__3__MASK 0x08u +#define NOR_SPI_BSPIM_TxStsReg__3__POS 3 +#define NOR_SPI_BSPIM_TxStsReg__4__MASK 0x10u +#define NOR_SPI_BSPIM_TxStsReg__4__POS 4 +#define NOR_SPI_BSPIM_TxStsReg__MASK 0x1Fu +#define NOR_SPI_BSPIM_TxStsReg__MASK_REG CYREG_B0_UDB07_MSK +#define NOR_SPI_BSPIM_TxStsReg__STATUS_AUX_CTL_REG CYREG_B0_UDB07_ACTL +#define NOR_SPI_BSPIM_TxStsReg__STATUS_REG CYREG_B0_UDB07_ST + /* SCSI_In */ #define SCSI_In__0__INTTYPE CYREG_PICU6_INTTYPE1 #define SCSI_In__0__MASK 0x02u @@ -1051,16 +1252,84 @@ #define TERM_EN__SHIFT 3u #define TERM_EN__SLW CYREG_PRT15_SLW +/* nNOR_CS */ +#define nNOR_CS__0__INTTYPE CYREG_PICU3_INTTYPE4 +#define nNOR_CS__0__MASK 0x10u +#define nNOR_CS__0__PC CYREG_PRT3_PC4 +#define nNOR_CS__0__PORT 3u +#define nNOR_CS__0__SHIFT 4u +#define nNOR_CS__AG CYREG_PRT3_AG +#define nNOR_CS__AMUX CYREG_PRT3_AMUX +#define nNOR_CS__BIE CYREG_PRT3_BIE +#define nNOR_CS__BIT_MASK CYREG_PRT3_BIT_MASK +#define nNOR_CS__BYP CYREG_PRT3_BYP +#define nNOR_CS__CTL CYREG_PRT3_CTL +#define nNOR_CS__DM0 CYREG_PRT3_DM0 +#define nNOR_CS__DM1 CYREG_PRT3_DM1 +#define nNOR_CS__DM2 CYREG_PRT3_DM2 +#define nNOR_CS__DR CYREG_PRT3_DR +#define nNOR_CS__INP_DIS CYREG_PRT3_INP_DIS +#define nNOR_CS__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU3_BASE +#define nNOR_CS__LCD_COM_SEG CYREG_PRT3_LCD_COM_SEG +#define nNOR_CS__LCD_EN CYREG_PRT3_LCD_EN +#define nNOR_CS__MASK 0x10u +#define nNOR_CS__PORT 3u +#define nNOR_CS__PRT CYREG_PRT3_PRT +#define nNOR_CS__PRTDSI__CAPS_SEL CYREG_PRT3_CAPS_SEL +#define nNOR_CS__PRTDSI__DBL_SYNC_IN CYREG_PRT3_DBL_SYNC_IN +#define nNOR_CS__PRTDSI__OE_SEL0 CYREG_PRT3_OE_SEL0 +#define nNOR_CS__PRTDSI__OE_SEL1 CYREG_PRT3_OE_SEL1 +#define nNOR_CS__PRTDSI__OUT_SEL0 CYREG_PRT3_OUT_SEL0 +#define nNOR_CS__PRTDSI__OUT_SEL1 CYREG_PRT3_OUT_SEL1 +#define nNOR_CS__PRTDSI__SYNC_OUT CYREG_PRT3_SYNC_OUT +#define nNOR_CS__PS CYREG_PRT3_PS +#define nNOR_CS__SHIFT 4u +#define nNOR_CS__SLW CYREG_PRT3_SLW + +/* nNOR_WP */ +#define nNOR_WP__0__INTTYPE CYREG_PICU3_INTTYPE5 +#define nNOR_WP__0__MASK 0x20u +#define nNOR_WP__0__PC CYREG_PRT3_PC5 +#define nNOR_WP__0__PORT 3u +#define nNOR_WP__0__SHIFT 5u +#define nNOR_WP__AG CYREG_PRT3_AG +#define nNOR_WP__AMUX CYREG_PRT3_AMUX +#define nNOR_WP__BIE CYREG_PRT3_BIE +#define nNOR_WP__BIT_MASK CYREG_PRT3_BIT_MASK +#define nNOR_WP__BYP CYREG_PRT3_BYP +#define nNOR_WP__CTL CYREG_PRT3_CTL +#define nNOR_WP__DM0 CYREG_PRT3_DM0 +#define nNOR_WP__DM1 CYREG_PRT3_DM1 +#define nNOR_WP__DM2 CYREG_PRT3_DM2 +#define nNOR_WP__DR CYREG_PRT3_DR +#define nNOR_WP__INP_DIS CYREG_PRT3_INP_DIS +#define nNOR_WP__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU3_BASE +#define nNOR_WP__LCD_COM_SEG CYREG_PRT3_LCD_COM_SEG +#define nNOR_WP__LCD_EN CYREG_PRT3_LCD_EN +#define nNOR_WP__MASK 0x20u +#define nNOR_WP__PORT 3u +#define nNOR_WP__PRT CYREG_PRT3_PRT +#define nNOR_WP__PRTDSI__CAPS_SEL CYREG_PRT3_CAPS_SEL +#define nNOR_WP__PRTDSI__DBL_SYNC_IN CYREG_PRT3_DBL_SYNC_IN +#define nNOR_WP__PRTDSI__OE_SEL0 CYREG_PRT3_OE_SEL0 +#define nNOR_WP__PRTDSI__OE_SEL1 CYREG_PRT3_OE_SEL1 +#define nNOR_WP__PRTDSI__OUT_SEL0 CYREG_PRT3_OUT_SEL0 +#define nNOR_WP__PRTDSI__OUT_SEL1 CYREG_PRT3_OUT_SEL1 +#define nNOR_WP__PRTDSI__SYNC_OUT CYREG_PRT3_SYNC_OUT +#define nNOR_WP__PS CYREG_PRT3_PS +#define nNOR_WP__SHIFT 5u +#define nNOR_WP__SLW CYREG_PRT3_SLW + /* SCSI_CLK */ -#define SCSI_CLK__CFG0 CYREG_CLKDIST_DCFG1_CFG0 -#define SCSI_CLK__CFG1 CYREG_CLKDIST_DCFG1_CFG1 -#define SCSI_CLK__CFG2 CYREG_CLKDIST_DCFG1_CFG2 +#define SCSI_CLK__CFG0 CYREG_CLKDIST_DCFG2_CFG0 +#define SCSI_CLK__CFG1 CYREG_CLKDIST_DCFG2_CFG1 +#define SCSI_CLK__CFG2 CYREG_CLKDIST_DCFG2_CFG2 #define SCSI_CLK__CFG2_SRC_SEL_MASK 0x07u -#define SCSI_CLK__INDEX 0x01u +#define SCSI_CLK__INDEX 0x02u #define SCSI_CLK__PM_ACT_CFG CYREG_PM_ACT_CFG2 -#define SCSI_CLK__PM_ACT_MSK 0x02u +#define SCSI_CLK__PM_ACT_MSK 0x04u #define SCSI_CLK__PM_STBY_CFG CYREG_PM_STBY_CFG2 -#define SCSI_CLK__PM_STBY_MSK 0x02u +#define SCSI_CLK__PM_STBY_MSK 0x04u /* SCSI_Out */ #define SCSI_Out__0__AG CYREG_PRT6_AG @@ -1515,15 +1784,15 @@ #define SCSI_Out_Bits_Sync_ctrl_reg__0__POS 0 #define SCSI_Out_Bits_Sync_ctrl_reg__1__MASK 0x02u #define SCSI_Out_Bits_Sync_ctrl_reg__1__POS 1 -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB13_14_ACTL -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB13_14_CTL -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB13_14_CTL -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB13_14_CTL -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB13_14_CTL -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB13_14_MSK -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB13_14_MSK -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB13_14_MSK -#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB13_14_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB09_10_ACTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB09_10_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB09_10_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB09_10_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB09_10_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB09_10_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB09_10_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB09_10_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB09_10_MSK #define SCSI_Out_Bits_Sync_ctrl_reg__2__MASK 0x04u #define SCSI_Out_Bits_Sync_ctrl_reg__2__POS 2 #define SCSI_Out_Bits_Sync_ctrl_reg__3__MASK 0x08u @@ -1536,35 +1805,35 @@ #define SCSI_Out_Bits_Sync_ctrl_reg__6__POS 6 #define SCSI_Out_Bits_Sync_ctrl_reg__7__MASK 0x80u #define SCSI_Out_Bits_Sync_ctrl_reg__7__POS 7 -#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB13_ACTL -#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB13_CTL -#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB13_ST_CTL -#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB13_CTL -#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB13_ST_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB09_ACTL +#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB09_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB09_ST_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB09_CTL +#define SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB09_ST_CTL #define SCSI_Out_Bits_Sync_ctrl_reg__MASK 0xFFu -#define SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB13_MSK_ACTL -#define SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB13_MSK_ACTL -#define SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB13_MSK +#define SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB09_MSK_ACTL +#define SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB09_MSK_ACTL +#define SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB09_MSK #define SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK 0x01u #define SCSI_Out_Ctl_Sync_ctrl_reg__0__POS 0 -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB06_07_ACTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB06_07_CTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB06_07_CTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB06_07_CTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB06_07_CTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB06_07_MSK -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB06_07_MSK -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB06_07_MSK -#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB06_07_MSK -#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB06_ACTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB06_CTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB06_ST_CTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB06_CTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB06_ST_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB03_04_ACTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB03_04_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB03_04_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB03_04_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB03_04_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB03_04_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB03_04_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB03_04_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB03_04_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB03_ACTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB03_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB03_ST_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB03_CTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB03_ST_CTL #define SCSI_Out_Ctl_Sync_ctrl_reg__MASK 0x01u -#define SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB06_MSK_ACTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB06_MSK_ACTL -#define SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB06_MSK +#define SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL +#define SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB03_MSK #define SCSI_Out_DBx__0__AG CYREG_PRT6_AG #define SCSI_Out_DBx__0__AMUX CYREG_PRT6_AMUX #define SCSI_Out_DBx__0__BIE CYREG_PRT6_BIE @@ -2012,6 +2281,17 @@ #define SCSI_Out_DBx__DB7__SHIFT 5u #define SCSI_Out_DBx__DB7__SLW CYREG_PRT15_SLW +/* NOR_Clock */ +#define NOR_Clock__CFG0 CYREG_CLKDIST_DCFG0_CFG0 +#define NOR_Clock__CFG1 CYREG_CLKDIST_DCFG0_CFG1 +#define NOR_Clock__CFG2 CYREG_CLKDIST_DCFG0_CFG2 +#define NOR_Clock__CFG2_SRC_SEL_MASK 0x07u +#define NOR_Clock__INDEX 0x00u +#define NOR_Clock__PM_ACT_CFG CYREG_PM_ACT_CFG2 +#define NOR_Clock__PM_ACT_MSK 0x01u +#define NOR_Clock__PM_STBY_CFG CYREG_PM_STBY_CFG2 +#define NOR_Clock__PM_STBY_MSK 0x01u + /* SD_RX_DMA */ #define SD_RX_DMA__DRQ_CTL CYREG_IDMUX_DRQ_CTL0 #define SD_RX_DMA__DRQ_NUMBER 2u @@ -2052,6 +2332,39 @@ #define SD_TX_DMA_COMPLETE__INTC_SET_EN_REG CYREG_NVIC_SETENA0 #define SD_TX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 +/* nNOR_HOLD */ +#define nNOR_HOLD__0__INTTYPE CYREG_PICU12_INTTYPE1 +#define nNOR_HOLD__0__MASK 0x02u +#define nNOR_HOLD__0__PC CYREG_PRT12_PC1 +#define nNOR_HOLD__0__PORT 12u +#define nNOR_HOLD__0__SHIFT 1u +#define nNOR_HOLD__AG CYREG_PRT12_AG +#define nNOR_HOLD__BIE CYREG_PRT12_BIE +#define nNOR_HOLD__BIT_MASK CYREG_PRT12_BIT_MASK +#define nNOR_HOLD__BYP CYREG_PRT12_BYP +#define nNOR_HOLD__DM0 CYREG_PRT12_DM0 +#define nNOR_HOLD__DM1 CYREG_PRT12_DM1 +#define nNOR_HOLD__DM2 CYREG_PRT12_DM2 +#define nNOR_HOLD__DR CYREG_PRT12_DR +#define nNOR_HOLD__INP_DIS CYREG_PRT12_INP_DIS +#define nNOR_HOLD__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU12_BASE +#define nNOR_HOLD__MASK 0x02u +#define nNOR_HOLD__PORT 12u +#define nNOR_HOLD__PRT CYREG_PRT12_PRT +#define nNOR_HOLD__PRTDSI__DBL_SYNC_IN CYREG_PRT12_DBL_SYNC_IN +#define nNOR_HOLD__PRTDSI__OE_SEL0 CYREG_PRT12_OE_SEL0 +#define nNOR_HOLD__PRTDSI__OE_SEL1 CYREG_PRT12_OE_SEL1 +#define nNOR_HOLD__PRTDSI__OUT_SEL0 CYREG_PRT12_OUT_SEL0 +#define nNOR_HOLD__PRTDSI__OUT_SEL1 CYREG_PRT12_OUT_SEL1 +#define nNOR_HOLD__PRTDSI__SYNC_OUT CYREG_PRT12_SYNC_OUT +#define nNOR_HOLD__PS CYREG_PRT12_PS +#define nNOR_HOLD__SHIFT 1u +#define nNOR_HOLD__SIO_CFG CYREG_PRT12_SIO_CFG +#define nNOR_HOLD__SIO_DIFF CYREG_PRT12_SIO_DIFF +#define nNOR_HOLD__SIO_HYST_EN CYREG_PRT12_SIO_HYST_EN +#define nNOR_HOLD__SIO_REG_HIFREQ CYREG_PRT12_SIO_REG_HIFREQ +#define nNOR_HOLD__SLW CYREG_PRT12_SLW + /* SCSI_Noise */ #define SCSI_Noise__0__AG CYREG_PRT4_AG #define SCSI_Noise__0__AMUX CYREG_PRT4_AMUX @@ -2384,6 +2697,8 @@ #define scsiTarget_StatusReg__0__POS 0 #define scsiTarget_StatusReg__1__MASK 0x02u #define scsiTarget_StatusReg__1__POS 1 +#define scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB03_04_ACTL +#define scsiTarget_StatusReg__16BIT_STATUS_REG CYREG_B0_UDB03_04_ST #define scsiTarget_StatusReg__2__MASK 0x04u #define scsiTarget_StatusReg__2__POS 2 #define scsiTarget_StatusReg__3__MASK 0x08u @@ -2391,13 +2706,13 @@ #define scsiTarget_StatusReg__4__MASK 0x10u #define scsiTarget_StatusReg__4__POS 4 #define scsiTarget_StatusReg__MASK 0x1Fu -#define scsiTarget_StatusReg__MASK_REG CYREG_B0_UDB15_MSK -#define scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG CYREG_B0_UDB15_MSK_ACTL -#define scsiTarget_StatusReg__PER_ST_AUX_CTL_REG CYREG_B0_UDB15_MSK_ACTL -#define scsiTarget_StatusReg__STATUS_AUX_CTL_REG CYREG_B0_UDB15_ACTL -#define scsiTarget_StatusReg__STATUS_CNT_REG CYREG_B0_UDB15_ST_CTL -#define scsiTarget_StatusReg__STATUS_CONTROL_REG CYREG_B0_UDB15_ST_CTL -#define scsiTarget_StatusReg__STATUS_REG CYREG_B0_UDB15_ST +#define scsiTarget_StatusReg__MASK_REG CYREG_B0_UDB03_MSK +#define scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL +#define scsiTarget_StatusReg__PER_ST_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL +#define scsiTarget_StatusReg__STATUS_AUX_CTL_REG CYREG_B0_UDB03_ACTL +#define scsiTarget_StatusReg__STATUS_CNT_REG CYREG_B0_UDB03_ST_CTL +#define scsiTarget_StatusReg__STATUS_CONTROL_REG CYREG_B0_UDB03_ST_CTL +#define scsiTarget_StatusReg__STATUS_REG CYREG_B0_UDB03_ST /* Debug_Timer */ #define Debug_Timer_Interrupt__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 @@ -2466,111 +2781,26 @@ #define SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG CYREG_NVIC_SETPEND0 /* SD_Data_Clk */ -#define SD_Data_Clk__CFG0 CYREG_CLKDIST_DCFG0_CFG0 -#define SD_Data_Clk__CFG1 CYREG_CLKDIST_DCFG0_CFG1 -#define SD_Data_Clk__CFG2 CYREG_CLKDIST_DCFG0_CFG2 +#define SD_Data_Clk__CFG0 CYREG_CLKDIST_DCFG1_CFG0 +#define SD_Data_Clk__CFG1 CYREG_CLKDIST_DCFG1_CFG1 +#define SD_Data_Clk__CFG2 CYREG_CLKDIST_DCFG1_CFG2 #define SD_Data_Clk__CFG2_SRC_SEL_MASK 0x07u -#define SD_Data_Clk__INDEX 0x00u +#define SD_Data_Clk__INDEX 0x01u #define SD_Data_Clk__PM_ACT_CFG CYREG_PM_ACT_CFG2 -#define SD_Data_Clk__PM_ACT_MSK 0x01u +#define SD_Data_Clk__PM_ACT_MSK 0x02u #define SD_Data_Clk__PM_STBY_CFG CYREG_PM_STBY_CFG2 -#define SD_Data_Clk__PM_STBY_MSK 0x01u - -/* SPI_Pullups */ -#define SPI_Pullups__0__INTTYPE CYREG_PICU3_INTTYPE4 -#define SPI_Pullups__0__MASK 0x10u -#define SPI_Pullups__0__PC CYREG_PRT3_PC4 -#define SPI_Pullups__0__PORT 3u -#define SPI_Pullups__0__SHIFT 4u -#define SPI_Pullups__1__INTTYPE CYREG_PICU3_INTTYPE5 -#define SPI_Pullups__1__MASK 0x20u -#define SPI_Pullups__1__PC CYREG_PRT3_PC5 -#define SPI_Pullups__1__PORT 3u -#define SPI_Pullups__1__SHIFT 5u -#define SPI_Pullups__2__INTTYPE CYREG_PICU3_INTTYPE6 -#define SPI_Pullups__2__MASK 0x40u -#define SPI_Pullups__2__PC CYREG_PRT3_PC6 -#define SPI_Pullups__2__PORT 3u -#define SPI_Pullups__2__SHIFT 6u -#define SPI_Pullups__3__INTTYPE CYREG_PICU3_INTTYPE7 -#define SPI_Pullups__3__MASK 0x80u -#define SPI_Pullups__3__PC CYREG_PRT3_PC7 -#define SPI_Pullups__3__PORT 3u -#define SPI_Pullups__3__SHIFT 7u -#define SPI_Pullups__AG CYREG_PRT3_AG -#define SPI_Pullups__AMUX CYREG_PRT3_AMUX -#define SPI_Pullups__BIE CYREG_PRT3_BIE -#define SPI_Pullups__BIT_MASK CYREG_PRT3_BIT_MASK -#define SPI_Pullups__BYP CYREG_PRT3_BYP -#define SPI_Pullups__CTL CYREG_PRT3_CTL -#define SPI_Pullups__DM0 CYREG_PRT3_DM0 -#define SPI_Pullups__DM1 CYREG_PRT3_DM1 -#define SPI_Pullups__DM2 CYREG_PRT3_DM2 -#define SPI_Pullups__DR CYREG_PRT3_DR -#define SPI_Pullups__INP_DIS CYREG_PRT3_INP_DIS -#define SPI_Pullups__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU3_BASE -#define SPI_Pullups__LCD_COM_SEG CYREG_PRT3_LCD_COM_SEG -#define SPI_Pullups__LCD_EN CYREG_PRT3_LCD_EN -#define SPI_Pullups__MASK 0xF0u -#define SPI_Pullups__PORT 3u -#define SPI_Pullups__PRT CYREG_PRT3_PRT -#define SPI_Pullups__PRTDSI__CAPS_SEL CYREG_PRT3_CAPS_SEL -#define SPI_Pullups__PRTDSI__DBL_SYNC_IN CYREG_PRT3_DBL_SYNC_IN -#define SPI_Pullups__PRTDSI__OE_SEL0 CYREG_PRT3_OE_SEL0 -#define SPI_Pullups__PRTDSI__OE_SEL1 CYREG_PRT3_OE_SEL1 -#define SPI_Pullups__PRTDSI__OUT_SEL0 CYREG_PRT3_OUT_SEL0 -#define SPI_Pullups__PRTDSI__OUT_SEL1 CYREG_PRT3_OUT_SEL1 -#define SPI_Pullups__PRTDSI__SYNC_OUT CYREG_PRT3_SYNC_OUT -#define SPI_Pullups__PS CYREG_PRT3_PS -#define SPI_Pullups__SHIFT 4u -#define SPI_Pullups__SLW CYREG_PRT3_SLW -#define SPI_Pullups_1__0__INTTYPE CYREG_PICU12_INTTYPE0 -#define SPI_Pullups_1__0__MASK 0x01u -#define SPI_Pullups_1__0__PC CYREG_PRT12_PC0 -#define SPI_Pullups_1__0__PORT 12u -#define SPI_Pullups_1__0__SHIFT 0u -#define SPI_Pullups_1__1__INTTYPE CYREG_PICU12_INTTYPE1 -#define SPI_Pullups_1__1__MASK 0x02u -#define SPI_Pullups_1__1__PC CYREG_PRT12_PC1 -#define SPI_Pullups_1__1__PORT 12u -#define SPI_Pullups_1__1__SHIFT 1u -#define SPI_Pullups_1__AG CYREG_PRT12_AG -#define SPI_Pullups_1__BIE CYREG_PRT12_BIE -#define SPI_Pullups_1__BIT_MASK CYREG_PRT12_BIT_MASK -#define SPI_Pullups_1__BYP CYREG_PRT12_BYP -#define SPI_Pullups_1__DM0 CYREG_PRT12_DM0 -#define SPI_Pullups_1__DM1 CYREG_PRT12_DM1 -#define SPI_Pullups_1__DM2 CYREG_PRT12_DM2 -#define SPI_Pullups_1__DR CYREG_PRT12_DR -#define SPI_Pullups_1__INP_DIS CYREG_PRT12_INP_DIS -#define SPI_Pullups_1__INTTYPE_BASE CYDEV_PICU_INTTYPE_PICU12_BASE -#define SPI_Pullups_1__MASK 0x03u -#define SPI_Pullups_1__PORT 12u -#define SPI_Pullups_1__PRT CYREG_PRT12_PRT -#define SPI_Pullups_1__PRTDSI__DBL_SYNC_IN CYREG_PRT12_DBL_SYNC_IN -#define SPI_Pullups_1__PRTDSI__OE_SEL0 CYREG_PRT12_OE_SEL0 -#define SPI_Pullups_1__PRTDSI__OE_SEL1 CYREG_PRT12_OE_SEL1 -#define SPI_Pullups_1__PRTDSI__OUT_SEL0 CYREG_PRT12_OUT_SEL0 -#define SPI_Pullups_1__PRTDSI__OUT_SEL1 CYREG_PRT12_OUT_SEL1 -#define SPI_Pullups_1__PRTDSI__SYNC_OUT CYREG_PRT12_SYNC_OUT -#define SPI_Pullups_1__PS CYREG_PRT12_PS -#define SPI_Pullups_1__SHIFT 0u -#define SPI_Pullups_1__SIO_CFG CYREG_PRT12_SIO_CFG -#define SPI_Pullups_1__SIO_DIFF CYREG_PRT12_SIO_DIFF -#define SPI_Pullups_1__SIO_HYST_EN CYREG_PRT12_SIO_HYST_EN -#define SPI_Pullups_1__SIO_REG_HIFREQ CYREG_PRT12_SIO_REG_HIFREQ -#define SPI_Pullups_1__SLW CYREG_PRT12_SLW +#define SD_Data_Clk__PM_STBY_MSK 0x02u /* timer_clock */ -#define timer_clock__CFG0 CYREG_CLKDIST_DCFG2_CFG0 -#define timer_clock__CFG1 CYREG_CLKDIST_DCFG2_CFG1 -#define timer_clock__CFG2 CYREG_CLKDIST_DCFG2_CFG2 +#define timer_clock__CFG0 CYREG_CLKDIST_DCFG3_CFG0 +#define timer_clock__CFG1 CYREG_CLKDIST_DCFG3_CFG1 +#define timer_clock__CFG2 CYREG_CLKDIST_DCFG3_CFG2 #define timer_clock__CFG2_SRC_SEL_MASK 0x07u -#define timer_clock__INDEX 0x02u +#define timer_clock__INDEX 0x03u #define timer_clock__PM_ACT_CFG CYREG_PM_ACT_CFG2 -#define timer_clock__PM_ACT_MSK 0x04u +#define timer_clock__PM_ACT_MSK 0x08u #define timer_clock__PM_STBY_CFG CYREG_PM_STBY_CFG2 -#define timer_clock__PM_STBY_MSK 0x04u +#define timer_clock__PM_STBY_MSK 0x08u /* SCSI_RST_ISR */ #define SCSI_RST_ISR__INTC_CLR_EN_REG CYREG_NVIC_CLRENA0 @@ -2597,8 +2827,6 @@ #define SCSI_Filtered_sts_sts_reg__0__POS 0 #define SCSI_Filtered_sts_sts_reg__1__MASK 0x02u #define SCSI_Filtered_sts_sts_reg__1__POS 1 -#define SCSI_Filtered_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB07_08_ACTL -#define SCSI_Filtered_sts_sts_reg__16BIT_STATUS_REG CYREG_B0_UDB07_08_ST #define SCSI_Filtered_sts_sts_reg__2__MASK 0x04u #define SCSI_Filtered_sts_sts_reg__2__POS 2 #define SCSI_Filtered_sts_sts_reg__3__MASK 0x08u @@ -2606,58 +2834,67 @@ #define SCSI_Filtered_sts_sts_reg__4__MASK 0x10u #define SCSI_Filtered_sts_sts_reg__4__POS 4 #define SCSI_Filtered_sts_sts_reg__MASK 0x1Fu -#define SCSI_Filtered_sts_sts_reg__MASK_REG CYREG_B0_UDB07_MSK -#define SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG CYREG_B0_UDB07_ACTL -#define SCSI_Filtered_sts_sts_reg__STATUS_REG CYREG_B0_UDB07_ST +#define SCSI_Filtered_sts_sts_reg__MASK_REG CYREG_B0_UDB15_MSK +#define SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG CYREG_B0_UDB15_ACTL +#define SCSI_Filtered_sts_sts_reg__STATUS_REG CYREG_B0_UDB15_ST /* SCSI_CTL_PHASE */ #define SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK 0x01u #define SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS 0 #define SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK 0x02u #define SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS 1 +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB12_13_ACTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB12_13_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB12_13_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB12_13_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB12_13_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB12_13_MSK #define SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK 0x04u #define SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS 2 -#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB15_ACTL -#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB15_CTL -#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB15_ST_CTL -#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB15_CTL -#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB15_ST_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB12_ACTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB12_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB12_ST_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB12_CTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB12_ST_CTL #define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK 0x07u -#define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB15_MSK_ACTL -#define SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB15_MSK_ACTL -#define SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB15_MSK +#define SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB12_MSK_ACTL +#define SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB12_MSK /* SCSI_Glitch_Ctl */ #define SCSI_Glitch_Ctl_Sync_ctrl_reg__0__MASK 0x01u #define SCSI_Glitch_Ctl_Sync_ctrl_reg__0__POS 0 -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB03_04_ACTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB03_04_CTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB03_04_CTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB03_04_CTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB03_04_CTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB03_04_MSK -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB03_04_MSK -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB03_04_MSK -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB03_04_MSK -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB03_ACTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB03_CTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB03_ST_CTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB03_CTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB03_ST_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG CYREG_B0_UDB13_14_ACTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG CYREG_B0_UDB13_14_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG CYREG_B0_UDB13_14_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG CYREG_B0_UDB13_14_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG CYREG_B0_UDB13_14_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG CYREG_B0_UDB13_14_MSK +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG CYREG_B0_UDB13_14_MSK +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG CYREG_B0_UDB13_14_MSK +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG CYREG_B0_UDB13_14_MSK +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG CYREG_B0_UDB13_ACTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG CYREG_B0_UDB13_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG CYREG_B0_UDB13_ST_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG CYREG_B0_UDB13_CTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG CYREG_B0_UDB13_ST_CTL #define SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK 0x01u -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB03_MSK_ACTL -#define SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB03_MSK +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG CYREG_B0_UDB13_MSK_ACTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG CYREG_B0_UDB13_MSK_ACTL +#define SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG CYREG_B0_UDB13_MSK /* SCSI_Parity_Error */ #define SCSI_Parity_Error_sts_sts_reg__0__MASK 0x01u #define SCSI_Parity_Error_sts_sts_reg__0__POS 0 -#define SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB14_15_ACTL -#define SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG CYREG_B0_UDB14_15_ST +#define SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG CYREG_B0_UDB11_12_ACTL +#define SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG CYREG_B0_UDB11_12_ST #define SCSI_Parity_Error_sts_sts_reg__MASK 0x01u -#define SCSI_Parity_Error_sts_sts_reg__MASK_REG CYREG_B0_UDB14_MSK -#define SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG CYREG_B0_UDB14_ACTL -#define SCSI_Parity_Error_sts_sts_reg__STATUS_REG CYREG_B0_UDB14_ST +#define SCSI_Parity_Error_sts_sts_reg__MASK_REG CYREG_B0_UDB11_MSK +#define SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG CYREG_B0_UDB11_ACTL +#define SCSI_Parity_Error_sts_sts_reg__STATUS_REG CYREG_B0_UDB11_ST /* Miscellaneous */ #define BCLK__BUS_CLK__HZ 50000000U diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c index d04b6a7..b9cd1c4 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c @@ -149,7 +149,7 @@ static void CyClockStartupError(uint8 errorCode) } #endif -#define CY_CFG_BASE_ADDR_COUNT 39u +#define CY_CFG_BASE_ADDR_COUNT 42u CYPACKED typedef struct { uint8 offset; @@ -217,10 +217,12 @@ static void ClockSetup(void) /* Configure Digital Clocks based on settings from Clock DWR */ CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0), 0x0000u); CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG0_CFG0 + 0x2u), 0x58u); - CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0), 0x0001u); - CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0 + 0x2u), 0x18u); - CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG2_CFG0), 0x0031u); + CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0), 0x0000u); + CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG1_CFG0 + 0x2u), 0x58u); + CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG2_CFG0), 0x0001u); CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG2_CFG0 + 0x2u), 0x18u); + CY_SET_XTND_REG16((void CYFAR *)(CYREG_CLKDIST_DCFG3_CFG0), 0x0031u); + CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_DCFG3_CFG0 + 0x2u), 0x18u); /* Configure ILO based on settings from Clock DWR */ CY_SET_XTND_REG8((void CYFAR *)(CYREG_SLOWCLK_ILO_CR0), 0x06u); @@ -256,7 +258,7 @@ static void ClockSetup(void) CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_UCFG), 0x00u); CY_SET_XTND_REG8((void CYFAR *)(CYREG_CLKDIST_LD), 0x02u); - CY_SET_XTND_REG8((void CYFAR *)(CYREG_PM_ACT_CFG2), ((CY_GET_XTND_REG8((void CYFAR *)CYREG_PM_ACT_CFG2) | 0x07u))); + CY_SET_XTND_REG8((void CYFAR *)(CYREG_PM_ACT_CFG2), ((CY_GET_XTND_REG8((void CYFAR *)CYREG_PM_ACT_CFG2) | 0x0Fu))); } @@ -347,7 +349,7 @@ void cyfitter_cfg(void) /* IOPINS0_7 Address: CYREG_PRT12_DR Size (bytes): 10 */ static const uint8 CYCODE BS_IOPINS0_7_VAL[] = { - 0x05u, 0x00u, 0x13u, 0x20u, 0x2Cu, 0x0Cu, 0x20u, 0x00u, 0x00u, 0x0Cu}; + 0x04u, 0x00u, 0x10u, 0x22u, 0x2Eu, 0x0Cu, 0x22u, 0x00u, 0x00u, 0x0Cu}; /* IOPINS1_7 Address: CYREG_PRT12_DR + 0x0000000Bu Size (bytes): 5 */ static const uint8 CYCODE BS_IOPINS1_7_VAL[] = { @@ -355,7 +357,7 @@ void cyfitter_cfg(void) /* IOPINS0_8 Address: CYREG_PRT15_DR Size (bytes): 10 */ static const uint8 CYCODE BS_IOPINS0_8_VAL[] = { - 0x40u, 0x00u, 0x00u, 0x28u, 0x28u, 0x08u, 0x20u, 0x00u, 0xC0u, 0x00u}; + 0x40u, 0x00u, 0x04u, 0x28u, 0x28u, 0x08u, 0x20u, 0x00u, 0xC0u, 0x00u}; /* IOPINS0_1 Address: CYREG_PRT1_DM0 Size (bytes): 8 */ static const uint8 CYCODE BS_IOPINS0_1_VAL[] = { @@ -367,7 +369,7 @@ void cyfitter_cfg(void) /* IOPINS0_3 Address: CYREG_PRT3_DR Size (bytes): 10 */ static const uint8 CYCODE BS_IOPINS0_3_VAL[] = { - 0x18u, 0x00u, 0xF1u, 0x0Eu, 0x0Eu, 0x02u, 0x06u, 0x00u, 0x00u, 0x01u}; + 0x08u, 0x00u, 0x01u, 0xFEu, 0xFEu, 0x02u, 0xF6u, 0x00u, 0x00u, 0x01u}; /* IOPINS0_4 Address: CYREG_PRT4_DM0 Size (bytes): 8 */ static const uint8 CYCODE BS_IOPINS0_4_VAL[] = { @@ -408,102 +410,93 @@ void cyfitter_cfg(void) static const uint32 CYCODE cy_cfg_addr_table[] = { 0x40004501u, /* Base address: 0x40004500 Count: 1 */ 0x40004F02u, /* Base address: 0x40004F00 Count: 2 */ - 0x4000520Cu, /* Base address: 0x40005200 Count: 12 */ - 0x40006401u, /* Base address: 0x40006400 Count: 1 */ - 0x40006501u, /* Base address: 0x40006500 Count: 1 */ - 0x40010042u, /* Base address: 0x40010000 Count: 66 */ - 0x4001013Eu, /* Base address: 0x40010100 Count: 62 */ - 0x4001025Fu, /* Base address: 0x40010200 Count: 95 */ - 0x40010356u, /* Base address: 0x40010300 Count: 86 */ - 0x40010450u, /* Base address: 0x40010400 Count: 80 */ - 0x40010557u, /* Base address: 0x40010500 Count: 87 */ - 0x4001064Eu, /* Base address: 0x40010600 Count: 78 */ - 0x40010756u, /* Base address: 0x40010700 Count: 86 */ - 0x40010915u, /* Base address: 0x40010900 Count: 21 */ - 0x40010A54u, /* Base address: 0x40010A00 Count: 84 */ - 0x40010B52u, /* Base address: 0x40010B00 Count: 82 */ - 0x40010C47u, /* Base address: 0x40010C00 Count: 71 */ - 0x40010D53u, /* Base address: 0x40010D00 Count: 83 */ - 0x40010E4Bu, /* Base address: 0x40010E00 Count: 75 */ - 0x40010F38u, /* Base address: 0x40010F00 Count: 56 */ - 0x40011416u, /* Base address: 0x40011400 Count: 22 */ - 0x4001154Eu, /* Base address: 0x40011500 Count: 78 */ - 0x40011653u, /* Base address: 0x40011600 Count: 83 */ - 0x40011744u, /* Base address: 0x40011700 Count: 68 */ - 0x40011908u, /* Base address: 0x40011900 Count: 8 */ - 0x40011B08u, /* Base address: 0x40011B00 Count: 8 */ - 0x4001401Fu, /* Base address: 0x40014000 Count: 31 */ - 0x4001411Eu, /* Base address: 0x40014100 Count: 30 */ - 0x40014211u, /* Base address: 0x40014200 Count: 17 */ - 0x40014310u, /* Base address: 0x40014300 Count: 16 */ + 0x4000520Eu, /* Base address: 0x40005200 Count: 14 */ + 0x40006402u, /* Base address: 0x40006400 Count: 2 */ + 0x40006502u, /* Base address: 0x40006500 Count: 2 */ + 0x40010045u, /* Base address: 0x40010000 Count: 69 */ + 0x4001013Au, /* Base address: 0x40010100 Count: 58 */ + 0x4001024Eu, /* Base address: 0x40010200 Count: 78 */ + 0x4001035Bu, /* Base address: 0x40010300 Count: 91 */ + 0x4001041Bu, /* Base address: 0x40010400 Count: 27 */ + 0x40010545u, /* Base address: 0x40010500 Count: 69 */ + 0x40010651u, /* Base address: 0x40010600 Count: 81 */ + 0x40010751u, /* Base address: 0x40010700 Count: 81 */ + 0x4001084Eu, /* Base address: 0x40010800 Count: 78 */ + 0x4001095Fu, /* Base address: 0x40010900 Count: 95 */ + 0x40010A5Cu, /* Base address: 0x40010A00 Count: 92 */ + 0x40010B60u, /* Base address: 0x40010B00 Count: 96 */ + 0x40010C49u, /* Base address: 0x40010C00 Count: 73 */ + 0x40010D54u, /* Base address: 0x40010D00 Count: 84 */ + 0x40010E51u, /* Base address: 0x40010E00 Count: 81 */ + 0x40010F43u, /* Base address: 0x40010F00 Count: 67 */ + 0x40011462u, /* Base address: 0x40011400 Count: 98 */ + 0x40011540u, /* Base address: 0x40011500 Count: 64 */ + 0x40011651u, /* Base address: 0x40011600 Count: 81 */ + 0x4001174Cu, /* Base address: 0x40011700 Count: 76 */ + 0x40011855u, /* Base address: 0x40011800 Count: 85 */ + 0x40011948u, /* Base address: 0x40011900 Count: 72 */ + 0x40011B06u, /* Base address: 0x40011B00 Count: 6 */ + 0x4001401Du, /* Base address: 0x40014000 Count: 29 */ + 0x40014120u, /* Base address: 0x40014100 Count: 32 */ + 0x4001420Fu, /* Base address: 0x40014200 Count: 15 */ + 0x4001430Au, /* Base address: 0x40014300 Count: 10 */ 0x40014411u, /* Base address: 0x40014400 Count: 17 */ - 0x4001451Bu, /* Base address: 0x40014500 Count: 27 */ - 0x40014613u, /* Base address: 0x40014600 Count: 19 */ - 0x4001470Au, /* Base address: 0x40014700 Count: 10 */ - 0x40014807u, /* Base address: 0x40014800 Count: 7 */ - 0x4001490Cu, /* Base address: 0x40014900 Count: 12 */ - 0x40014C04u, /* Base address: 0x40014C00 Count: 4 */ - 0x40015002u, /* Base address: 0x40015000 Count: 2 */ + 0x40014517u, /* Base address: 0x40014500 Count: 23 */ + 0x4001460Fu, /* Base address: 0x40014600 Count: 15 */ + 0x4001470Cu, /* Base address: 0x40014700 Count: 12 */ + 0x4001480Du, /* Base address: 0x40014800 Count: 13 */ + 0x4001491Au, /* Base address: 0x40014900 Count: 26 */ + 0x40014C0Cu, /* Base address: 0x40014C00 Count: 12 */ + 0x40014D07u, /* Base address: 0x40014D00 Count: 7 */ + 0x40015005u, /* Base address: 0x40015000 Count: 5 */ 0x40015104u, /* Base address: 0x40015100 Count: 4 */ }; static const cy_cfg_addrvalue_t CYCODE cy_cfg_data_table[] = { {0x7Eu, 0x02u}, + {0x01u, 0x30u}, + {0x0Au, 0x4Bu}, + {0x00u, 0x02u}, {0x01u, 0x20u}, - {0x0Au, 0x27u}, - {0x01u, 0x22u}, - {0x10u, 0xAAu}, - {0x11u, 0x88u}, - {0x18u, 0x02u}, - {0x19u, 0x08u}, + {0x10u, 0xA8u}, + {0x11u, 0x2Au}, + {0x18u, 0x62u}, + {0x19u, 0x38u}, {0x1Cu, 0x08u}, - {0x20u, 0x02u}, - {0x21u, 0x02u}, - {0x30u, 0x80u}, - {0x31u, 0x04u}, + {0x20u, 0x01u}, + {0x30u, 0x84u}, + {0x31u, 0x20u}, + {0x61u, 0x20u}, {0x78u, 0x20u}, + {0x79u, 0x20u}, {0x7Cu, 0x40u}, {0x20u, 0x01u}, - {0x84u, 0x0Fu}, - {0x04u, 0xE0u}, - {0x05u, 0xFFu}, - {0x08u, 0x11u}, - {0x0Au, 0xECu}, - {0x0Bu, 0xFFu}, - {0x0Cu, 0x40u}, - {0x0Du, 0x69u}, - {0x0Eu, 0x80u}, - {0x0Fu, 0x96u}, - {0x10u, 0x0Bu}, - {0x11u, 0x0Fu}, - {0x12u, 0xF4u}, - {0x13u, 0xF0u}, - {0x16u, 0xFFu}, - {0x17u, 0xFFu}, - {0x18u, 0xCAu}, - {0x19u, 0x33u}, - {0x1Au, 0x15u}, - {0x1Bu, 0xCCu}, - {0x1Eu, 0x10u}, - {0x20u, 0x06u}, - {0x25u, 0xFFu}, - {0x28u, 0x40u}, - {0x29u, 0x55u}, - {0x2Au, 0x80u}, - {0x2Bu, 0xAAu}, - {0x2Cu, 0x01u}, - {0x2Fu, 0xFFu}, - {0x30u, 0xC0u}, - {0x31u, 0xFFu}, - {0x34u, 0x3Fu}, - {0x3Au, 0x02u}, - {0x3Bu, 0x02u}, - {0x40u, 0x52u}, + {0x88u, 0x0Fu}, + {0x76u, 0x01u}, + {0x85u, 0x0Fu}, + {0x00u, 0x0Au}, + {0x02u, 0x55u}, + {0x06u, 0x7Fu}, + {0x0Cu, 0x8Bu}, + {0x0Eu, 0x74u}, + {0x14u, 0x91u}, + {0x16u, 0x6Cu}, + {0x18u, 0x01u}, + {0x1Cu, 0x40u}, + {0x1Eu, 0x80u}, + {0x22u, 0x10u}, + {0x24u, 0x06u}, + {0x28u, 0x20u}, + {0x2Au, 0x40u}, + {0x30u, 0x3Fu}, + {0x36u, 0xC0u}, + {0x3Au, 0x80u}, + {0x40u, 0x62u}, {0x41u, 0x04u}, - {0x42u, 0x30u}, - {0x45u, 0xC2u}, - {0x46u, 0xFDu}, - {0x47u, 0x0Eu}, + {0x42u, 0x10u}, + {0x45u, 0xECu}, + {0x46u, 0x2Du}, + {0x47u, 0x0Fu}, {0x48u, 0x1Fu}, {0x49u, 0xFFu}, {0x4Au, 0xFFu}, @@ -511,11 +504,10 @@ void cyfitter_cfg(void) {0x4Fu, 0x2Cu}, {0x56u, 0x01u}, {0x58u, 0x04u}, - {0x59u, 0x04u}, {0x5Au, 0x04u}, {0x5Bu, 0x04u}, - {0x5Cu, 0x11u}, - {0x5Du, 0x01u}, + {0x5Cu, 0x02u}, + {0x5Du, 0x02u}, {0x5Fu, 0x01u}, {0x60u, 0x08u}, {0x62u, 0xC8u}, @@ -523,1519 +515,1883 @@ void cyfitter_cfg(void) {0x68u, 0x40u}, {0x69u, 0x40u}, {0x6Eu, 0x08u}, - {0x9Du, 0x01u}, - {0xB1u, 0x01u}, - {0xBFu, 0x01u}, + {0x81u, 0x04u}, + {0x84u, 0x02u}, + {0x86u, 0x01u}, + {0x89u, 0x02u}, + {0x8Du, 0x01u}, + {0x94u, 0x02u}, + {0x96u, 0x01u}, + {0x98u, 0x02u}, + {0x9Au, 0x05u}, + {0x9Cu, 0x01u}, + {0x9Eu, 0x02u}, + {0xA0u, 0x02u}, + {0xA2u, 0x09u}, + {0xB1u, 0x04u}, + {0xB2u, 0x08u}, + {0xB4u, 0x04u}, + {0xB5u, 0x02u}, + {0xB6u, 0x03u}, + {0xB7u, 0x01u}, + {0xBAu, 0x80u}, + {0xBFu, 0x50u}, {0xD6u, 0x08u}, + {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, + {0xDCu, 0x92u}, {0xDDu, 0x90u}, {0xDFu, 0x01u}, - {0x00u, 0x20u}, - {0x03u, 0x26u}, - {0x09u, 0x80u}, - {0x0Au, 0x44u}, - {0x0Bu, 0x20u}, - {0x10u, 0x81u}, - {0x12u, 0x04u}, - {0x19u, 0x20u}, - {0x1Au, 0x84u}, - {0x1Bu, 0x02u}, - {0x20u, 0x40u}, - {0x21u, 0x02u}, - {0x24u, 0x80u}, - {0x2Au, 0xA0u}, - {0x2Bu, 0x20u}, - {0x30u, 0x10u}, - {0x31u, 0x02u}, - {0x33u, 0x04u}, - {0x35u, 0x40u}, - {0x3Au, 0x48u}, - {0x3Bu, 0x20u}, - {0x41u, 0x08u}, - {0x42u, 0xCCu}, - {0x48u, 0x80u}, - {0x4Au, 0x10u}, - {0x4Bu, 0x80u}, - {0x50u, 0x20u}, - {0x51u, 0xC0u}, - {0x52u, 0x08u}, - {0x59u, 0x10u}, - {0x5Au, 0x88u}, - {0x5Bu, 0x01u}, + {0x01u, 0x02u}, + {0x03u, 0x12u}, + {0x04u, 0x04u}, + {0x0Au, 0x01u}, + {0x0Bu, 0x28u}, + {0x0Eu, 0x2Au}, + {0x10u, 0xA4u}, + {0x16u, 0x80u}, + {0x19u, 0x02u}, + {0x1Au, 0x01u}, + {0x1Cu, 0x04u}, + {0x1Eu, 0x22u}, + {0x1Fu, 0x80u}, + {0x24u, 0x02u}, + {0x25u, 0x02u}, + {0x27u, 0x04u}, + {0x3Du, 0xA2u}, + {0x3Fu, 0x02u}, + {0x40u, 0x08u}, + {0x42u, 0x01u}, + {0x43u, 0x02u}, + {0x48u, 0x20u}, + {0x49u, 0x14u}, + {0x4Bu, 0x22u}, + {0x50u, 0x80u}, + {0x51u, 0x60u}, + {0x52u, 0x10u}, + {0x53u, 0x08u}, + {0x59u, 0xA0u}, + {0x5Bu, 0x0Au}, {0x5Cu, 0x80u}, - {0x5Fu, 0x28u}, - {0x61u, 0x24u}, - {0x63u, 0x82u}, - {0x64u, 0x12u}, - {0x66u, 0x24u}, - {0x69u, 0x51u}, - {0x6Bu, 0x10u}, - {0x70u, 0x18u}, - {0x73u, 0x42u}, - {0x80u, 0x20u}, - {0x81u, 0x80u}, - {0x82u, 0x40u}, - {0x84u, 0x80u}, - {0x87u, 0x40u}, - {0x8Bu, 0x22u}, - {0x8Cu, 0xC0u}, - {0xC0u, 0x07u}, - {0xC2u, 0x0Fu}, - {0xC4u, 0x0Bu}, - {0xCAu, 0x0Eu}, - {0xCCu, 0x17u}, - {0xCEu, 0x0Eu}, - {0xD0u, 0x07u}, - {0xD2u, 0x08u}, - {0xD6u, 0x7Fu}, - {0xD8u, 0x7Fu}, - {0xE0u, 0x1Du}, - {0xE4u, 0x03u}, - {0xE6u, 0x10u}, - {0x00u, 0x88u}, - {0x01u, 0x04u}, - {0x02u, 0x77u}, - {0x03u, 0x08u}, - {0x04u, 0x34u}, - {0x05u, 0x40u}, - {0x06u, 0x40u}, - {0x08u, 0x10u}, - {0x0Au, 0x20u}, - {0x0Bu, 0x3Fu}, - {0x0Cu, 0x03u}, - {0x0Du, 0x01u}, - {0x0Eu, 0x0Cu}, - {0x0Fu, 0x02u}, - {0x10u, 0x8Bu}, + {0x60u, 0x60u}, + {0x62u, 0xA0u}, + {0x66u, 0x80u}, + {0x68u, 0x04u}, + {0x69u, 0x44u}, + {0x6Bu, 0x40u}, + {0x70u, 0x50u}, + {0x72u, 0x40u}, + {0x73u, 0x10u}, + {0x81u, 0x60u}, + {0x83u, 0x01u}, + {0x84u, 0x08u}, + {0x85u, 0x46u}, + {0x87u, 0x10u}, + {0x88u, 0xA0u}, + {0x8Cu, 0x41u}, + {0xC0u, 0x2Du}, + {0xC2u, 0xE7u}, + {0xC4u, 0x1Eu}, + {0xCEu, 0xB0u}, + {0xD0u, 0x0Du}, + {0xD2u, 0x04u}, + {0xD6u, 0x1Fu}, + {0xD8u, 0x1Fu}, + {0xE0u, 0x2Du}, + {0xE2u, 0x42u}, + {0xE4u, 0x0Au}, + {0x01u, 0x02u}, + {0x03u, 0x11u}, + {0x05u, 0x02u}, + {0x07u, 0x05u}, + {0x0Cu, 0x02u}, + {0x0Du, 0x02u}, + {0x0Eu, 0x01u}, + {0x0Fu, 0x01u}, {0x11u, 0x01u}, - {0x12u, 0x74u}, {0x13u, 0x02u}, - {0x14u, 0x40u}, - {0x15u, 0x10u}, - {0x16u, 0x80u}, - {0x17u, 0x20u}, - {0x18u, 0x3Du}, - {0x19u, 0x10u}, - {0x1Au, 0x42u}, - {0x1Bu, 0x20u}, - {0x1Cu, 0x02u}, - {0x1Du, 0x3Fu}, - {0x23u, 0x3Fu}, - {0x24u, 0x10u}, - {0x26u, 0x20u}, - {0x27u, 0x3Fu}, - {0x29u, 0x3Fu}, - {0x2Au, 0x77u}, - {0x2Du, 0x04u}, - {0x2Eu, 0x01u}, - {0x2Fu, 0x08u}, - {0x31u, 0x0Cu}, - {0x32u, 0xC0u}, - {0x33u, 0x40u}, - {0x34u, 0x30u}, - {0x35u, 0x30u}, - {0x36u, 0x0Fu}, - {0x37u, 0x03u}, - {0x3Au, 0xA8u}, - {0x3Bu, 0xA2u}, - {0x3Fu, 0x04u}, + {0x14u, 0x02u}, + {0x15u, 0x02u}, + {0x16u, 0x11u}, + {0x17u, 0x09u}, + {0x18u, 0x02u}, + {0x1Au, 0x05u}, + {0x1Cu, 0x01u}, + {0x1Eu, 0x02u}, + {0x24u, 0x02u}, + {0x26u, 0x09u}, + {0x30u, 0x04u}, + {0x31u, 0x03u}, + {0x32u, 0x08u}, + {0x33u, 0x08u}, + {0x34u, 0x10u}, + {0x35u, 0x10u}, + {0x36u, 0x03u}, + {0x37u, 0x04u}, + {0x3Au, 0x80u}, + {0x3Bu, 0x02u}, + {0x56u, 0x08u}, {0x58u, 0x04u}, {0x59u, 0x04u}, - {0x5Cu, 0x11u}, + {0x5Bu, 0x04u}, + {0x5Cu, 0x22u}, + {0x5Du, 0x90u}, {0x5Fu, 0x01u}, - {0x80u, 0x50u}, - {0x82u, 0x8Cu}, - {0x84u, 0x0Cu}, - {0x86u, 0x80u}, - {0x87u, 0x18u}, - {0x88u, 0x04u}, - {0x8Au, 0x08u}, - {0x8Bu, 0x20u}, - {0x8Eu, 0x01u}, - {0x8Fu, 0x24u}, - {0x92u, 0x02u}, + {0x80u, 0x78u}, + {0x82u, 0x03u}, + {0x86u, 0x7Fu}, + {0x87u, 0x06u}, + {0x8Cu, 0x20u}, + {0x8Eu, 0x40u}, + {0x8Fu, 0x08u}, + {0x90u, 0x01u}, + {0x92u, 0x6Eu}, {0x94u, 0x20u}, - {0x96u, 0x0Cu}, - {0x97u, 0x04u}, - {0x98u, 0x4Cu}, - {0x9Au, 0x80u}, - {0x9Fu, 0x03u}, - {0xA0u, 0x01u}, - {0xA1u, 0x24u}, - {0xA2u, 0x02u}, - {0xA3u, 0x09u}, - {0xA4u, 0x10u}, - {0xA6u, 0x8Cu}, - {0xA8u, 0x04u}, - {0xA9u, 0x24u}, - {0xAAu, 0x08u}, - {0xABu, 0x12u}, - {0xAEu, 0x10u}, - {0xB0u, 0xF0u}, - {0xB2u, 0x0Cu}, - {0xB3u, 0x38u}, - {0xB4u, 0x03u}, - {0xB6u, 0x03u}, - {0xB7u, 0x07u}, - {0xB8u, 0x02u}, - {0xBAu, 0x08u}, - {0xBEu, 0x50u}, - {0xD6u, 0x08u}, + {0x96u, 0x40u}, + {0x97u, 0x30u}, + {0x98u, 0x80u}, + {0x9Au, 0x01u}, + {0x9Bu, 0x01u}, + {0x9Cu, 0x03u}, + {0x9Eu, 0x74u}, + {0x9Fu, 0x40u}, + {0xA0u, 0x02u}, + {0xA1u, 0x49u}, + {0xA3u, 0x24u}, + {0xA6u, 0x08u}, + {0xA8u, 0x64u}, + {0xA9u, 0x01u}, + {0xABu, 0x48u}, + {0xADu, 0x49u}, + {0xAFu, 0x12u}, + {0xB2u, 0x80u}, + {0xB3u, 0x70u}, + {0xB4u, 0x1Fu}, + {0xB5u, 0x0Eu}, + {0xB6u, 0x60u}, + {0xB7u, 0x01u}, + {0xBAu, 0x80u}, + {0xBEu, 0x04u}, + {0xBFu, 0x40u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, - {0xDCu, 0x11u}, - {0xDDu, 0x90u}, + {0xDCu, 0x22u}, {0xDFu, 0x01u}, - {0x01u, 0x02u}, - {0x02u, 0x01u}, - {0x03u, 0x28u}, - {0x04u, 0x08u}, - {0x05u, 0x52u}, - {0x08u, 0x0Au}, - {0x0Au, 0x04u}, - {0x0Bu, 0x20u}, - {0x0Cu, 0x02u}, - {0x0Du, 0x48u}, - {0x0Eu, 0x04u}, - {0x10u, 0x05u}, - {0x13u, 0x0Au}, - {0x14u, 0x08u}, - {0x16u, 0x22u}, - {0x18u, 0x08u}, - {0x19u, 0x86u}, - {0x1Au, 0x40u}, - {0x1Bu, 0x28u}, - {0x1Du, 0x58u}, - {0x21u, 0x84u}, - {0x25u, 0x20u}, - {0x26u, 0x26u}, - {0x27u, 0x01u}, - {0x29u, 0x22u}, - {0x2Du, 0x22u}, - {0x2Fu, 0x11u}, - {0x30u, 0x08u}, - {0x31u, 0x80u}, - {0x35u, 0x80u}, - {0x36u, 0x28u}, - {0x37u, 0x01u}, - {0x38u, 0x20u}, - {0x39u, 0x08u}, - {0x3Bu, 0x80u}, - {0x3Cu, 0x20u}, - {0x3Du, 0x08u}, - {0x3Eu, 0x80u}, - {0x3Fu, 0x02u}, - {0x58u, 0x40u}, - {0x62u, 0x40u}, - {0x6Bu, 0x02u}, - {0x7Au, 0x02u}, - {0x7Bu, 0x01u}, - {0x81u, 0x04u}, - {0x84u, 0x12u}, - {0x86u, 0x12u}, - {0x87u, 0x48u}, - {0x89u, 0x80u}, - {0x90u, 0x20u}, - {0x91u, 0xD1u}, - {0x92u, 0x04u}, - {0x96u, 0x48u}, - {0x97u, 0xA0u}, - {0x98u, 0x43u}, - {0x99u, 0x20u}, - {0x9Au, 0x31u}, - {0x9Bu, 0x10u}, - {0x9Du, 0x54u}, - {0x9Eu, 0x40u}, - {0x9Fu, 0x01u}, - {0xA0u, 0x08u}, - {0xA2u, 0x10u}, - {0xA3u, 0x04u}, - {0xA4u, 0x10u}, - {0xA5u, 0x28u}, - {0xA7u, 0x61u}, - {0xAAu, 0x01u}, - {0xABu, 0x04u}, - {0xAFu, 0x08u}, - {0xB0u, 0x43u}, - {0xB2u, 0x18u}, - {0xB4u, 0x40u}, - {0xC0u, 0xFFu}, - {0xC2u, 0xFEu}, - {0xC4u, 0xEFu}, - {0xCAu, 0xF5u}, - {0xCCu, 0xFAu}, - {0xCEu, 0xFEu}, - {0xD6u, 0x08u}, - {0xD8u, 0x08u}, - {0xE2u, 0x8Cu}, - {0xE4u, 0x08u}, - {0xE8u, 0x02u}, - {0xEAu, 0x0Du}, - {0xEEu, 0x84u}, - {0x00u, 0x04u}, - {0x02u, 0x79u}, - {0x04u, 0x78u}, - {0x05u, 0x44u}, - {0x07u, 0x88u}, - {0x0Bu, 0xFFu}, - {0x0Eu, 0x03u}, - {0x10u, 0x20u}, - {0x11u, 0x33u}, - {0x12u, 0x40u}, - {0x13u, 0xCCu}, - {0x15u, 0x21u}, - {0x16u, 0x78u}, - {0x17u, 0x12u}, - {0x18u, 0x7Cu}, - {0x1Au, 0x02u}, - {0x1Cu, 0x20u}, - {0x1Du, 0x0Fu}, - {0x1Eu, 0x40u}, - {0x1Fu, 0xF0u}, - {0x20u, 0x08u}, - {0x21u, 0x84u}, - {0x22u, 0x10u}, - {0x23u, 0x48u}, - {0x25u, 0xFFu}, - {0x26u, 0x7Cu}, - {0x28u, 0x08u}, - {0x2Au, 0x10u}, - {0x2Bu, 0xFFu}, - {0x2Du, 0x11u}, - {0x2Eu, 0x04u}, - {0x2Fu, 0x22u}, - {0x30u, 0x07u}, - {0x31u, 0xFFu}, - {0x34u, 0x18u}, - {0x36u, 0x60u}, - {0x3Au, 0xA0u}, + {0x01u, 0x82u}, + {0x03u, 0x10u}, + {0x04u, 0x40u}, + {0x08u, 0x89u}, + {0x0Bu, 0x08u}, + {0x0Du, 0x20u}, + {0x0Eu, 0x12u}, + {0x10u, 0x84u}, + {0x12u, 0x10u}, + {0x13u, 0x02u}, + {0x16u, 0x20u}, + {0x18u, 0x28u}, + {0x19u, 0x90u}, + {0x1Cu, 0x42u}, + {0x1Du, 0x20u}, + {0x1Eu, 0x12u}, + {0x20u, 0x24u}, + {0x21u, 0x88u}, + {0x25u, 0x45u}, + {0x26u, 0x02u}, + {0x27u, 0x04u}, + {0x28u, 0x01u}, + {0x29u, 0x12u}, + {0x2Bu, 0x02u}, + {0x2Eu, 0x40u}, + {0x2Fu, 0x01u}, + {0x30u, 0x20u}, + {0x31u, 0x08u}, + {0x33u, 0x40u}, + {0x36u, 0x02u}, + {0x37u, 0x04u}, + {0x38u, 0x04u}, + {0x39u, 0x40u}, + {0x3Du, 0x88u}, {0x3Fu, 0x01u}, - {0x56u, 0x08u}, - {0x58u, 0x04u}, + {0x40u, 0x20u}, + {0x43u, 0x08u}, + {0x58u, 0x20u}, {0x59u, 0x04u}, - {0x5Bu, 0x04u}, - {0x5Cu, 0x01u}, - {0x5Du, 0x90u}, - {0x5Fu, 0x01u}, + {0x5Au, 0x40u}, + {0x5Bu, 0x02u}, + {0x5Fu, 0x50u}, + {0x61u, 0x80u}, + {0x66u, 0x20u}, + {0x67u, 0x01u}, + {0x6Bu, 0x01u}, {0x80u, 0x10u}, - {0x82u, 0x08u}, - {0x83u, 0x40u}, - {0x85u, 0x48u}, - {0x87u, 0x24u}, - {0x88u, 0x10u}, - {0x8Au, 0x0Au}, - {0x8Bu, 0x08u}, - {0x93u, 0x30u}, - {0x94u, 0x10u}, - {0x96u, 0x09u}, - {0x97u, 0x48u}, - {0x98u, 0x10u}, - {0x9Au, 0x0Cu}, - {0x9Bu, 0x06u}, - {0x9Cu, 0x08u}, - {0x9Eu, 0x10u}, - {0xABu, 0x01u}, - {0xADu, 0x48u}, - {0xAFu, 0x12u}, + {0x81u, 0x10u}, + {0x84u, 0x54u}, + {0x87u, 0x04u}, + {0x8Bu, 0x50u}, + {0x91u, 0x40u}, + {0x93u, 0x02u}, + {0x97u, 0x08u}, + {0x99u, 0x06u}, + {0x9Au, 0x10u}, + {0x9Bu, 0x40u}, + {0x9Cu, 0x04u}, + {0x9Du, 0x90u}, + {0x9Fu, 0x18u}, + {0xA0u, 0xA4u}, + {0xA2u, 0x10u}, + {0xA3u, 0x08u}, + {0xA4u, 0x01u}, + {0xA5u, 0x11u}, + {0xA6u, 0xA4u}, + {0xA7u, 0x02u}, + {0xA8u, 0x10u}, + {0xABu, 0x82u}, + {0xACu, 0x01u}, + {0xADu, 0x22u}, + {0xB3u, 0x01u}, + {0xB4u, 0x40u}, + {0xB6u, 0x40u}, + {0xB7u, 0x0Cu}, + {0xC0u, 0x8Du}, + {0xC2u, 0xEFu}, + {0xC4u, 0x2Eu}, + {0xCAu, 0x0Du}, + {0xCCu, 0xCEu}, + {0xCEu, 0xDAu}, + {0xD6u, 0x3Fu}, + {0xD8u, 0x38u}, + {0xE0u, 0x28u}, + {0xE2u, 0x01u}, + {0xE4u, 0x82u}, + {0xE6u, 0x08u}, + {0xE8u, 0x04u}, + {0xEAu, 0x10u}, + {0xECu, 0x0Cu}, + {0xEEu, 0x13u}, + {0x88u, 0x02u}, + {0x8Du, 0x02u}, + {0x8Fu, 0x01u}, + {0x91u, 0x02u}, + {0x93u, 0x05u}, + {0x95u, 0x02u}, + {0x96u, 0x01u}, + {0x97u, 0x09u}, + {0x99u, 0x01u}, + {0x9Bu, 0x02u}, + {0xADu, 0x02u}, + {0xAFu, 0x11u}, {0xB0u, 0x02u}, - {0xB2u, 0x04u}, - {0xB3u, 0x0Eu}, + {0xB1u, 0x04u}, + {0xB3u, 0x03u}, {0xB4u, 0x01u}, - {0xB5u, 0x01u}, - {0xB6u, 0x18u}, - {0xB7u, 0x70u}, - {0xBAu, 0x80u}, + {0xB5u, 0x10u}, + {0xB7u, 0x08u}, + {0xBBu, 0x08u}, + {0xBEu, 0x01u}, {0xD6u, 0x08u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, - {0xDCu, 0x11u}, + {0xDCu, 0x22u}, {0xDDu, 0x90u}, {0xDFu, 0x01u}, - {0x00u, 0x40u}, - {0x01u, 0x02u}, - {0x03u, 0x20u}, - {0x05u, 0x11u}, - {0x08u, 0x02u}, - {0x0Au, 0x06u}, - {0x0Bu, 0x20u}, - {0x0Eu, 0x22u}, - {0x0Fu, 0x04u}, - {0x10u, 0x08u}, - {0x11u, 0x40u}, - {0x12u, 0x40u}, - {0x13u, 0x08u}, - {0x18u, 0x40u}, - {0x1Au, 0x0Au}, - {0x1Bu, 0x40u}, - {0x1Du, 0x11u}, - {0x1Eu, 0x22u}, - {0x1Fu, 0x40u}, - {0x20u, 0x80u}, - {0x25u, 0x08u}, - {0x27u, 0x26u}, - {0x29u, 0x40u}, - {0x2Au, 0x04u}, - {0x2Bu, 0x88u}, - {0x2Cu, 0x02u}, - {0x2Eu, 0x40u}, - {0x2Fu, 0x04u}, - {0x31u, 0x08u}, - {0x32u, 0x80u}, - {0x33u, 0x02u}, - {0x37u, 0x2Au}, - {0x3Au, 0x18u}, - {0x3Du, 0x11u}, - {0x3Eu, 0x04u}, - {0x4Cu, 0x08u}, - {0x4Eu, 0x04u}, - {0x58u, 0x10u}, - {0x59u, 0x08u}, - {0x5Bu, 0x40u}, - {0x5Du, 0x20u}, - {0x5Fu, 0x80u}, - {0x60u, 0x0Au}, - {0x62u, 0x08u}, - {0x63u, 0x20u}, - {0x65u, 0x80u}, + {0x00u, 0x18u}, + {0x01u, 0x80u}, + {0x05u, 0x10u}, + {0x08u, 0xA0u}, + {0x09u, 0x88u}, + {0x0Bu, 0x80u}, + {0x0Eu, 0x20u}, + {0x11u, 0xAAu}, + {0x19u, 0x01u}, + {0x1Au, 0x02u}, + {0x1Cu, 0x80u}, + {0x1Eu, 0x08u}, + {0x20u, 0x08u}, + {0x21u, 0x24u}, + {0x23u, 0x01u}, + {0x24u, 0x40u}, + {0x27u, 0x36u}, + {0x28u, 0x20u}, + {0x29u, 0x21u}, + {0x2Au, 0x40u}, + {0x2Eu, 0x80u}, + {0x30u, 0x02u}, + {0x31u, 0xA8u}, + {0x37u, 0x26u}, + {0x38u, 0x90u}, + {0x39u, 0x08u}, + {0x3Au, 0x01u}, + {0x3Cu, 0x40u}, + {0x40u, 0x81u}, + {0x41u, 0x08u}, + {0x48u, 0x80u}, + {0x49u, 0x08u}, + {0x4Au, 0x0Au}, + {0x4Bu, 0x02u}, + {0x52u, 0x50u}, + {0x53u, 0x48u}, + {0x5Du, 0x40u}, {0x66u, 0x80u}, - {0x67u, 0x04u}, - {0x78u, 0x0Cu}, - {0x80u, 0xC0u}, - {0x83u, 0x40u}, - {0x87u, 0xC0u}, - {0x89u, 0x40u}, - {0x8Bu, 0x03u}, - {0x8Du, 0x20u}, - {0x91u, 0x51u}, - {0x92u, 0x44u}, - {0x96u, 0x08u}, - {0x97u, 0x22u}, - {0x98u, 0x10u}, - {0x99u, 0x0Au}, - {0x9Au, 0x51u}, - {0x9Bu, 0x18u}, - {0x9Cu, 0x04u}, - {0x9Eu, 0x80u}, - {0xA3u, 0x24u}, - {0xA6u, 0x08u}, - {0xA7u, 0x40u}, - {0xAAu, 0x04u}, - {0xACu, 0x10u}, - {0xB1u, 0x04u}, - {0xB2u, 0x04u}, - {0xB4u, 0x04u}, - {0xB5u, 0x08u}, - {0xC0u, 0x5Du}, - {0xC2u, 0xEFu}, + {0x82u, 0x20u}, + {0x86u, 0x90u}, + {0x87u, 0x08u}, + {0x8Du, 0x40u}, + {0x8Fu, 0x20u}, + {0x90u, 0x04u}, + {0x9Bu, 0x01u}, + {0x9Fu, 0x18u}, + {0xA2u, 0x10u}, + {0xA4u, 0x40u}, + {0xA6u, 0xA4u}, + {0xA7u, 0x02u}, + {0xA8u, 0x08u}, + {0xACu, 0x04u}, + {0xB4u, 0x84u}, + {0xC0u, 0x47u}, + {0xC2u, 0x2Fu}, {0xC4u, 0x0Fu}, - {0xCAu, 0x3Fu}, - {0xCCu, 0xEBu}, - {0xCEu, 0xE6u}, - {0xD6u, 0x3Eu}, - {0xD8u, 0x3Eu}, - {0xE0u, 0x10u}, - {0xE2u, 0x06u}, - {0xE4u, 0x16u}, - {0xE6u, 0x01u}, - {0xEEu, 0x02u}, - {0x04u, 0x20u}, - {0x06u, 0x50u}, - {0x0Au, 0x04u}, - {0x0Eu, 0x03u}, - {0x10u, 0x20u}, - {0x12u, 0x18u}, - {0x14u, 0x20u}, - {0x16u, 0x10u}, - {0x18u, 0x04u}, - {0x19u, 0x02u}, - {0x1Au, 0x02u}, - {0x1Du, 0x04u}, - {0x20u, 0x10u}, - {0x21u, 0x01u}, - {0x22u, 0x20u}, - {0x24u, 0x20u}, - {0x25u, 0x08u}, - {0x26u, 0x10u}, - {0x2Au, 0x04u}, - {0x2Cu, 0x04u}, - {0x2Du, 0x02u}, - {0x2Eu, 0x01u}, - {0x2Fu, 0x04u}, - {0x30u, 0x40u}, - {0x32u, 0x08u}, - {0x33u, 0x08u}, - {0x34u, 0x30u}, - {0x35u, 0x01u}, - {0x36u, 0x07u}, - {0x37u, 0x06u}, - {0x3Au, 0x20u}, - {0x3Fu, 0x40u}, - {0x56u, 0x08u}, + {0xCAu, 0x1Fu}, + {0xCCu, 0xEFu}, + {0xCEu, 0x1Fu}, + {0xD0u, 0x0Bu}, + {0xD2u, 0x0Cu}, + {0xD6u, 0x10u}, + {0xD8u, 0x10u}, + {0xE0u, 0x42u}, + {0xE4u, 0x02u}, + {0xE6u, 0x89u}, + {0xE8u, 0x40u}, + {0xEAu, 0x08u}, + {0xEEu, 0x04u}, + {0x01u, 0x01u}, + {0x02u, 0x9Fu}, + {0x04u, 0x80u}, + {0x05u, 0x01u}, + {0x08u, 0x1Fu}, + {0x09u, 0x88u}, + {0x0Au, 0x20u}, + {0x0Bu, 0x21u}, + {0x0Cu, 0xC0u}, + {0x0Du, 0xA2u}, + {0x0Eu, 0x01u}, + {0x0Fu, 0x08u}, + {0x10u, 0x7Fu}, + {0x11u, 0x01u}, + {0x12u, 0x80u}, + {0x15u, 0x01u}, + {0x16u, 0xFFu}, + {0x18u, 0xC0u}, + {0x19u, 0x40u}, + {0x1Au, 0x04u}, + {0x1Cu, 0xC0u}, + {0x1Du, 0x04u}, + {0x1Eu, 0x02u}, + {0x21u, 0x10u}, + {0x22u, 0x60u}, + {0x25u, 0x87u}, + {0x27u, 0x18u}, + {0x28u, 0xC0u}, + {0x2Au, 0x08u}, + {0x2Cu, 0x90u}, + {0x2Du, 0x01u}, + {0x2Eu, 0x40u}, + {0x31u, 0x80u}, + {0x32u, 0xFFu}, + {0x33u, 0x40u}, + {0x35u, 0x3Fu}, + {0x37u, 0x08u}, + {0x39u, 0x20u}, + {0x3Eu, 0x04u}, + {0x3Fu, 0x51u}, + {0x54u, 0x09u}, + {0x56u, 0x04u}, {0x58u, 0x04u}, {0x59u, 0x04u}, {0x5Bu, 0x04u}, - {0x5Cu, 0x91u}, - {0x5Du, 0x90u}, + {0x5Cu, 0x90u}, + {0x5Du, 0x10u}, {0x5Fu, 0x01u}, - {0x82u, 0xFFu}, - {0x84u, 0xFFu}, - {0x87u, 0xFFu}, - {0x8Bu, 0xFFu}, - {0x90u, 0x55u}, - {0x91u, 0x33u}, - {0x92u, 0xAAu}, - {0x93u, 0xCCu}, - {0x94u, 0x33u}, - {0x95u, 0x21u}, - {0x96u, 0xCCu}, - {0x97u, 0x12u}, - {0x98u, 0xFFu}, - {0x9Du, 0x0Fu}, - {0x9Fu, 0xF0u}, - {0xA0u, 0x96u}, - {0xA1u, 0x84u}, - {0xA2u, 0x69u}, - {0xA3u, 0x48u}, - {0xA5u, 0x44u}, - {0xA6u, 0xFFu}, - {0xA7u, 0x88u}, - {0xA8u, 0x0Fu}, - {0xA9u, 0xFFu}, - {0xAAu, 0xF0u}, - {0xADu, 0x11u}, - {0xAEu, 0xFFu}, - {0xAFu, 0x22u}, - {0xB1u, 0xFFu}, - {0xB2u, 0xFFu}, - {0xB8u, 0x02u}, - {0xBAu, 0x08u}, + {0x81u, 0x9Cu}, + {0x84u, 0x01u}, + {0x89u, 0x61u}, + {0x8Bu, 0x1Eu}, + {0x8Cu, 0x01u}, + {0x8Du, 0xA4u}, + {0x8Eu, 0x02u}, + {0x8Fu, 0x10u}, + {0x91u, 0x8Cu}, + {0x93u, 0x10u}, + {0x95u, 0x30u}, + {0x97u, 0x8Fu}, + {0x98u, 0x02u}, + {0x99u, 0xD1u}, + {0x9Bu, 0x22u}, + {0x9Du, 0x08u}, + {0x9Fu, 0x40u}, + {0xA1u, 0x9Cu}, + {0xA5u, 0x94u}, + {0xA7u, 0x08u}, + {0xADu, 0x10u}, + {0xAFu, 0x8Cu}, + {0xB0u, 0x03u}, + {0xB1u, 0x30u}, + {0xB3u, 0xC1u}, + {0xB7u, 0x0Fu}, + {0xBBu, 0x0Eu}, {0xBEu, 0x01u}, - {0xBFu, 0x01u}, + {0xD4u, 0x09u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, - {0xDCu, 0x01u}, {0xDFu, 0x01u}, - {0x01u, 0x01u}, - {0x03u, 0x20u}, - {0x05u, 0x40u}, - {0x06u, 0x20u}, - {0x07u, 0x08u}, - {0x08u, 0x0Au}, - {0x0Au, 0x04u}, - {0x0Du, 0x02u}, - {0x0Eu, 0x24u}, - {0x10u, 0x86u}, - {0x11u, 0xC0u}, - {0x13u, 0x08u}, - {0x15u, 0x41u}, - {0x17u, 0x16u}, - {0x19u, 0x08u}, - {0x1Au, 0x80u}, - {0x1Du, 0x42u}, - {0x1Eu, 0x20u}, - {0x1Fu, 0x14u}, - {0x23u, 0x40u}, - {0x24u, 0x08u}, - {0x26u, 0x08u}, - {0x27u, 0x01u}, - {0x28u, 0x40u}, - {0x29u, 0x40u}, - {0x2Au, 0x08u}, - {0x2Bu, 0x88u}, - {0x2Fu, 0x52u}, + {0x00u, 0x04u}, + {0x03u, 0x01u}, + {0x05u, 0x16u}, + {0x06u, 0x02u}, + {0x0Au, 0x08u}, + {0x0Eu, 0x56u}, + {0x14u, 0x40u}, + {0x15u, 0x50u}, + {0x19u, 0x01u}, + {0x1Fu, 0x04u}, + {0x20u, 0x40u}, + {0x21u, 0x88u}, + {0x26u, 0x44u}, + {0x27u, 0x48u}, + {0x28u, 0xA0u}, + {0x2Au, 0x80u}, + {0x2Du, 0x42u}, + {0x2Fu, 0x20u}, + {0x30u, 0x82u}, {0x31u, 0x08u}, - {0x32u, 0x80u}, - {0x33u, 0x02u}, - {0x34u, 0x44u}, - {0x35u, 0x08u}, + {0x32u, 0x20u}, + {0x34u, 0x40u}, + {0x35u, 0x04u}, + {0x36u, 0x81u}, {0x37u, 0x20u}, - {0x39u, 0x08u}, - {0x3Au, 0x14u}, - {0x45u, 0x80u}, - {0x46u, 0x01u}, - {0x59u, 0x04u}, - {0x5Au, 0x10u}, - {0x5Bu, 0x82u}, - {0x5Cu, 0x40u}, - {0x5Fu, 0x10u}, - {0x61u, 0x80u}, - {0x66u, 0x20u}, - {0x67u, 0x02u}, - {0x6Fu, 0x02u}, - {0x82u, 0x40u}, - {0x86u, 0x08u}, - {0x8Au, 0x8Au}, - {0x8Du, 0x04u}, - {0x8Eu, 0x01u}, - {0x8Fu, 0x80u}, - {0x92u, 0x04u}, - {0x93u, 0x80u}, - {0x97u, 0x6Au}, - {0x98u, 0x0Au}, - {0x99u, 0x80u}, - {0x9Au, 0x11u}, - {0x9Bu, 0x3Cu}, - {0x9Du, 0x40u}, - {0x9Eu, 0x0Cu}, - {0x9Fu, 0x01u}, - {0xA0u, 0x82u}, - {0xA1u, 0x08u}, - {0xA2u, 0x01u}, - {0xA3u, 0xBCu}, - {0xA6u, 0x80u}, - {0xA7u, 0x02u}, - {0xABu, 0x20u}, - {0xACu, 0x40u}, - {0xAFu, 0x80u}, - {0xB3u, 0x02u}, - {0xB7u, 0x08u}, - {0xC0u, 0xECu}, - {0xC2u, 0x7Eu}, - {0xC4u, 0xFFu}, - {0xCAu, 0xDFu}, - {0xCCu, 0x3Bu}, - {0xCEu, 0x06u}, - {0xD6u, 0x3Fu}, - {0xD8u, 0x38u}, - {0xE2u, 0x09u}, - {0xE6u, 0xA2u}, - {0xE8u, 0x03u}, - {0xEEu, 0x08u}, - {0x85u, 0x04u}, - {0x88u, 0x01u}, - {0x8Du, 0x02u}, - {0x91u, 0x04u}, - {0x9Bu, 0x20u}, - {0x9Cu, 0xD1u}, - {0x9Eu, 0x04u}, - {0xA0u, 0x01u}, - {0xA1u, 0x22u}, - {0xA5u, 0x08u}, - {0xAAu, 0x02u}, - {0xABu, 0x04u}, - {0xADu, 0x10u}, - {0xAEu, 0x10u}, - {0xB0u, 0x02u}, - {0xB1u, 0x04u}, - {0xB5u, 0x41u}, - {0xE2u, 0x89u}, - {0xE6u, 0x10u}, - {0xEAu, 0x10u}, - {0xECu, 0x80u}, - {0x00u, 0x0Fu}, - {0x02u, 0xF0u}, - {0x04u, 0x11u}, - {0x05u, 0x44u}, - {0x06u, 0x22u}, - {0x07u, 0x88u}, - {0x08u, 0x12u}, - {0x09u, 0x48u}, - {0x0Au, 0x21u}, - {0x0Bu, 0x84u}, - {0x0Du, 0x0Fu}, - {0x0Fu, 0xF0u}, - {0x11u, 0x12u}, - {0x12u, 0xFFu}, - {0x13u, 0x21u}, - {0x16u, 0xFFu}, - {0x19u, 0xFFu}, - {0x1Au, 0xFFu}, - {0x1Du, 0xFFu}, - {0x21u, 0x33u}, - {0x23u, 0xCCu}, + {0x38u, 0xD0u}, + {0x3Au, 0x01u}, + {0x3Cu, 0x80u}, + {0x3Eu, 0x16u}, + {0x44u, 0x01u}, + {0x47u, 0x40u}, + {0x59u, 0x08u}, + {0x5Bu, 0x92u}, + {0x5Cu, 0x02u}, + {0x5Eu, 0x80u}, + {0x5Fu, 0x14u}, + {0x63u, 0x01u}, + {0x64u, 0x01u}, + {0x67u, 0x40u}, + {0x7Cu, 0x40u}, + {0x7Du, 0x80u}, + {0x80u, 0xB0u}, + {0x81u, 0x35u}, + {0x82u, 0x81u}, + {0x84u, 0x02u}, + {0x85u, 0x80u}, + {0x8Au, 0x04u}, + {0x8Bu, 0x40u}, + {0x8Du, 0x81u}, + {0x8Eu, 0x22u}, + {0x90u, 0x04u}, + {0x93u, 0x83u}, + {0x94u, 0x91u}, + {0x99u, 0x08u}, + {0x9Bu, 0x21u}, + {0x9Cu, 0x20u}, + {0x9Du, 0xA0u}, + {0x9Eu, 0x01u}, + {0xA0u, 0x80u}, + {0xA4u, 0x02u}, + {0xA5u, 0xDDu}, + {0xA6u, 0x0Au}, + {0xABu, 0x08u}, + {0xAFu, 0x01u}, + {0xB2u, 0x01u}, + {0xB4u, 0x10u}, + {0xB5u, 0x10u}, + {0xB7u, 0x02u}, + {0xC0u, 0xF5u}, + {0xC2u, 0xF2u}, + {0xC4u, 0xD0u}, + {0xCAu, 0xDBu}, + {0xCCu, 0xFFu}, + {0xCEu, 0xFDu}, + {0xD6u, 0xFFu}, + {0xD8u, 0x98u}, + {0xE2u, 0x2Du}, + {0xE4u, 0x10u}, + {0xE6u, 0x05u}, + {0xE8u, 0x02u}, + {0xEAu, 0x25u}, + {0x00u, 0x11u}, + {0x01u, 0x40u}, + {0x02u, 0x22u}, + {0x03u, 0x03u}, + {0x04u, 0xFFu}, + {0x05u, 0x80u}, + {0x0Au, 0xFFu}, + {0x0Bu, 0x20u}, + {0x0Cu, 0x0Fu}, + {0x0Du, 0x40u}, + {0x0Eu, 0xF0u}, + {0x0Fu, 0x80u}, + {0x10u, 0x33u}, + {0x12u, 0xCCu}, + {0x13u, 0x24u}, + {0x14u, 0x48u}, + {0x16u, 0x84u}, + {0x17u, 0x18u}, + {0x18u, 0x12u}, + {0x19u, 0x24u}, + {0x1Au, 0x21u}, + {0x1Bu, 0x09u}, + {0x1Cu, 0xFFu}, {0x24u, 0x44u}, - {0x25u, 0x11u}, {0x26u, 0x88u}, - {0x27u, 0x22u}, - {0x28u, 0x48u}, - {0x2Au, 0x84u}, - {0x2Bu, 0xFFu}, - {0x2Cu, 0x33u}, - {0x2Eu, 0xCCu}, - {0x35u, 0xFFu}, - {0x36u, 0xFFu}, - {0x3Eu, 0x40u}, - {0x3Fu, 0x10u}, + {0x27u, 0x04u}, + {0x29u, 0x24u}, + {0x2Bu, 0x12u}, + {0x30u, 0xFFu}, + {0x31u, 0x07u}, + {0x33u, 0x38u}, + {0x37u, 0xC0u}, + {0x3Eu, 0x01u}, + {0x3Fu, 0x40u}, + {0x56u, 0x02u}, + {0x57u, 0x2Cu}, {0x58u, 0x04u}, {0x59u, 0x04u}, + {0x5Bu, 0x04u}, + {0x5Cu, 0x20u}, {0x5Fu, 0x01u}, - {0x80u, 0x01u}, - {0x81u, 0x02u}, - {0x82u, 0x02u}, - {0x83u, 0x05u}, - {0x84u, 0x04u}, - {0x85u, 0x02u}, - {0x87u, 0x21u}, - {0x88u, 0x04u}, - {0x89u, 0x02u}, - {0x8Bu, 0x01u}, - {0x8Cu, 0x02u}, - {0x8Du, 0x02u}, - {0x8Eu, 0x01u}, - {0x8Fu, 0x01u}, - {0x91u, 0x10u}, - {0x94u, 0x02u}, - {0x96u, 0x09u}, - {0x99u, 0x01u}, - {0x9Bu, 0x02u}, - {0x9Cu, 0x04u}, - {0xA0u, 0x02u}, - {0xA2u, 0x01u}, - {0xA4u, 0x02u}, - {0xA5u, 0x08u}, - {0xA6u, 0x11u}, - {0xA8u, 0x04u}, - {0xADu, 0x08u}, - {0xAFu, 0x10u}, - {0xB0u, 0x03u}, - {0xB1u, 0x18u}, - {0xB2u, 0x10u}, - {0xB3u, 0x03u}, - {0xB4u, 0x04u}, - {0xB5u, 0x04u}, - {0xB6u, 0x08u}, - {0xB7u, 0x20u}, + {0x80u, 0x0Fu}, + {0x82u, 0xF0u}, + {0x84u, 0xFFu}, + {0x85u, 0x44u}, + {0x87u, 0x88u}, + {0x89u, 0x84u}, + {0x8Bu, 0x48u}, + {0x8Fu, 0xFFu}, + {0x91u, 0x11u}, + {0x92u, 0xFFu}, + {0x93u, 0x22u}, + {0x94u, 0x33u}, + {0x96u, 0xCCu}, + {0x98u, 0xFFu}, + {0x9Bu, 0xFFu}, + {0x9Cu, 0x96u}, + {0x9Eu, 0x69u}, + {0xA0u, 0x55u}, + {0xA1u, 0x33u}, + {0xA2u, 0xAAu}, + {0xA3u, 0xCCu}, + {0xA5u, 0xFFu}, + {0xA6u, 0xFFu}, + {0xA9u, 0x21u}, + {0xABu, 0x12u}, + {0xADu, 0x0Fu}, + {0xAEu, 0xFFu}, + {0xAFu, 0xF0u}, + {0xB0u, 0xFFu}, + {0xB3u, 0xFFu}, {0xBAu, 0x02u}, - {0xBBu, 0x08u}, - {0xBEu, 0x10u}, - {0xBFu, 0x01u}, - {0xD6u, 0x08u}, + {0xBFu, 0x04u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, - {0xDCu, 0x11u}, - {0xDDu, 0x90u}, + {0xDCu, 0x02u}, {0xDFu, 0x01u}, - {0x00u, 0x02u}, - {0x02u, 0x40u}, - {0x03u, 0x24u}, - {0x04u, 0x80u}, - {0x05u, 0x21u}, - {0x06u, 0x10u}, - {0x08u, 0x04u}, - {0x09u, 0x25u}, - {0x0Au, 0x80u}, - {0x0Eu, 0x21u}, - {0x10u, 0x02u}, - {0x11u, 0x14u}, - {0x12u, 0x01u}, - {0x15u, 0x21u}, - {0x16u, 0x20u}, - {0x1Au, 0x01u}, - {0x1Du, 0x13u}, - {0x1Eu, 0x20u}, - {0x1Fu, 0x40u}, - {0x21u, 0x10u}, - {0x24u, 0x01u}, - {0x25u, 0x11u}, - {0x27u, 0x20u}, - {0x28u, 0x04u}, - {0x2Au, 0x01u}, - {0x2Bu, 0x20u}, - {0x2Cu, 0x02u}, - {0x2Du, 0x09u}, - {0x2Fu, 0x40u}, - {0x31u, 0x20u}, - {0x32u, 0x42u}, - {0x37u, 0x22u}, - {0x39u, 0x14u}, - {0x3Au, 0x40u}, - {0x3Cu, 0x01u}, - {0x3Du, 0xA0u}, - {0x3Eu, 0x08u}, - {0x5Du, 0x40u}, - {0x5Eu, 0x10u}, - {0x5Fu, 0x04u}, - {0x65u, 0x80u}, - {0x66u, 0x28u}, - {0x81u, 0x88u}, - {0x85u, 0x20u}, - {0x88u, 0x08u}, - {0x8Au, 0x01u}, - {0x8Bu, 0x20u}, - {0x8Du, 0x10u}, - {0x8Eu, 0x10u}, - {0x90u, 0x80u}, - {0x91u, 0x14u}, - {0x93u, 0x04u}, - {0x95u, 0x08u}, - {0x96u, 0x02u}, - {0x97u, 0x80u}, + {0x01u, 0x02u}, + {0x02u, 0x20u}, + {0x05u, 0x95u}, + {0x07u, 0xA2u}, + {0x08u, 0x0Au}, + {0x0Bu, 0x09u}, + {0x0Cu, 0x01u}, + {0x0Du, 0x40u}, + {0x0Eu, 0x12u}, + {0x0Fu, 0x98u}, + {0x10u, 0x10u}, + {0x11u, 0x08u}, + {0x12u, 0x42u}, + {0x15u, 0x04u}, + {0x19u, 0x02u}, + {0x1Fu, 0x01u}, + {0x22u, 0x08u}, + {0x24u, 0x20u}, + {0x25u, 0x01u}, + {0x26u, 0x84u}, + {0x27u, 0x80u}, + {0x29u, 0x84u}, + {0x2Bu, 0x48u}, + {0x2Fu, 0x14u}, + {0x31u, 0x11u}, + {0x34u, 0x12u}, + {0x36u, 0x04u}, + {0x39u, 0x84u}, + {0x3Bu, 0x10u}, + {0x3Cu, 0x20u}, + {0x3Du, 0x86u}, + {0x48u, 0x02u}, + {0x4Au, 0x01u}, + {0x67u, 0x80u}, + {0x68u, 0x05u}, + {0x69u, 0x05u}, + {0x6Au, 0x12u}, + {0x6Cu, 0x01u}, + {0x6Eu, 0x04u}, + {0x6Fu, 0x66u}, + {0x70u, 0x04u}, + {0x71u, 0xA0u}, + {0x72u, 0x01u}, + {0x73u, 0x40u}, + {0x74u, 0x80u}, + {0x76u, 0x01u}, + {0x7Bu, 0x0Cu}, + {0x80u, 0x80u}, + {0x83u, 0x64u}, + {0x87u, 0x02u}, + {0x88u, 0x01u}, + {0x8Cu, 0x82u}, + {0x8Eu, 0x08u}, + {0x91u, 0x20u}, + {0x92u, 0x28u}, + {0x93u, 0xA8u}, + {0x94u, 0x68u}, + {0x95u, 0x01u}, + {0x96u, 0x01u}, + {0x97u, 0x42u}, + {0x98u, 0x0Fu}, + {0x99u, 0x38u}, + {0x9Au, 0x40u}, {0x9Bu, 0x02u}, - {0x9Cu, 0xD9u}, - {0x9Eu, 0x04u}, - {0xA0u, 0x01u}, - {0xA1u, 0x64u}, - {0xA5u, 0x19u}, - {0xAAu, 0x40u}, - {0xB0u, 0x04u}, - {0xB2u, 0x02u}, - {0xB4u, 0x04u}, - {0xB7u, 0x08u}, - {0xC0u, 0xFEu}, - {0xC2u, 0xAEu}, - {0xC4u, 0x77u}, - {0xCAu, 0x57u}, - {0xCCu, 0xADu}, + {0x9Du, 0x02u}, + {0x9Eu, 0x0Cu}, + {0x9Fu, 0x08u}, + {0xA0u, 0x10u}, + {0xA1u, 0x44u}, + {0xA2u, 0x22u}, + {0xA3u, 0x08u}, + {0xA4u, 0x04u}, + {0xA5u, 0x20u}, + {0xA6u, 0x08u}, + {0xA8u, 0x04u}, + {0xA9u, 0x10u}, + {0xABu, 0x60u}, + {0xACu, 0x11u}, + {0xADu, 0x40u}, + {0xB4u, 0x80u}, + {0xB5u, 0x44u}, + {0xB7u, 0x40u}, + {0xC0u, 0xFCu}, + {0xC2u, 0xFFu}, + {0xC4u, 0x2Du}, + {0xCAu, 0x6Fu}, + {0xCCu, 0xE5u}, {0xCEu, 0xFEu}, - {0xD6u, 0x70u}, - {0xD8u, 0x70u}, - {0xE0u, 0xA0u}, - {0xE2u, 0x02u}, - {0xE4u, 0x30u}, - {0xE6u, 0x01u}, + {0xD8u, 0x80u}, + {0xE0u, 0x10u}, + {0xE2u, 0x80u}, + {0xE4u, 0x40u}, {0xE8u, 0x10u}, - {0xEAu, 0x40u}, - {0xECu, 0xA1u}, - {0xEEu, 0x02u}, - {0x00u, 0x30u}, - {0x02u, 0xC0u}, - {0x03u, 0x08u}, - {0x04u, 0x50u}, - {0x05u, 0x40u}, - {0x06u, 0xA0u}, - {0x07u, 0x01u}, - {0x08u, 0x0Fu}, - {0x0Au, 0xF0u}, - {0x0Bu, 0x20u}, - {0x0Du, 0x01u}, - {0x0Fu, 0x0Eu}, - {0x11u, 0x18u}, - {0x13u, 0x03u}, - {0x14u, 0x06u}, + {0xEAu, 0x41u}, + {0xEEu, 0x43u}, + {0x05u, 0x50u}, + {0x06u, 0x04u}, + {0x07u, 0xA0u}, + {0x09u, 0x05u}, + {0x0Au, 0x03u}, + {0x0Bu, 0x0Au}, + {0x0Cu, 0x40u}, + {0x0Du, 0x30u}, + {0x0Fu, 0xC0u}, + {0x11u, 0x06u}, + {0x12u, 0x24u}, + {0x13u, 0x09u}, + {0x14u, 0x24u}, {0x15u, 0x03u}, {0x16u, 0x09u}, - {0x17u, 0x14u}, - {0x18u, 0x60u}, - {0x19u, 0x02u}, - {0x1Au, 0x90u}, - {0x1Cu, 0x03u}, - {0x1Eu, 0x0Cu}, - {0x20u, 0x05u}, - {0x22u, 0x0Au}, - {0x23u, 0x80u}, - {0x27u, 0x1Fu}, - {0x29u, 0x04u}, - {0x31u, 0x80u}, - {0x33u, 0x1Fu}, - {0x35u, 0x40u}, - {0x36u, 0xFFu}, - {0x37u, 0x20u}, - {0x3Eu, 0x40u}, - {0x3Fu, 0x10u}, + {0x17u, 0x0Cu}, + {0x18u, 0x24u}, + {0x19u, 0x60u}, + {0x1Au, 0x12u}, + {0x1Bu, 0x90u}, + {0x1Cu, 0x40u}, + {0x22u, 0x18u}, + {0x24u, 0x40u}, + {0x28u, 0x40u}, + {0x2Du, 0x0Fu}, + {0x2Eu, 0x20u}, + {0x2Fu, 0xF0u}, + {0x30u, 0x40u}, + {0x32u, 0x07u}, + {0x34u, 0x38u}, + {0x37u, 0xFFu}, + {0x3Eu, 0x01u}, + {0x3Fu, 0x40u}, + {0x56u, 0x08u}, {0x58u, 0x04u}, {0x59u, 0x04u}, - {0x5Cu, 0x10u}, + {0x5Bu, 0x04u}, + {0x5Cu, 0x02u}, + {0x5Du, 0x90u}, {0x5Fu, 0x01u}, - {0x80u, 0x04u}, - {0x81u, 0x80u}, - {0x84u, 0x10u}, - {0x85u, 0x53u}, - {0x87u, 0xACu}, + {0x81u, 0x01u}, + {0x83u, 0x02u}, + {0x84u, 0x04u}, + {0x85u, 0x04u}, + {0x86u, 0x08u}, + {0x87u, 0x08u}, {0x89u, 0x01u}, + {0x8Au, 0x3Fu}, {0x8Bu, 0x02u}, - {0x8Du, 0x40u}, - {0x91u, 0x12u}, - {0x93u, 0x01u}, - {0x94u, 0x01u}, - {0x98u, 0x15u}, - {0x9Au, 0x2Au}, - {0x9Cu, 0x20u}, - {0x9Du, 0x28u}, - {0x9Fu, 0x04u}, - {0xA1u, 0x04u}, - {0xA3u, 0x08u}, - {0xA4u, 0x02u}, - {0xA8u, 0x08u}, - {0xB0u, 0x0Cu}, - {0xB1u, 0xC0u}, - {0xB2u, 0x03u}, - {0xB3u, 0x30u}, - {0xB4u, 0x30u}, - {0xB5u, 0x0Fu}, - {0xBEu, 0x15u}, - {0xBFu, 0x15u}, + {0x8Cu, 0x3Fu}, + {0x8Du, 0x50u}, + {0x8Fu, 0x8Fu}, + {0x91u, 0x10u}, + {0x92u, 0x3Fu}, + {0x93u, 0x8Fu}, + {0x94u, 0x3Fu}, + {0x95u, 0x20u}, + {0x97u, 0x0Fu}, + {0x98u, 0x01u}, + {0x99u, 0x0Fu}, + {0x9Au, 0x02u}, + {0x9Bu, 0x80u}, + {0x9Cu, 0x10u}, + {0x9Du, 0x04u}, + {0x9Eu, 0x20u}, + {0x9Fu, 0x08u}, + {0xA0u, 0x10u}, + {0xA1u, 0x4Fu}, + {0xA2u, 0x20u}, + {0xA3u, 0x80u}, + {0xA4u, 0x04u}, + {0xA6u, 0x08u}, + {0xA7u, 0x10u}, + {0xA8u, 0x01u}, + {0xAAu, 0x02u}, + {0xAEu, 0x3Fu}, + {0xB1u, 0x03u}, + {0xB2u, 0x0Cu}, + {0xB3u, 0xF0u}, + {0xB4u, 0x03u}, + {0xB6u, 0x30u}, + {0xB7u, 0x0Cu}, + {0xB9u, 0x08u}, + {0xBAu, 0xA8u}, + {0xBBu, 0x82u}, + {0xD4u, 0x01u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, + {0xDCu, 0x22u}, + {0xDDu, 0x20u}, {0xDFu, 0x01u}, - {0x02u, 0x50u}, - {0x04u, 0x02u}, + {0x00u, 0x40u}, + {0x01u, 0x04u}, + {0x03u, 0x08u}, {0x05u, 0x04u}, - {0x06u, 0x08u}, - {0x08u, 0x04u}, - {0x09u, 0x80u}, - {0x0Bu, 0x08u}, - {0x0Cu, 0x24u}, - {0x0Du, 0x40u}, - {0x0Fu, 0x01u}, - {0x10u, 0x20u}, - {0x13u, 0x20u}, + {0x06u, 0x02u}, + {0x07u, 0x04u}, + {0x08u, 0x02u}, + {0x09u, 0x04u}, + {0x0Bu, 0x0Au}, + {0x0Eu, 0x28u}, + {0x0Fu, 0x82u}, + {0x10u, 0x42u}, + {0x12u, 0x08u}, + {0x13u, 0x08u}, + {0x14u, 0x02u}, {0x15u, 0x02u}, - {0x16u, 0x40u}, - {0x18u, 0x04u}, - {0x1Au, 0x90u}, - {0x1Cu, 0x02u}, - {0x20u, 0x90u}, - {0x21u, 0x20u}, - {0x24u, 0xA0u}, - {0x25u, 0x40u}, - {0x26u, 0x18u}, - {0x2Au, 0x02u}, - {0x2Cu, 0x10u}, - {0x2Fu, 0x48u}, - {0x32u, 0x01u}, - {0x33u, 0x40u}, - {0x35u, 0x20u}, - {0x36u, 0x0Au}, - {0x38u, 0x02u}, - {0x39u, 0x88u}, - {0x3Au, 0x18u}, - {0x3Bu, 0x08u}, - {0x3Du, 0x28u}, - {0x3Eu, 0x04u}, - {0x3Fu, 0x82u}, - {0x69u, 0x14u}, - {0x6Bu, 0x52u}, - {0x70u, 0x21u}, - {0x71u, 0x84u}, - {0x72u, 0x02u}, - {0x73u, 0x20u}, - {0x80u, 0x10u}, - {0x82u, 0x50u}, - {0x86u, 0x08u}, - {0x87u, 0x01u}, + {0x16u, 0x20u}, + {0x17u, 0x10u}, + {0x1Au, 0x48u}, + {0x1Bu, 0x08u}, + {0x1Cu, 0x04u}, + {0x1Du, 0x04u}, + {0x1Eu, 0x08u}, + {0x1Fu, 0x80u}, + {0x23u, 0x02u}, + {0x25u, 0x05u}, + {0x26u, 0x80u}, + {0x28u, 0x01u}, + {0x29u, 0x40u}, + {0x2Du, 0x08u}, + {0x2Eu, 0x02u}, + {0x2Fu, 0x20u}, + {0x31u, 0x20u}, + {0x32u, 0x05u}, + {0x34u, 0x02u}, + {0x36u, 0xA0u}, + {0x37u, 0x04u}, + {0x38u, 0x28u}, + {0x3Bu, 0x40u}, + {0x3Du, 0x02u}, + {0x3Fu, 0xA8u}, + {0x58u, 0x10u}, + {0x5Bu, 0x40u}, + {0x5Du, 0x80u}, + {0x60u, 0x08u}, + {0x62u, 0x40u}, + {0x63u, 0x08u}, + {0x79u, 0x02u}, + {0x7Bu, 0x80u}, + {0x81u, 0x01u}, + {0x85u, 0x30u}, + {0x87u, 0x80u}, {0x88u, 0x40u}, - {0x89u, 0x01u}, - {0x8Au, 0x10u}, - {0x8Du, 0x01u}, - {0x92u, 0x44u}, - {0x93u, 0x05u}, - {0x94u, 0x20u}, - {0x95u, 0x08u}, - {0x99u, 0x20u}, - {0x9Au, 0x10u}, - {0x9Cu, 0xC9u}, - {0x9Eu, 0x04u}, - {0x9Fu, 0x10u}, - {0xA3u, 0x40u}, - {0xA5u, 0x08u}, - {0xA6u, 0x0Au}, - {0xA8u, 0x04u}, - {0xAAu, 0xA0u}, + {0x8Au, 0x04u}, + {0x8Cu, 0x20u}, + {0x8Du, 0x08u}, + {0x8Eu, 0x42u}, + {0x8Fu, 0x04u}, + {0x91u, 0x44u}, + {0x92u, 0x22u}, + {0x93u, 0xA8u}, + {0x95u, 0x01u}, + {0x96u, 0x01u}, + {0x98u, 0x06u}, + {0x99u, 0x80u}, + {0x9Au, 0x22u}, + {0x9Bu, 0x10u}, + {0x9Cu, 0x80u}, + {0x9Du, 0x46u}, + {0x9Eu, 0x4Cu}, + {0xA0u, 0x12u}, + {0xA2u, 0x30u}, + {0xA3u, 0x31u}, + {0xA4u, 0x24u}, + {0xA5u, 0x2Cu}, + {0xA6u, 0x80u}, + {0xA7u, 0x48u}, + {0xA8u, 0x40u}, {0xABu, 0x04u}, - {0xAFu, 0x04u}, - {0xB0u, 0x04u}, - {0xB1u, 0x80u}, + {0xADu, 0x20u}, + {0xAFu, 0x88u}, {0xB2u, 0x04u}, - {0xB6u, 0x02u}, - {0xC0u, 0x7Cu}, - {0xC2u, 0xE7u}, - {0xC4u, 0x16u}, - {0xCAu, 0xE1u}, - {0xCCu, 0xE9u}, - {0xCEu, 0xFFu}, - {0xE0u, 0x21u}, - {0xE2u, 0x80u}, - {0xE4u, 0x01u}, - {0xE8u, 0x60u}, - {0xEAu, 0x88u}, - {0xECu, 0x81u}, - {0xEEu, 0x20u}, - {0x00u, 0x02u}, - {0x02u, 0x09u}, - {0x04u, 0x02u}, - {0x05u, 0x08u}, - {0x06u, 0x11u}, - {0x07u, 0x10u}, - {0x0Du, 0x04u}, - {0x0Fu, 0x03u}, - {0x11u, 0x01u}, - {0x13u, 0x06u}, - {0x14u, 0x02u}, - {0x15u, 0x03u}, - {0x16u, 0x01u}, - {0x17u, 0x04u}, - {0x18u, 0x01u}, - {0x19u, 0x10u}, - {0x1Au, 0x02u}, - {0x1Cu, 0x02u}, - {0x1Eu, 0x05u}, - {0x21u, 0x05u}, - {0x23u, 0x02u}, - {0x29u, 0x08u}, - {0x30u, 0x10u}, - {0x32u, 0x04u}, - {0x34u, 0x03u}, - {0x35u, 0x18u}, - {0x36u, 0x08u}, - {0x37u, 0x07u}, - {0x3Au, 0x20u}, - {0x3Bu, 0x80u}, + {0xB4u, 0x42u}, + {0xC0u, 0xE7u}, + {0xC2u, 0xFFu}, + {0xC4u, 0xFFu}, + {0xCAu, 0xC8u}, + {0xCCu, 0xF7u}, + {0xCEu, 0xFEu}, + {0xD6u, 0x1Cu}, + {0xD8u, 0x0Cu}, + {0xE4u, 0x10u}, + {0xE6u, 0x80u}, + {0xE8u, 0x51u}, + {0xECu, 0x08u}, + {0xEEu, 0x02u}, + {0x01u, 0x02u}, + {0x03u, 0x01u}, + {0x08u, 0x01u}, + {0x0Au, 0x06u}, + {0x0Du, 0x02u}, + {0x0Fu, 0x01u}, + {0x11u, 0x10u}, + {0x13u, 0x20u}, + {0x15u, 0x01u}, + {0x17u, 0x12u}, + {0x1Cu, 0x04u}, + {0x1Eu, 0x03u}, + {0x20u, 0x03u}, + {0x22u, 0x04u}, + {0x25u, 0x02u}, + {0x27u, 0x09u}, + {0x28u, 0x05u}, + {0x2Au, 0x02u}, + {0x2Du, 0x02u}, + {0x2Fu, 0x25u}, + {0x31u, 0x08u}, + {0x33u, 0x03u}, + {0x35u, 0x30u}, + {0x36u, 0x07u}, + {0x37u, 0x04u}, + {0x3Au, 0x80u}, + {0x3Bu, 0x08u}, {0x3Fu, 0x10u}, - {0x54u, 0x01u}, + {0x56u, 0x08u}, {0x58u, 0x04u}, {0x59u, 0x04u}, {0x5Bu, 0x04u}, - {0x5Cu, 0x01u}, - {0x5Du, 0x10u}, + {0x5Cu, 0x20u}, + {0x5Du, 0x90u}, {0x5Fu, 0x01u}, - {0x83u, 0x18u}, - {0x84u, 0x90u}, - {0x86u, 0x2Fu}, - {0x87u, 0x20u}, - {0x88u, 0xC0u}, - {0x89u, 0x40u}, - {0x8Au, 0x1Fu}, - {0x8Cu, 0x03u}, - {0x8Eu, 0x0Cu}, - {0x8Fu, 0x04u}, - {0x91u, 0x24u}, - {0x93u, 0x12u}, - {0x96u, 0x70u}, - {0x97u, 0x24u}, - {0x98u, 0x0Fu}, - {0x9Eu, 0x80u}, - {0xA0u, 0x06u}, - {0xA2u, 0x09u}, - {0xA7u, 0x03u}, - {0xA8u, 0x05u}, - {0xA9u, 0x24u}, - {0xAAu, 0x0Au}, - {0xABu, 0x09u}, - {0xACu, 0xA0u}, - {0xAEu, 0x4Fu}, - {0xB0u, 0x80u}, - {0xB2u, 0x7Fu}, - {0xB3u, 0x07u}, - {0xB5u, 0x40u}, - {0xB7u, 0x38u}, - {0xBEu, 0x01u}, - {0xBFu, 0x10u}, + {0x81u, 0x24u}, + {0x83u, 0x12u}, + {0x84u, 0x40u}, + {0x88u, 0x20u}, + {0x8Bu, 0x18u}, + {0x8Fu, 0x20u}, + {0x90u, 0x29u}, + {0x91u, 0x40u}, + {0x92u, 0x52u}, + {0x93u, 0x03u}, + {0x94u, 0x08u}, + {0x97u, 0x04u}, + {0x99u, 0x80u}, + {0x9Cu, 0x10u}, + {0x9Du, 0x40u}, + {0x9Fu, 0x80u}, + {0xA0u, 0x02u}, + {0xA1u, 0x24u}, + {0xA3u, 0x09u}, + {0xA8u, 0x01u}, + {0xAEu, 0x04u}, + {0xAFu, 0x24u}, + {0xB0u, 0x03u}, + {0xB1u, 0x07u}, + {0xB2u, 0x04u}, + {0xB3u, 0xC0u}, + {0xB4u, 0x60u}, + {0xB5u, 0x38u}, + {0xB6u, 0x18u}, + {0xBEu, 0x51u}, + {0xBFu, 0x04u}, + {0xD6u, 0x08u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, - {0xDCu, 0x11u}, + {0xDCu, 0x22u}, + {0xDDu, 0x90u}, {0xDFu, 0x01u}, {0x00u, 0x08u}, - {0x01u, 0x02u}, - {0x04u, 0x20u}, - {0x06u, 0x22u}, - {0x0Au, 0x2Au}, - {0x0Eu, 0x25u}, - {0x11u, 0x0Cu}, - {0x12u, 0x10u}, - {0x14u, 0x42u}, + {0x03u, 0x08u}, + {0x06u, 0x08u}, + {0x0Au, 0xA1u}, + {0x0Eu, 0x02u}, + {0x10u, 0x04u}, + {0x11u, 0x81u}, + {0x14u, 0x80u}, {0x16u, 0x04u}, - {0x18u, 0x04u}, - {0x19u, 0x02u}, - {0x1Au, 0x2Au}, - {0x1Eu, 0x20u}, - {0x1Fu, 0x01u}, - {0x21u, 0x40u}, - {0x22u, 0xA0u}, - {0x24u, 0x01u}, - {0x25u, 0x04u}, - {0x27u, 0x04u}, - {0x28u, 0x88u}, - {0x2Du, 0x04u}, - {0x2Eu, 0x20u}, - {0x30u, 0x01u}, + {0x18u, 0x80u}, + {0x19u, 0x18u}, + {0x1Bu, 0x80u}, + {0x1Eu, 0x02u}, + {0x1Fu, 0x40u}, + {0x21u, 0x10u}, + {0x22u, 0x15u}, + {0x25u, 0x41u}, + {0x26u, 0x34u}, + {0x27u, 0x0Cu}, + {0x28u, 0x02u}, + {0x2Bu, 0x40u}, + {0x2Du, 0x08u}, + {0x2Fu, 0x01u}, + {0x31u, 0x60u}, + {0x32u, 0x49u}, + {0x36u, 0x04u}, + {0x37u, 0x01u}, + {0x39u, 0xA0u}, + {0x3Au, 0x02u}, + {0x3Du, 0x82u}, + {0x59u, 0x20u}, + {0x5Au, 0x44u}, + {0x5Cu, 0x50u}, + {0x63u, 0x2Au}, + {0x66u, 0x20u}, + {0x67u, 0x02u}, + {0x6Bu, 0x01u}, + {0x6Du, 0x40u}, + {0x6Eu, 0x10u}, + {0x6Fu, 0x20u}, + {0x80u, 0x10u}, + {0x81u, 0x10u}, + {0x82u, 0x50u}, + {0x84u, 0x04u}, + {0x85u, 0x04u}, + {0x87u, 0x20u}, + {0x8Au, 0x04u}, + {0x91u, 0x80u}, + {0x93u, 0x28u}, + {0x99u, 0x80u}, + {0x9Au, 0x02u}, + {0x9Bu, 0x10u}, + {0x9Cu, 0x02u}, + {0x9Du, 0x06u}, + {0x9Eu, 0x60u}, + {0x9Fu, 0x04u}, + {0xA0u, 0x12u}, + {0xA2u, 0x08u}, + {0xA4u, 0x20u}, + {0xA5u, 0x0Cu}, + {0xA6u, 0xA4u}, + {0xA7u, 0x75u}, + {0xA8u, 0x61u}, + {0xA9u, 0x04u}, + {0xAAu, 0x08u}, + {0xADu, 0x10u}, + {0xAFu, 0x08u}, + {0xB1u, 0x08u}, + {0xB4u, 0x02u}, + {0xB7u, 0x80u}, + {0xC0u, 0x46u}, + {0xC2u, 0x8Du}, + {0xC4u, 0x5Bu}, + {0xCAu, 0x59u}, + {0xCCu, 0xCFu}, + {0xCEu, 0x9Du}, + {0xD6u, 0x3Eu}, + {0xD8u, 0x3Eu}, + {0xE2u, 0x04u}, + {0xE4u, 0x04u}, + {0xE6u, 0x01u}, + {0xE8u, 0x80u}, + {0xEAu, 0x40u}, + {0xECu, 0x40u}, + {0x00u, 0x06u}, + {0x01u, 0x55u}, + {0x02u, 0x09u}, + {0x03u, 0xAAu}, + {0x04u, 0x0Fu}, + {0x05u, 0xFFu}, + {0x09u, 0x69u}, + {0x0Bu, 0x96u}, + {0x10u, 0x40u}, + {0x11u, 0x0Fu}, + {0x12u, 0x1Fu}, + {0x13u, 0xF0u}, + {0x14u, 0x10u}, + {0x16u, 0x2Fu}, + {0x17u, 0xFFu}, + {0x19u, 0xFFu}, + {0x1Eu, 0x70u}, + {0x23u, 0xFFu}, + {0x24u, 0x05u}, + {0x26u, 0x0Au}, + {0x28u, 0x20u}, + {0x29u, 0x33u}, + {0x2Au, 0x4Fu}, + {0x2Bu, 0xCCu}, + {0x2Cu, 0x03u}, + {0x2Eu, 0x0Cu}, + {0x2Fu, 0xFFu}, + {0x31u, 0xFFu}, + {0x36u, 0x7Fu}, + {0x3Bu, 0x02u}, + {0x56u, 0x08u}, + {0x58u, 0x04u}, + {0x59u, 0x04u}, + {0x5Bu, 0x04u}, + {0x5Cu, 0x22u}, + {0x5Du, 0x90u}, + {0x5Fu, 0x01u}, + {0x80u, 0x0Bu}, + {0x81u, 0x55u}, + {0x82u, 0xF4u}, + {0x83u, 0xAAu}, + {0x84u, 0x02u}, + {0x88u, 0x10u}, + {0x89u, 0x69u}, + {0x8Au, 0x20u}, + {0x8Bu, 0x96u}, + {0x8Cu, 0x40u}, + {0x8Eu, 0x80u}, + {0x8Fu, 0xFFu}, + {0x90u, 0x08u}, + {0x92u, 0xF7u}, + {0x93u, 0xFFu}, + {0x95u, 0x0Fu}, + {0x96u, 0xF7u}, + {0x97u, 0xF0u}, + {0x98u, 0x03u}, + {0x99u, 0xFFu}, + {0x9Au, 0x0Cu}, + {0x9Cu, 0x10u}, + {0x9Eu, 0x20u}, + {0xA0u, 0x40u}, + {0xA1u, 0xFFu}, + {0xA2u, 0x80u}, + {0xA4u, 0xF4u}, + {0xA7u, 0xFFu}, + {0xA8u, 0xFDu}, + {0xA9u, 0x33u}, + {0xAAu, 0x02u}, + {0xABu, 0xCCu}, + {0xAEu, 0x01u}, + {0xB2u, 0x30u}, + {0xB4u, 0x0Fu}, + {0xB5u, 0xFFu}, + {0xB6u, 0xC0u}, + {0xBAu, 0xA8u}, + {0xBBu, 0x20u}, + {0xD8u, 0x04u}, + {0xD9u, 0x04u}, + {0xDBu, 0x04u}, + {0xDCu, 0x22u}, + {0xDFu, 0x01u}, + {0x01u, 0x02u}, + {0x03u, 0x20u}, + {0x04u, 0x10u}, + {0x05u, 0x41u}, + {0x07u, 0x20u}, + {0x08u, 0x02u}, + {0x09u, 0x04u}, + {0x0Au, 0x01u}, + {0x0Du, 0x08u}, + {0x0Eu, 0x04u}, + {0x0Fu, 0x81u}, + {0x12u, 0x06u}, + {0x13u, 0x08u}, + {0x16u, 0x45u}, + {0x17u, 0x04u}, + {0x19u, 0x80u}, + {0x1Au, 0x01u}, + {0x1Cu, 0x10u}, + {0x1Du, 0x40u}, + {0x1Eu, 0x04u}, + {0x1Fu, 0x88u}, + {0x22u, 0x02u}, + {0x27u, 0x08u}, + {0x28u, 0x02u}, + {0x2Bu, 0x44u}, + {0x2Cu, 0x20u}, + {0x2Eu, 0x22u}, {0x31u, 0x08u}, - {0x33u, 0x10u}, + {0x32u, 0x22u}, {0x34u, 0x02u}, - {0x36u, 0x0Au}, - {0x39u, 0x88u}, - {0x3Cu, 0x01u}, - {0x3Du, 0x10u}, - {0x3Eu, 0x08u}, - {0x3Fu, 0x41u}, - {0x59u, 0x40u}, - {0x5Du, 0x80u}, - {0x5Fu, 0x2Au}, + {0x35u, 0x01u}, + {0x36u, 0x20u}, + {0x37u, 0x08u}, + {0x3Au, 0x14u}, + {0x3Bu, 0x09u}, + {0x3Fu, 0xA2u}, + {0x41u, 0x20u}, + {0x43u, 0x10u}, + {0x58u, 0x10u}, + {0x5Au, 0x80u}, + {0x5Cu, 0x41u}, + {0x5Du, 0x18u}, + {0x61u, 0x20u}, + {0x62u, 0x10u}, + {0x63u, 0x01u}, {0x67u, 0x02u}, - {0x6Du, 0x10u}, - {0x6Eu, 0x44u}, - {0x81u, 0x20u}, - {0x82u, 0x20u}, - {0x83u, 0x62u}, + {0x82u, 0x41u}, + {0x83u, 0x20u}, + {0x84u, 0x10u}, + {0x86u, 0x06u}, + {0x87u, 0x14u}, + {0x88u, 0x10u}, + {0x8Au, 0x80u}, + {0x8Du, 0x40u}, + {0x8Eu, 0x04u}, + {0x8Fu, 0x01u}, + {0xC0u, 0xFCu}, + {0xC2u, 0xFDu}, + {0xC4u, 0xF7u}, + {0xCAu, 0xEDu}, + {0xCCu, 0xE7u}, + {0xCEu, 0xB7u}, + {0xD6u, 0xFCu}, + {0xD8u, 0x1Cu}, + {0xE2u, 0x80u}, + {0xE4u, 0x10u}, + {0xE6u, 0x01u}, + {0x01u, 0x88u}, + {0x03u, 0x03u}, + {0x09u, 0x04u}, + {0x0Bu, 0x43u}, + {0x11u, 0xE0u}, + {0x17u, 0xECu}, + {0x19u, 0x21u}, + {0x1Bu, 0x02u}, + {0x1Fu, 0x01u}, + {0x23u, 0x12u}, + {0x33u, 0x0Fu}, + {0x35u, 0xE0u}, + {0x37u, 0x10u}, + {0x3Fu, 0x10u}, + {0x40u, 0x34u}, + {0x41u, 0x06u}, + {0x42u, 0x10u}, + {0x44u, 0x05u}, + {0x45u, 0xBEu}, + {0x46u, 0xFCu}, + {0x47u, 0x0Du}, + {0x48u, 0x1Fu}, + {0x49u, 0xFFu}, + {0x4Au, 0xFFu}, + {0x4Bu, 0xFFu}, + {0x4Cu, 0x22u}, + {0x4Eu, 0xF0u}, + {0x4Fu, 0x08u}, + {0x50u, 0x04u}, + {0x59u, 0x04u}, + {0x5Au, 0x04u}, + {0x5Cu, 0x10u}, + {0x5Du, 0x01u}, + {0x5Fu, 0x01u}, + {0x62u, 0xC0u}, + {0x64u, 0x40u}, + {0x65u, 0x01u}, + {0x66u, 0x10u}, + {0x67u, 0x11u}, + {0x68u, 0xC0u}, + {0x69u, 0x01u}, + {0x6Bu, 0x11u}, + {0x6Cu, 0x40u}, + {0x6Du, 0x01u}, + {0x6Eu, 0x40u}, + {0x6Fu, 0x01u}, + {0x80u, 0xC0u}, + {0x84u, 0x24u}, {0x85u, 0x40u}, - {0x86u, 0x19u}, - {0x87u, 0x08u}, - {0x8Bu, 0x40u}, - {0xC0u, 0xECu}, - {0xC2u, 0xE7u}, - {0xC4u, 0xD0u}, - {0xCAu, 0x65u}, - {0xCCu, 0xC7u}, - {0xCEu, 0xFAu}, - {0xD6u, 0xF8u}, - {0xD8u, 0x10u}, - {0xE0u, 0x20u}, - {0xE6u, 0x20u}, - {0x80u, 0x02u}, - {0x82u, 0x64u}, - {0x84u, 0x11u}, - {0x88u, 0xC4u}, - {0x8Au, 0x02u}, - {0x8Eu, 0x11u}, - {0x92u, 0x20u}, - {0x96u, 0x01u}, - {0x98u, 0x0Cu}, - {0x9Cu, 0x11u}, - {0xA0u, 0x11u}, - {0xA4u, 0x11u}, - {0xA8u, 0x02u}, - {0xAAu, 0xA8u}, - {0xB0u, 0xE0u}, - {0xB2u, 0x01u}, - {0xB4u, 0x0Eu}, - {0xB6u, 0x10u}, - {0xB8u, 0x20u}, - {0xBEu, 0x44u}, + {0x86u, 0x10u}, + {0x87u, 0x30u}, + {0x88u, 0x11u}, + {0x89u, 0x32u}, + {0x8Au, 0x62u}, + {0x8Bu, 0x44u}, + {0x8Cu, 0x1Cu}, + {0x8Du, 0x0Du}, + {0x8Fu, 0x80u}, + {0x90u, 0x70u}, + {0x91u, 0x8Du}, + {0x92u, 0x0Fu}, + {0x94u, 0x21u}, + {0x95u, 0x8Du}, + {0x96u, 0x9Eu}, + {0x98u, 0x14u}, + {0x99u, 0x02u}, + {0x9Au, 0x08u}, + {0x9Bu, 0x0Du}, + {0x9Cu, 0x1Cu}, + {0xA0u, 0x08u}, + {0xA1u, 0x8Du}, + {0xA5u, 0x11u}, + {0xA7u, 0x62u}, + {0xA8u, 0x10u}, + {0xA9u, 0x8Du}, + {0xAAu, 0x0Cu}, + {0xACu, 0x0Cu}, + {0xADu, 0x52u}, + {0xAEu, 0x10u}, + {0xAFu, 0x28u}, + {0xB0u, 0xC1u}, + {0xB2u, 0x30u}, + {0xB3u, 0x70u}, + {0xB4u, 0x0Fu}, + {0xB5u, 0x0Fu}, + {0xB7u, 0x80u}, + {0xB8u, 0x02u}, + {0xBAu, 0x08u}, + {0xBBu, 0x28u}, + {0xBFu, 0x40u}, + {0xD6u, 0x02u}, + {0xD7u, 0x28u}, {0xD8u, 0x04u}, + {0xD9u, 0x04u}, + {0xDBu, 0x04u}, + {0xDCu, 0x11u}, + {0xDDu, 0x10u}, {0xDFu, 0x01u}, - {0x01u, 0x20u}, - {0x03u, 0x52u}, - {0x04u, 0x10u}, - {0x07u, 0x92u}, - {0x09u, 0x80u}, - {0x0Au, 0x80u}, - {0x0Bu, 0x14u}, - {0x0Cu, 0x90u}, - {0x0Du, 0x08u}, - {0x0Eu, 0x48u}, - {0x10u, 0x08u}, - {0x12u, 0x40u}, - {0x13u, 0x40u}, - {0x15u, 0x02u}, - {0x17u, 0x28u}, - {0x18u, 0x80u}, - {0x19u, 0x20u}, - {0x1Bu, 0x03u}, - {0x1Du, 0x04u}, - {0x1Eu, 0x49u}, - {0x20u, 0x90u}, - {0x22u, 0x16u}, - {0x23u, 0xD4u}, - {0x2Bu, 0x81u}, - {0x32u, 0x16u}, - {0x33u, 0x40u}, - {0x39u, 0x54u}, - {0x3Au, 0x02u}, - {0x42u, 0x01u}, - {0x43u, 0x22u}, - {0x49u, 0x09u}, - {0x4Au, 0x80u}, - {0x4Bu, 0x50u}, - {0x51u, 0x08u}, + {0x05u, 0x15u}, + {0x06u, 0x02u}, + {0x0Eu, 0x5Au}, + {0x15u, 0x50u}, + {0x16u, 0x40u}, + {0x1Du, 0x15u}, + {0x1Fu, 0x20u}, + {0x21u, 0x88u}, + {0x23u, 0x08u}, + {0x24u, 0x01u}, + {0x26u, 0x20u}, + {0x27u, 0x10u}, + {0x29u, 0x02u}, + {0x2Du, 0x10u}, + {0x2Eu, 0x42u}, + {0x2Fu, 0x20u}, + {0x31u, 0x99u}, + {0x36u, 0x25u}, + {0x38u, 0x10u}, + {0x39u, 0x02u}, + {0x3Du, 0x40u}, + {0x3Eu, 0x18u}, + {0x40u, 0x13u}, + {0x41u, 0x01u}, + {0x42u, 0x50u}, + {0x46u, 0x08u}, + {0x47u, 0x10u}, + {0x48u, 0x01u}, + {0x49u, 0x12u}, + {0x4Bu, 0x04u}, + {0x51u, 0x04u}, {0x52u, 0x50u}, - {0x53u, 0x80u}, - {0x63u, 0x08u}, - {0x68u, 0x08u}, - {0x69u, 0x56u}, - {0x6Au, 0x82u}, - {0x6Bu, 0x5Au}, - {0x70u, 0x80u}, - {0x71u, 0x80u}, - {0x72u, 0x02u}, - {0x80u, 0x40u}, - {0x83u, 0x20u}, - {0x84u, 0x60u}, - {0x87u, 0x80u}, - {0x8Cu, 0x10u}, - {0x8Eu, 0x40u}, - {0x8Fu, 0x20u}, - {0x95u, 0x40u}, - {0x96u, 0x83u}, - {0x97u, 0x54u}, - {0x9Cu, 0x30u}, - {0x9Du, 0x0Du}, - {0x9Eu, 0x12u}, - {0x9Fu, 0x10u}, - {0xA3u, 0x04u}, - {0xA4u, 0x88u}, - {0xA5u, 0x08u}, - {0xA6u, 0x80u}, - {0xA7u, 0x03u}, - {0xAFu, 0xC0u}, - {0xB0u, 0x01u}, - {0xB1u, 0x08u}, - {0xB7u, 0x04u}, - {0xC0u, 0xFFu}, - {0xC2u, 0xFFu}, - {0xC4u, 0x7Bu}, - {0xCAu, 0x09u}, - {0xCCu, 0x0Fu}, - {0xCEu, 0x0Fu}, - {0xD0u, 0x0Du}, + {0x66u, 0x08u}, + {0x6Du, 0x50u}, + {0x6Eu, 0x0Eu}, + {0x76u, 0x02u}, + {0x84u, 0x01u}, + {0x87u, 0x08u}, + {0x89u, 0x40u}, + {0x92u, 0x50u}, + {0x95u, 0x58u}, + {0x96u, 0x04u}, + {0x97u, 0x04u}, + {0x9Cu, 0x02u}, + {0x9Du, 0x16u}, + {0x9Eu, 0x52u}, + {0xA1u, 0x40u}, + {0xA6u, 0x01u}, + {0xA7u, 0x20u}, + {0xABu, 0x20u}, + {0xADu, 0x84u}, + {0xB4u, 0x10u}, + {0xB5u, 0x01u}, + {0xC0u, 0xF0u}, + {0xC2u, 0xF0u}, + {0xC4u, 0xD0u}, + {0xCAu, 0xF1u}, + {0xCCu, 0xEFu}, + {0xCEu, 0x75u}, + {0xD0u, 0x0Bu}, {0xD2u, 0x0Cu}, - {0xD8u, 0x04u}, - {0xE0u, 0x43u}, - {0xE6u, 0x40u}, - {0x02u, 0x12u}, - {0x05u, 0xFFu}, - {0x09u, 0x69u}, - {0x0Au, 0x01u}, - {0x0Bu, 0x96u}, - {0x0Fu, 0xFFu}, - {0x10u, 0x21u}, - {0x12u, 0x02u}, - {0x13u, 0xFFu}, - {0x14u, 0x88u}, - {0x16u, 0x03u}, - {0x17u, 0xFFu}, - {0x19u, 0x0Fu}, - {0x1Au, 0xECu}, - {0x1Bu, 0xF0u}, - {0x1Cu, 0x04u}, - {0x1Du, 0x33u}, - {0x1Eu, 0x43u}, - {0x1Fu, 0xCCu}, - {0x24u, 0xE0u}, - {0x25u, 0xFFu}, - {0x2Du, 0x55u}, - {0x2Fu, 0xAAu}, - {0x32u, 0x10u}, - {0x34u, 0x0Fu}, - {0x35u, 0xFFu}, - {0x36u, 0xE0u}, - {0x3Bu, 0x20u}, - {0x3Eu, 0x40u}, + {0xD8u, 0x40u}, + {0xE6u, 0x20u}, + {0xEEu, 0x40u}, + {0x04u, 0x42u}, + {0x08u, 0x77u}, + {0x0Au, 0x08u}, + {0x0Bu, 0x05u}, + {0x0Cu, 0xC6u}, + {0x10u, 0x01u}, + {0x12u, 0x5Eu}, + {0x14u, 0x39u}, + {0x15u, 0x08u}, + {0x16u, 0x06u}, + {0x18u, 0xC2u}, + {0x1Au, 0x04u}, + {0x1Bu, 0x01u}, + {0x1Cu, 0xC6u}, + {0x20u, 0x04u}, + {0x22u, 0x20u}, + {0x26u, 0x80u}, + {0x27u, 0x03u}, + {0x28u, 0x80u}, + {0x29u, 0x08u}, + {0x2Au, 0x46u}, + {0x2Cu, 0x46u}, + {0x2Du, 0x06u}, + {0x2Eu, 0x80u}, + {0x30u, 0x70u}, + {0x32u, 0x0Fu}, + {0x33u, 0x07u}, + {0x34u, 0x80u}, + {0x37u, 0x08u}, + {0x38u, 0x08u}, + {0x39u, 0x80u}, + {0x3Au, 0x03u}, + {0x3Eu, 0x10u}, {0x54u, 0x40u}, {0x56u, 0x04u}, {0x58u, 0x04u}, {0x59u, 0x04u}, {0x5Bu, 0x04u}, - {0x5Cu, 0x10u}, + {0x5Cu, 0x11u}, + {0x5Du, 0x10u}, {0x5Fu, 0x01u}, - {0x80u, 0x10u}, - {0x81u, 0xC0u}, - {0x83u, 0x01u}, - {0x84u, 0x01u}, - {0x85u, 0x80u}, - {0x88u, 0x04u}, - {0x89u, 0x7Fu}, - {0x8Bu, 0x80u}, - {0x8Cu, 0x88u}, - {0x8Du, 0x1Fu}, - {0x8Eu, 0x21u}, - {0x8Fu, 0x20u}, - {0x90u, 0x87u}, - {0x91u, 0xC0u}, - {0x92u, 0x18u}, - {0x93u, 0x02u}, - {0x94u, 0x40u}, - {0x95u, 0xC0u}, - {0x97u, 0x08u}, - {0x98u, 0x40u}, - {0x99u, 0xC0u}, - {0x9Bu, 0x04u}, - {0x9Cu, 0x01u}, - {0x9Du, 0x90u}, - {0x9Fu, 0x40u}, - {0xA0u, 0x01u}, - {0xA3u, 0x9Fu}, - {0xA4u, 0x01u}, - {0xA8u, 0xA2u}, - {0xAAu, 0x08u}, - {0xABu, 0x60u}, - {0xACu, 0x01u}, - {0xAFu, 0xFFu}, - {0xB0u, 0x08u}, - {0xB2u, 0x3Fu}, - {0xB4u, 0x40u}, - {0xB5u, 0xFFu}, - {0xB6u, 0x80u}, - {0xB8u, 0x28u}, - {0xBEu, 0x45u}, - {0xBFu, 0x10u}, - {0xD4u, 0x09u}, - {0xD6u, 0x04u}, + {0x81u, 0x04u}, + {0x86u, 0xECu}, + {0x89u, 0x86u}, + {0x8Au, 0x01u}, + {0x8Du, 0x02u}, + {0x91u, 0x06u}, + {0x92u, 0x12u}, + {0x93u, 0x80u}, + {0x94u, 0x88u}, + {0x95u, 0x61u}, + {0x96u, 0x03u}, + {0x97u, 0x0Eu}, + {0x9Bu, 0x10u}, + {0x9Cu, 0x21u}, + {0x9Du, 0x07u}, + {0x9Eu, 0x02u}, + {0x9Fu, 0x38u}, + {0xA0u, 0xE0u}, + {0xA1u, 0x86u}, + {0xA5u, 0x82u}, + {0xA7u, 0x04u}, + {0xA8u, 0x04u}, + {0xA9u, 0x09u}, + {0xAAu, 0x43u}, + {0xABu, 0x56u}, + {0xADu, 0x80u}, + {0xAFu, 0x06u}, + {0xB0u, 0xE0u}, + {0xB1u, 0x08u}, + {0xB2u, 0x0Fu}, + {0xB3u, 0x0Fu}, + {0xB4u, 0x10u}, + {0xB5u, 0x70u}, + {0xB7u, 0x80u}, + {0xB9u, 0x08u}, + {0xBEu, 0x01u}, + {0xBFu, 0x41u}, + {0xD8u, 0x04u}, + {0xD9u, 0x04u}, + {0xDFu, 0x01u}, + {0x01u, 0x28u}, + {0x05u, 0x14u}, + {0x06u, 0x02u}, + {0x09u, 0x88u}, + {0x0Bu, 0x80u}, + {0x0Eu, 0x56u}, + {0x10u, 0x04u}, + {0x11u, 0x02u}, + {0x12u, 0x08u}, + {0x15u, 0x58u}, + {0x16u, 0x40u}, + {0x19u, 0x29u}, + {0x1Cu, 0x80u}, + {0x1Eu, 0x50u}, + {0x1Fu, 0x10u}, + {0x20u, 0x11u}, + {0x22u, 0x18u}, + {0x23u, 0x82u}, + {0x26u, 0x80u}, + {0x27u, 0x20u}, + {0x28u, 0xA4u}, + {0x2Au, 0x80u}, + {0x2Eu, 0x40u}, + {0x2Fu, 0x24u}, + {0x30u, 0x02u}, + {0x31u, 0x88u}, + {0x32u, 0x10u}, + {0x37u, 0x28u}, + {0x38u, 0x60u}, + {0x3Bu, 0x02u}, + {0x3Eu, 0x10u}, + {0x64u, 0x40u}, + {0x65u, 0x80u}, + {0x66u, 0x10u}, + {0x67u, 0x20u}, + {0x6Du, 0x80u}, + {0x6Eu, 0x20u}, + {0x84u, 0x40u}, + {0x8Au, 0x10u}, + {0x8Du, 0x01u}, + {0x8Eu, 0x10u}, + {0x90u, 0x60u}, + {0x93u, 0x8Au}, + {0x94u, 0x11u}, + {0x95u, 0x50u}, + {0x96u, 0x54u}, + {0x97u, 0x04u}, + {0x98u, 0xA0u}, + {0x9Au, 0x80u}, + {0x9Bu, 0x08u}, + {0x9Cu, 0x02u}, + {0x9Du, 0x16u}, + {0x9Eu, 0x42u}, + {0x9Fu, 0x82u}, + {0xA0u, 0x02u}, + {0xA1u, 0x88u}, + {0xA4u, 0x40u}, + {0xA6u, 0x89u}, + {0xA7u, 0x20u}, + {0xA8u, 0x80u}, + {0xA9u, 0x08u}, + {0xAAu, 0x04u}, + {0xABu, 0x10u}, + {0xAEu, 0x40u}, + {0xAFu, 0x10u}, + {0xC0u, 0xE6u}, + {0xC2u, 0xFDu}, + {0xC4u, 0xFAu}, + {0xCAu, 0x7Fu}, + {0xCCu, 0x6Fu}, + {0xCEu, 0x2Du}, + {0xD8u, 0xF0u}, + {0xE2u, 0xD0u}, + {0xE8u, 0x01u}, + {0xEAu, 0x10u}, + {0xEEu, 0x08u}, + {0x00u, 0x0Du}, + {0x01u, 0x11u}, + {0x02u, 0x10u}, + {0x03u, 0x22u}, + {0x04u, 0x02u}, + {0x05u, 0x44u}, + {0x06u, 0x0Du}, + {0x07u, 0x88u}, + {0x08u, 0x1Du}, + {0x09u, 0x48u}, + {0x0Bu, 0x84u}, + {0x0Cu, 0x1Du}, + {0x0Du, 0x33u}, + {0x0Fu, 0xCCu}, + {0x10u, 0x42u}, + {0x11u, 0x0Fu}, + {0x12u, 0x28u}, + {0x13u, 0xF0u}, + {0x14u, 0x22u}, + {0x16u, 0x84u}, + {0x18u, 0x1Du}, + {0x1Bu, 0xFFu}, + {0x1Cu, 0xC0u}, + {0x20u, 0x21u}, + {0x22u, 0x42u}, + {0x27u, 0xFFu}, + {0x29u, 0x12u}, + {0x2Au, 0x10u}, + {0x2Bu, 0x21u}, + {0x2Cu, 0x1Du}, + {0x2Fu, 0xFFu}, + {0x32u, 0x10u}, + {0x34u, 0x0Fu}, + {0x35u, 0xFFu}, + {0x36u, 0xE0u}, + {0x38u, 0x80u}, + {0x3Au, 0x20u}, + {0x3Eu, 0x04u}, + {0x3Fu, 0x10u}, + {0x54u, 0x40u}, + {0x58u, 0x04u}, + {0x59u, 0x04u}, + {0x5Bu, 0x04u}, + {0x5Fu, 0x01u}, + {0x80u, 0x0Fu}, + {0x82u, 0xF0u}, + {0x84u, 0x84u}, + {0x85u, 0x20u}, + {0x86u, 0x48u}, + {0x88u, 0x21u}, + {0x89u, 0x10u}, + {0x8Au, 0x12u}, + {0x8Du, 0x80u}, + {0x90u, 0x11u}, + {0x91u, 0x08u}, + {0x92u, 0x22u}, + {0x93u, 0x04u}, + {0x95u, 0x40u}, + {0x96u, 0xFFu}, + {0x99u, 0x01u}, + {0x9Bu, 0x02u}, + {0x9Cu, 0x33u}, + {0x9Du, 0x04u}, + {0x9Eu, 0xCCu}, + {0x9Fu, 0x08u}, + {0xA1u, 0x53u}, + {0xA3u, 0xACu}, + {0xA4u, 0x44u}, + {0xA6u, 0x88u}, + {0xA9u, 0x02u}, + {0xAAu, 0xFFu}, + {0xABu, 0x01u}, + {0xACu, 0xFFu}, + {0xB0u, 0xFFu}, + {0xB1u, 0xC0u}, + {0xB3u, 0x0Fu}, + {0xB7u, 0x30u}, + {0xBEu, 0x01u}, + {0xBFu, 0x45u}, + {0xD6u, 0x08u}, {0xD8u, 0x04u}, {0xD9u, 0x04u}, {0xDBu, 0x04u}, + {0xDDu, 0x90u}, {0xDFu, 0x01u}, - {0x01u, 0x20u}, - {0x02u, 0x80u}, - {0x03u, 0x12u}, - {0x04u, 0x10u}, - {0x05u, 0x01u}, - {0x09u, 0x20u}, - {0x0Au, 0x22u}, - {0x0Bu, 0x40u}, - {0x0Eu, 0x08u}, - {0x0Fu, 0x52u}, - {0x10u, 0x80u}, - {0x11u, 0x40u}, - {0x13u, 0x14u}, - {0x14u, 0x10u}, - {0x19u, 0x70u}, - {0x1Au, 0x60u}, - {0x1Cu, 0x10u}, - {0x1Eu, 0x08u}, - {0x1Fu, 0x80u}, - {0x21u, 0x20u}, - {0x26u, 0x20u}, - {0x27u, 0x04u}, - {0x29u, 0x11u}, - {0x2Bu, 0x02u}, - {0x2Fu, 0x21u}, - {0x30u, 0x08u}, - {0x32u, 0x41u}, - {0x33u, 0x10u}, - {0x35u, 0x80u}, - {0x36u, 0x20u}, - {0x37u, 0x0Au}, - {0x3Au, 0x02u}, - {0x3Bu, 0x54u}, - {0x3Du, 0x80u}, - {0x3Eu, 0x04u}, - {0x3Fu, 0x20u}, - {0x58u, 0x20u}, - {0x59u, 0x08u}, - {0x5Au, 0x41u}, - {0x61u, 0x40u}, - {0x62u, 0x02u}, - {0x64u, 0x01u}, - {0x65u, 0x04u}, - {0x66u, 0x10u}, - {0x67u, 0x80u}, - {0x92u, 0x04u}, - {0x93u, 0x02u}, - {0x99u, 0x80u}, - {0x9Bu, 0x0Au}, - {0xA1u, 0x40u}, - {0xA3u, 0x34u}, - {0xA6u, 0x02u}, - {0xA8u, 0x40u}, - {0xAAu, 0x10u}, - {0xAFu, 0x10u}, - {0xB1u, 0x0Cu}, - {0xB3u, 0x12u}, - {0xB4u, 0x04u}, - {0xC0u, 0x5Fu}, - {0xC2u, 0xFFu}, - {0xC4u, 0x2Fu}, - {0xCAu, 0x5Du}, - {0xCCu, 0xFFu}, - {0xCEu, 0x7Fu}, - {0xD6u, 0x0Fu}, - {0xD8u, 0xF9u}, - {0xEAu, 0x11u}, - {0xEEu, 0x1Cu}, - {0x9Cu, 0x81u}, - {0x9Eu, 0x04u}, - {0xA5u, 0x08u}, - {0xABu, 0x20u}, - {0xB0u, 0x50u}, - {0xB1u, 0x20u}, - {0xE8u, 0xA0u}, - {0xEEu, 0x9Cu}, - {0x81u, 0x08u}, - {0x84u, 0x01u}, - {0x8Cu, 0x80u}, - {0x9Cu, 0x81u}, - {0xA5u, 0x08u}, - {0xB6u, 0x04u}, - {0xE0u, 0x10u}, - {0xECu, 0x10u}, - {0x04u, 0x10u}, - {0x0Cu, 0x20u}, - {0x0Du, 0x08u}, - {0x11u, 0x08u}, - {0x12u, 0x08u}, + {0x00u, 0x08u}, + {0x01u, 0x02u}, + {0x03u, 0x08u}, + {0x04u, 0x06u}, + {0x06u, 0x01u}, + {0x07u, 0x04u}, + {0x09u, 0x41u}, + {0x0Bu, 0x20u}, + {0x0Du, 0x02u}, + {0x0Eu, 0x06u}, + {0x0Fu, 0x20u}, + {0x10u, 0x02u}, + {0x11u, 0x04u}, + {0x13u, 0x20u}, + {0x14u, 0x80u}, + {0x15u, 0x20u}, + {0x17u, 0x40u}, + {0x18u, 0x40u}, + {0x1Cu, 0x04u}, + {0x1Du, 0x04u}, + {0x1Eu, 0x02u}, + {0x20u, 0x02u}, + {0x23u, 0xA0u}, + {0x27u, 0x08u}, + {0x28u, 0x04u}, + {0x2Bu, 0x40u}, + {0x2Cu, 0x02u}, + {0x2Du, 0x08u}, + {0x2Fu, 0x18u}, + {0x31u, 0x80u}, + {0x32u, 0x15u}, + {0x35u, 0x02u}, + {0x37u, 0x22u}, + {0x38u, 0x28u}, + {0x3Bu, 0x40u}, + {0x3Du, 0x86u}, + {0x3Eu, 0x10u}, + {0x3Fu, 0x80u}, + {0x59u, 0x80u}, + {0x63u, 0x01u}, + {0x65u, 0x24u}, + {0x66u, 0x80u}, + {0x8Bu, 0x80u}, + {0x8Eu, 0x01u}, + {0x90u, 0x2Au}, + {0x91u, 0x24u}, + {0x92u, 0x3Eu}, + {0x93u, 0x40u}, + {0x94u, 0x40u}, + {0x97u, 0x01u}, + {0x98u, 0x84u}, + {0x99u, 0x28u}, + {0x9Au, 0x01u}, + {0x9Bu, 0x46u}, + {0x9Fu, 0x28u}, + {0xA0u, 0x06u}, + {0xA1u, 0xC3u}, + {0xA3u, 0x08u}, + {0xA9u, 0x02u}, + {0xAAu, 0x04u}, + {0xB6u, 0x80u}, + {0xC0u, 0xFEu}, + {0xC2u, 0xFDu}, + {0xC4u, 0xD7u}, + {0xCAu, 0x75u}, + {0xCCu, 0xAFu}, + {0xCEu, 0xFEu}, + {0xD6u, 0x08u}, + {0xD8u, 0x78u}, + {0xE2u, 0x10u}, + {0xEAu, 0x10u}, + {0xEEu, 0x08u}, + {0xB0u, 0x01u}, + {0xB1u, 0x10u}, + {0xB2u, 0x80u}, + {0xB5u, 0x80u}, + {0xB7u, 0x10u}, + {0xE8u, 0x10u}, + {0x04u, 0x40u}, + {0x0Cu, 0x10u}, + {0x0Du, 0x04u}, + {0x12u, 0x01u}, + {0x13u, 0x02u}, {0x16u, 0x80u}, - {0x17u, 0x80u}, - {0x30u, 0x10u}, - {0x33u, 0x02u}, - {0x35u, 0x80u}, - {0x36u, 0x01u}, - {0x39u, 0x08u}, - {0x3Au, 0x80u}, - {0x3Du, 0x21u}, - {0x42u, 0x04u}, - {0x53u, 0x04u}, - {0x5Eu, 0x10u}, - {0x6Du, 0x08u}, - {0x6Fu, 0x02u}, - {0x81u, 0x10u}, - {0x8Cu, 0x10u}, - {0x8Eu, 0x10u}, + {0x17u, 0x40u}, + {0x30u, 0x40u}, + {0x33u, 0x01u}, + {0x34u, 0x20u}, + {0x36u, 0x02u}, + {0x3Au, 0x82u}, + {0x3Cu, 0x02u}, + {0x3Fu, 0x20u}, + {0x42u, 0x08u}, + {0x53u, 0x20u}, + {0x54u, 0x80u}, + {0x6Bu, 0x03u}, + {0x82u, 0x02u}, + {0x88u, 0x10u}, + {0x8Fu, 0x20u}, {0xC0u, 0x80u}, {0xC2u, 0xA0u}, {0xC4u, 0xF0u}, {0xCCu, 0xF0u}, {0xCEu, 0xF0u}, {0xD0u, 0x10u}, - {0xD4u, 0x20u}, - {0xD6u, 0x20u}, - {0xE2u, 0x80u}, - {0x03u, 0x08u}, - {0x0Au, 0x01u}, - {0x30u, 0x04u}, - {0x33u, 0x10u}, - {0x37u, 0x84u}, + {0xD4u, 0x60u}, + {0xE6u, 0x20u}, + {0x01u, 0x20u}, + {0x0Bu, 0x02u}, + {0x30u, 0x10u}, + {0x32u, 0x08u}, + {0x36u, 0x01u}, + {0x37u, 0x40u}, {0x39u, 0x80u}, - {0x52u, 0x02u}, - {0x63u, 0x08u}, - {0x8Bu, 0x04u}, - {0x95u, 0x01u}, - {0x96u, 0x04u}, - {0x97u, 0x08u}, - {0x9Bu, 0x90u}, - {0x9Cu, 0x10u}, - {0x9Du, 0x80u}, - {0xA0u, 0x20u}, - {0xA2u, 0x02u}, - {0xA6u, 0x01u}, - {0xAAu, 0x0Au}, - {0xABu, 0x10u}, - {0xADu, 0x08u}, - {0xB1u, 0x04u}, + {0x56u, 0x04u}, + {0x62u, 0x02u}, + {0x64u, 0x10u}, + {0x66u, 0x01u}, + {0x80u, 0x80u}, + {0x86u, 0x02u}, + {0x89u, 0x24u}, + {0x90u, 0x40u}, + {0x91u, 0x08u}, + {0x9Au, 0x05u}, + {0x9Bu, 0x40u}, + {0x9Cu, 0x60u}, + {0x9Eu, 0x08u}, + {0xA4u, 0x81u}, + {0xAEu, 0x02u}, + {0xB6u, 0x04u}, + {0xB7u, 0x10u}, {0xC0u, 0x40u}, {0xC2u, 0x40u}, {0xCCu, 0xF0u}, {0xCEu, 0x10u}, - {0xD4u, 0x80u}, + {0xD4u, 0x40u}, {0xD8u, 0x40u}, - {0xE8u, 0x40u}, - {0xEAu, 0x80u}, - {0x10u, 0x10u}, + {0xE2u, 0x60u}, + {0xEAu, 0x40u}, + {0x10u, 0x40u}, {0x33u, 0x80u}, - {0x8Cu, 0x20u}, - {0x8Fu, 0x08u}, - {0x92u, 0x01u}, - {0x95u, 0x81u}, - {0x96u, 0x04u}, - {0x9Cu, 0x14u}, - {0x9Du, 0x80u}, - {0x9Fu, 0x04u}, - {0xA0u, 0x20u}, - {0xA3u, 0x08u}, - {0xA6u, 0x01u}, - {0xABu, 0x04u}, + {0x5Bu, 0x02u}, + {0x8Au, 0x08u}, + {0x8Fu, 0x01u}, + {0x93u, 0x02u}, + {0x95u, 0x80u}, + {0x9Cu, 0x60u}, + {0x9Eu, 0x08u}, + {0xA4u, 0x01u}, + {0xA6u, 0x09u}, + {0xB4u, 0x40u}, {0xC4u, 0x10u}, {0xCCu, 0x10u}, - {0xEEu, 0x20u}, - {0x6Bu, 0x40u}, - {0x83u, 0x44u}, - {0x84u, 0x04u}, - {0x89u, 0x80u}, - {0x8Au, 0x04u}, - {0x92u, 0x01u}, - {0x95u, 0x81u}, - {0x96u, 0x04u}, - {0x9Cu, 0x04u}, - {0x9Du, 0x80u}, - {0x9Fu, 0x04u}, + {0xD6u, 0x40u}, + {0x8Au, 0x08u}, + {0x8Eu, 0x04u}, + {0x9Cu, 0x20u}, + {0x9Eu, 0x08u}, + {0xA4u, 0x01u}, {0xA6u, 0x01u}, {0xA7u, 0x80u}, - {0xDCu, 0x20u}, - {0xE2u, 0x90u}, - {0xE6u, 0x80u}, - {0x04u, 0x10u}, - {0x05u, 0x02u}, - {0x09u, 0x02u}, - {0x0Au, 0x01u}, - {0x10u, 0x40u}, - {0x5Au, 0x20u}, - {0x5Bu, 0x01u}, - {0x5Eu, 0x02u}, - {0x78u, 0x80u}, - {0x89u, 0x02u}, + {0xA9u, 0x40u}, + {0xB3u, 0x02u}, + {0xEAu, 0x80u}, + {0x06u, 0x08u}, + {0x07u, 0x10u}, + {0x08u, 0x02u}, + {0x0Au, 0x02u}, + {0x13u, 0x02u}, + {0x56u, 0x20u}, + {0x5Cu, 0x04u}, + {0x60u, 0x20u}, + {0x80u, 0x02u}, + {0x8Bu, 0x02u}, {0xC0u, 0x05u}, {0xC2u, 0x0Au}, {0xC4u, 0x08u}, - {0xD4u, 0x01u}, - {0xD6u, 0x03u}, - {0xDCu, 0x01u}, - {0xE6u, 0x04u}, - {0x01u, 0x44u}, - {0x08u, 0x08u}, - {0x09u, 0x40u}, - {0x57u, 0x08u}, - {0x5Fu, 0x20u}, - {0x65u, 0x80u}, - {0x66u, 0x08u}, - {0x82u, 0x08u}, - {0x83u, 0x20u}, - {0x89u, 0x08u}, - {0x8Eu, 0x01u}, - {0x90u, 0x10u}, - {0x96u, 0x20u}, - {0x99u, 0x02u}, - {0x9Fu, 0x01u}, - {0xA6u, 0x01u}, - {0xA8u, 0x80u}, - {0xAEu, 0x01u}, - {0xB0u, 0x40u}, + {0xD4u, 0x02u}, + {0xD6u, 0x01u}, + {0xD8u, 0x02u}, + {0xE2u, 0x04u}, + {0x00u, 0x08u}, + {0x02u, 0x02u}, + {0x08u, 0x80u}, + {0x09u, 0x04u}, + {0x56u, 0x02u}, + {0x58u, 0x40u}, + {0x5Cu, 0x01u}, + {0x64u, 0x08u}, + {0x80u, 0xA0u}, + {0x81u, 0x04u}, + {0x8Au, 0x02u}, + {0x92u, 0x02u}, + {0x94u, 0x04u}, + {0x9Au, 0x08u}, + {0x9Bu, 0x10u}, + {0x9Cu, 0x20u}, + {0x9Eu, 0x20u}, {0xC0u, 0x0Au}, {0xC2u, 0x0Au}, - {0xD4u, 0x02u}, + {0xD4u, 0x01u}, {0xD6u, 0x05u}, {0xD8u, 0x01u}, - {0xE0u, 0x08u}, - {0xE4u, 0x04u}, - {0xEAu, 0x01u}, - {0x55u, 0x08u}, - {0x80u, 0x10u}, - {0x85u, 0x40u}, - {0x8Bu, 0x01u}, - {0x8Eu, 0x10u}, - {0x90u, 0x10u}, - {0x96u, 0x20u}, - {0x98u, 0x08u}, - {0x99u, 0x02u}, - {0x9Fu, 0x01u}, - {0xA1u, 0x48u}, - {0xABu, 0x08u}, - {0xADu, 0x04u}, - {0xB5u, 0xC0u}, - {0xD4u, 0x02u}, - {0xE0u, 0x02u}, - {0xE4u, 0x04u}, - {0xEAu, 0x02u}, - {0xECu, 0x02u}, - {0x09u, 0x10u}, - {0x0Bu, 0x80u}, - {0x0Du, 0x02u}, - {0x0Fu, 0x02u}, - {0x81u, 0x02u}, - {0x87u, 0x40u}, - {0x98u, 0x08u}, - {0xB5u, 0x02u}, - {0xC2u, 0x0Fu}, - {0xEAu, 0x02u}, - {0x95u, 0x01u}, + {0xE6u, 0x04u}, + {0x8Bu, 0x40u}, + {0x8Eu, 0x20u}, + {0x94u, 0x04u}, + {0x9Au, 0x08u}, + {0x9Bu, 0x10u}, + {0x9Cu, 0x40u}, + {0x9Eu, 0x20u}, + {0xA0u, 0x04u}, + {0xA8u, 0x01u}, + {0xACu, 0x08u}, {0xAEu, 0x01u}, + {0xB2u, 0x02u}, + {0xE4u, 0x02u}, + {0xE6u, 0x01u}, + {0xE8u, 0x01u}, + {0x0Bu, 0x81u}, + {0x0Fu, 0x22u}, + {0x8Cu, 0x04u}, + {0x94u, 0x04u}, + {0x97u, 0x81u}, + {0x9Bu, 0x10u}, + {0x9Cu, 0x40u}, + {0xAAu, 0x08u}, + {0xABu, 0x01u}, + {0xACu, 0x04u}, + {0xC2u, 0x0Fu}, + {0xE4u, 0x02u}, + {0x02u, 0x04u}, + {0x84u, 0x01u}, + {0x89u, 0x02u}, + {0x8Cu, 0x08u}, + {0x8Eu, 0x01u}, + {0x9Eu, 0x04u}, + {0xA4u, 0x01u}, + {0xA8u, 0x20u}, {0xAFu, 0x80u}, - {0xB5u, 0x40u}, {0xB6u, 0x01u}, - {0xE8u, 0x10u}, - {0xEEu, 0x10u}, - {0x03u, 0x80u}, - {0x52u, 0x80u}, - {0x56u, 0x20u}, - {0x8Eu, 0x20u}, - {0x8Fu, 0x80u}, - {0xA2u, 0x80u}, - {0xADu, 0x01u}, - {0xAEu, 0x80u}, + {0xC0u, 0x40u}, + {0xE6u, 0x10u}, + {0xEEu, 0x30u}, + {0x03u, 0x20u}, + {0x51u, 0x20u}, + {0x55u, 0x08u}, + {0x58u, 0x08u}, + {0x5Fu, 0x08u}, + {0x61u, 0x02u}, + {0x65u, 0x02u}, + {0x7Au, 0x01u}, + {0x85u, 0x20u}, + {0x87u, 0x20u}, + {0x89u, 0x02u}, + {0x98u, 0x08u}, + {0x99u, 0x02u}, + {0x9Bu, 0x08u}, + {0xA1u, 0x08u}, + {0xA2u, 0x01u}, + {0xA9u, 0x08u}, + {0xB7u, 0x08u}, {0xC0u, 0x10u}, {0xD4u, 0x60u}, - {0xEAu, 0x10u}, - {0xEEu, 0x10u}, - {0xA8u, 0x08u}, + {0xD6u, 0xC0u}, + {0xD8u, 0xC0u}, + {0xDCu, 0x80u}, + {0xE2u, 0x10u}, + {0xE4u, 0x10u}, + {0xEAu, 0x80u}, + {0x74u, 0x08u}, + {0x88u, 0x08u}, + {0x90u, 0x02u}, + {0x9Bu, 0x10u}, + {0x9Cu, 0x40u}, {0xAFu, 0x01u}, - {0xB5u, 0x10u}, - {0xEEu, 0x08u}, + {0xB4u, 0x01u}, + {0xB7u, 0x10u}, + {0xDEu, 0x04u}, + {0xE4u, 0x04u}, + {0xE8u, 0x02u}, + {0xEAu, 0x08u}, + {0x70u, 0x01u}, + {0x90u, 0x02u}, + {0xB0u, 0x40u}, + {0xB7u, 0x10u}, + {0xDCu, 0x01u}, + {0xE8u, 0x01u}, + {0xEEu, 0x02u}, {0x10u, 0x03u}, + {0x11u, 0x01u}, {0x1Au, 0x03u}, + {0x1Cu, 0x01u}, + {0x1Du, 0x01u}, {0x00u, 0xFFu}, {0x01u, 0xBFu}, {0x02u, 0x2Au}, @@ -2060,31 +2416,32 @@ void cyfitter_cfg(void) /* address, size */ {(void CYFAR *)(CYREG_TMR0_CFG0), 12u}, {(void CYFAR *)(CYREG_PRT5_DR), 16u}, - {(void CYFAR *)(CYDEV_UCFG_B0_P0_U0_BASE), 4096u}, - {(void CYFAR *)(CYDEV_UCFG_B1_P2_U1_BASE), 1920u}, + {(void CYFAR *)(CYDEV_UCFG_B0_P0_U0_BASE), 1024u}, + {(void CYFAR *)(CYDEV_UCFG_B0_P2_U1_BASE), 2944u}, + {(void CYFAR *)(CYDEV_UCFG_B1_P2_U0_BASE), 2048u}, {(void CYFAR *)(CYDEV_UCFG_DSI0_BASE), 2560u}, {(void CYFAR *)(CYDEV_UCFG_DSI12_BASE), 512u}, {(void CYFAR *)(CYREG_BCTL1_MDCLK_EN), 16u}, }; - /* UDB_1_0_0_CONFIG Address: CYDEV_UCFG_B1_P2_U0_BASE Size (bytes): 128 */ - static const uint8 CYCODE BS_UDB_1_0_0_CONFIG_VAL[] = { - 0xD6u, 0x6Cu, 0x00u, 0x00u, 0xD2u, 0x64u, 0x04u, 0x08u, 0x20u, 0x40u, 0xD0u, 0x2Cu, 0x29u, 0x2Cu, 0x46u, 0x40u, - 0xD6u, 0x71u, 0x00u, 0x82u, 0x21u, 0xC0u, 0x8Eu, 0x2Fu, 0x02u, 0xA4u, 0x00u, 0x40u, 0xD6u, 0x6Cu, 0x00u, 0x00u, - 0x04u, 0x08u, 0x00u, 0x10u, 0x00u, 0x00u, 0x00u, 0x00u, 0xD0u, 0x00u, 0x06u, 0x00u, 0x17u, 0x91u, 0x28u, 0x4Eu, - 0x0Fu, 0x0Fu, 0x00u, 0x31u, 0xF0u, 0xC0u, 0x00u, 0x00u, 0x02u, 0x00u, 0x20u, 0x2Cu, 0x00u, 0x00u, 0x00u, 0x00u, - 0x46u, 0x05u, 0x10u, 0x00u, 0x02u, 0xBEu, 0xFCu, 0x0Du, 0x1Fu, 0xFFu, 0xFFu, 0xFFu, 0x22u, 0x00u, 0xF0u, 0x08u, - 0x04u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x02u, 0x24u, 0x04u, 0x04u, 0x04u, 0x04u, 0x00u, 0x00u, 0x00u, 0x01u, + /* UDB_1_3_0_CONFIG Address: CYDEV_UCFG_B0_P2_U0_BASE Size (bytes): 128 */ + static const uint8 CYCODE BS_UDB_1_3_0_CONFIG_VAL[] = { + 0x00u, 0x01u, 0x00u, 0x00u, 0x00u, 0x40u, 0x60u, 0x00u, 0x00u, 0x88u, 0xFFu, 0x21u, 0x90u, 0x01u, 0x40u, 0x00u, + 0x00u, 0x01u, 0x9Fu, 0x00u, 0x7Fu, 0xA2u, 0x80u, 0x08u, 0xC0u, 0x04u, 0x04u, 0x00u, 0x1Fu, 0x87u, 0x20u, 0x18u, + 0xC0u, 0x40u, 0x02u, 0x00u, 0xC0u, 0x01u, 0x01u, 0x00u, 0xC0u, 0x01u, 0x08u, 0x00u, 0x80u, 0x10u, 0x00u, 0x00u, + 0xFFu, 0x00u, 0x00u, 0x3Fu, 0x00u, 0x40u, 0x00u, 0x80u, 0x80u, 0x28u, 0x00u, 0x00u, 0x00u, 0x00u, 0x41u, 0x44u, + 0x63u, 0x04u, 0x10u, 0x00u, 0x05u, 0xCEu, 0xDBu, 0x0Fu, 0x1Fu, 0xFFu, 0xFFu, 0xFFu, 0x22u, 0x00u, 0xF0u, 0x08u, + 0x04u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x04u, 0x04u, 0x04u, 0x00u, 0x00u, 0x00u, 0x00u, 0x01u, 0x00u, 0x00u, 0xC0u, 0x00u, 0x40u, 0x01u, 0x10u, 0x11u, 0xC0u, 0x01u, 0x00u, 0x11u, 0x40u, 0x01u, 0x40u, 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}; /* UCFG_BCTL0 Address: CYREG_BCTL0_MDCLK_EN Size (bytes): 16 */ static const uint8 CYCODE BS_UCFG_BCTL0_VAL[] = { - 0x03u, 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x02u, 0x01u, 0x02u, 0x01u, 0x02u, 0x01u, 0x03u, 0x00u}; + 0x07u, 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x04u, 0x01u, 0x07u, 0x01u, 0x05u, 0x01u, 0x05u, 0x01u}; static const cfg_memcpy_t CYCODE cfg_memcpy_list [] = { /* dest, src, size */ - {(void CYFAR *)(CYDEV_UCFG_B1_P2_U0_BASE), BS_UDB_1_0_0_CONFIG_VAL, 128u}, + {(void CYFAR *)(CYDEV_UCFG_B0_P2_U0_BASE), BS_UDB_1_3_0_CONFIG_VAL, 128u}, {(void CYFAR *)(CYREG_BCTL0_MDCLK_EN), BS_UCFG_BCTL0_VAL, 16u}, }; diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfittergnu.inc b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfittergnu.inc index d6a1b5c..043d4f7 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfittergnu.inc +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfittergnu.inc @@ -355,33 +355,101 @@ .set USBFS_USB__USBIO_CR0, CYREG_USB_USBIO_CR0 .set USBFS_USB__USBIO_CR1, CYREG_USB_USBIO_CR1 +/* NOR_SI */ +.set NOR_SI__0__INTTYPE, CYREG_PICU3_INTTYPE6 +.set NOR_SI__0__MASK, 0x40 +.set NOR_SI__0__PC, CYREG_PRT3_PC6 +.set NOR_SI__0__PORT, 3 +.set NOR_SI__0__SHIFT, 6 +.set NOR_SI__AG, CYREG_PRT3_AG +.set NOR_SI__AMUX, CYREG_PRT3_AMUX +.set NOR_SI__BIE, CYREG_PRT3_BIE +.set NOR_SI__BIT_MASK, CYREG_PRT3_BIT_MASK +.set NOR_SI__BYP, CYREG_PRT3_BYP +.set NOR_SI__CTL, CYREG_PRT3_CTL +.set NOR_SI__DM0, CYREG_PRT3_DM0 +.set NOR_SI__DM1, CYREG_PRT3_DM1 +.set NOR_SI__DM2, CYREG_PRT3_DM2 +.set NOR_SI__DR, CYREG_PRT3_DR +.set NOR_SI__INP_DIS, CYREG_PRT3_INP_DIS +.set NOR_SI__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU3_BASE +.set NOR_SI__LCD_COM_SEG, CYREG_PRT3_LCD_COM_SEG +.set NOR_SI__LCD_EN, CYREG_PRT3_LCD_EN +.set NOR_SI__MASK, 0x40 +.set NOR_SI__PORT, 3 +.set NOR_SI__PRT, CYREG_PRT3_PRT +.set NOR_SI__PRTDSI__CAPS_SEL, CYREG_PRT3_CAPS_SEL +.set NOR_SI__PRTDSI__DBL_SYNC_IN, CYREG_PRT3_DBL_SYNC_IN +.set NOR_SI__PRTDSI__OE_SEL0, CYREG_PRT3_OE_SEL0 +.set NOR_SI__PRTDSI__OE_SEL1, CYREG_PRT3_OE_SEL1 +.set NOR_SI__PRTDSI__OUT_SEL0, CYREG_PRT3_OUT_SEL0 +.set NOR_SI__PRTDSI__OUT_SEL1, CYREG_PRT3_OUT_SEL1 +.set NOR_SI__PRTDSI__SYNC_OUT, CYREG_PRT3_SYNC_OUT +.set NOR_SI__PS, CYREG_PRT3_PS +.set NOR_SI__SHIFT, 6 +.set NOR_SI__SLW, CYREG_PRT3_SLW + +/* NOR_SO */ +.set NOR_SO__0__INTTYPE, CYREG_PICU15_INTTYPE2 +.set NOR_SO__0__MASK, 0x04 +.set NOR_SO__0__PC, CYREG_IO_PC_PRT15_PC2 +.set NOR_SO__0__PORT, 15 +.set NOR_SO__0__SHIFT, 2 +.set NOR_SO__AG, CYREG_PRT15_AG +.set NOR_SO__AMUX, CYREG_PRT15_AMUX +.set NOR_SO__BIE, CYREG_PRT15_BIE +.set NOR_SO__BIT_MASK, CYREG_PRT15_BIT_MASK +.set NOR_SO__BYP, CYREG_PRT15_BYP +.set NOR_SO__CTL, CYREG_PRT15_CTL +.set NOR_SO__DM0, CYREG_PRT15_DM0 +.set NOR_SO__DM1, CYREG_PRT15_DM1 +.set NOR_SO__DM2, CYREG_PRT15_DM2 +.set NOR_SO__DR, CYREG_PRT15_DR +.set NOR_SO__INP_DIS, CYREG_PRT15_INP_DIS +.set NOR_SO__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU15_BASE +.set NOR_SO__LCD_COM_SEG, CYREG_PRT15_LCD_COM_SEG +.set NOR_SO__LCD_EN, CYREG_PRT15_LCD_EN +.set NOR_SO__MASK, 0x04 +.set NOR_SO__PORT, 15 +.set NOR_SO__PRT, CYREG_PRT15_PRT +.set NOR_SO__PRTDSI__CAPS_SEL, CYREG_PRT15_CAPS_SEL +.set NOR_SO__PRTDSI__DBL_SYNC_IN, CYREG_PRT15_DBL_SYNC_IN +.set NOR_SO__PRTDSI__OE_SEL0, CYREG_PRT15_OE_SEL0 +.set NOR_SO__PRTDSI__OE_SEL1, CYREG_PRT15_OE_SEL1 +.set NOR_SO__PRTDSI__OUT_SEL0, CYREG_PRT15_OUT_SEL0 +.set NOR_SO__PRTDSI__OUT_SEL1, CYREG_PRT15_OUT_SEL1 +.set NOR_SO__PRTDSI__SYNC_OUT, CYREG_PRT15_SYNC_OUT +.set NOR_SO__PS, CYREG_PRT15_PS +.set NOR_SO__SHIFT, 2 +.set NOR_SO__SLW, CYREG_PRT15_SLW + /* SDCard */ -.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG, CYREG_B1_UDB04_05_ACTL -.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG, CYREG_B1_UDB04_05_CTL -.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG, CYREG_B1_UDB04_05_CTL -.set SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG, CYREG_B1_UDB04_05_CTL -.set SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG, CYREG_B1_UDB04_05_CTL -.set SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG, CYREG_B1_UDB04_05_MSK -.set SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG, CYREG_B1_UDB04_05_MSK -.set SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG, CYREG_B1_UDB04_05_MSK -.set SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG, CYREG_B1_UDB04_05_MSK -.set SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG, CYREG_B1_UDB04_ACTL -.set SDCard_BSPIM_BitCounter__CONTROL_REG, CYREG_B1_UDB04_CTL -.set SDCard_BSPIM_BitCounter__CONTROL_ST_REG, CYREG_B1_UDB04_ST_CTL -.set SDCard_BSPIM_BitCounter__COUNT_REG, CYREG_B1_UDB04_CTL -.set SDCard_BSPIM_BitCounter__COUNT_ST_REG, CYREG_B1_UDB04_ST_CTL -.set SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG, CYREG_B1_UDB04_MSK_ACTL -.set SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG, CYREG_B1_UDB04_MSK_ACTL -.set SDCard_BSPIM_BitCounter__PERIOD_REG, CYREG_B1_UDB04_MSK -.set SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB04_05_ACTL -.set SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG, CYREG_B1_UDB04_05_ST -.set SDCard_BSPIM_BitCounter_ST__MASK_REG, CYREG_B1_UDB04_MSK -.set SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG, CYREG_B1_UDB04_MSK_ACTL -.set SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG, CYREG_B1_UDB04_MSK_ACTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG, CYREG_B1_UDB04_ACTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG, CYREG_B1_UDB04_ST_CTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG, CYREG_B1_UDB04_ST_CTL -.set SDCard_BSPIM_BitCounter_ST__STATUS_REG, CYREG_B1_UDB04_ST +.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG, CYREG_B1_UDB05_06_ACTL +.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG, CYREG_B1_UDB05_06_CTL +.set SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG, CYREG_B1_UDB05_06_CTL +.set SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG, CYREG_B1_UDB05_06_CTL +.set SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG, CYREG_B1_UDB05_06_CTL +.set SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG, CYREG_B1_UDB05_06_MSK +.set SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG, CYREG_B1_UDB05_06_MSK +.set SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG, CYREG_B1_UDB05_06_MSK +.set SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG, CYREG_B1_UDB05_06_MSK +.set SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG, CYREG_B1_UDB05_ACTL +.set SDCard_BSPIM_BitCounter__CONTROL_REG, CYREG_B1_UDB05_CTL +.set SDCard_BSPIM_BitCounter__CONTROL_ST_REG, CYREG_B1_UDB05_ST_CTL +.set SDCard_BSPIM_BitCounter__COUNT_REG, CYREG_B1_UDB05_CTL +.set SDCard_BSPIM_BitCounter__COUNT_ST_REG, CYREG_B1_UDB05_ST_CTL +.set SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG, CYREG_B1_UDB05_MSK_ACTL +.set SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG, CYREG_B1_UDB05_MSK_ACTL +.set SDCard_BSPIM_BitCounter__PERIOD_REG, CYREG_B1_UDB05_MSK +.set SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB05_06_ACTL +.set SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG, CYREG_B1_UDB05_06_ST +.set SDCard_BSPIM_BitCounter_ST__MASK_REG, CYREG_B1_UDB05_MSK +.set SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG, CYREG_B1_UDB05_MSK_ACTL +.set SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG, CYREG_B1_UDB05_MSK_ACTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG, CYREG_B1_UDB05_ACTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG, CYREG_B1_UDB05_ST_CTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG, CYREG_B1_UDB05_ST_CTL +.set SDCard_BSPIM_BitCounter_ST__STATUS_REG, CYREG_B1_UDB05_ST .set SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB06_07_ACTL .set SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG, CYREG_B1_UDB06_07_ST .set SDCard_BSPIM_RxStsReg__4__MASK, 0x10 @@ -392,7 +460,11 @@ .set SDCard_BSPIM_RxStsReg__6__POS, 6 .set SDCard_BSPIM_RxStsReg__MASK, 0x70 .set SDCard_BSPIM_RxStsReg__MASK_REG, CYREG_B1_UDB06_MSK +.set SDCard_BSPIM_RxStsReg__MASK_ST_AUX_CTL_REG, CYREG_B1_UDB06_MSK_ACTL +.set SDCard_BSPIM_RxStsReg__PER_ST_AUX_CTL_REG, CYREG_B1_UDB06_MSK_ACTL .set SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG, CYREG_B1_UDB06_ACTL +.set SDCard_BSPIM_RxStsReg__STATUS_CNT_REG, CYREG_B1_UDB06_ST_CTL +.set SDCard_BSPIM_RxStsReg__STATUS_CONTROL_REG, CYREG_B1_UDB06_ST_CTL .set SDCard_BSPIM_RxStsReg__STATUS_REG, CYREG_B1_UDB06_ST .set SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG, CYREG_B1_UDB04_05_A0 .set SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG, CYREG_B1_UDB04_05_A1 @@ -411,14 +483,12 @@ .set SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG, CYREG_B1_UDB04_F0_F1 .set SDCard_BSPIM_sR8_Dp_u0__F0_REG, CYREG_B1_UDB04_F0 .set SDCard_BSPIM_sR8_Dp_u0__F1_REG, CYREG_B1_UDB04_F1 -.set SDCard_BSPIM_sR8_Dp_u0__MSK_DP_AUX_CTL_REG, CYREG_B1_UDB04_MSK_ACTL -.set SDCard_BSPIM_sR8_Dp_u0__PER_DP_AUX_CTL_REG, CYREG_B1_UDB04_MSK_ACTL .set SDCard_BSPIM_TxStsReg__0__MASK, 0x01 .set SDCard_BSPIM_TxStsReg__0__POS, 0 .set SDCard_BSPIM_TxStsReg__1__MASK, 0x02 .set SDCard_BSPIM_TxStsReg__1__POS, 1 -.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB07_08_ACTL -.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG, CYREG_B1_UDB07_08_ST +.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB06_07_ACTL +.set SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG, CYREG_B0_UDB06_07_ST .set SDCard_BSPIM_TxStsReg__2__MASK, 0x04 .set SDCard_BSPIM_TxStsReg__2__POS, 2 .set SDCard_BSPIM_TxStsReg__3__MASK, 0x08 @@ -426,9 +496,9 @@ .set SDCard_BSPIM_TxStsReg__4__MASK, 0x10 .set SDCard_BSPIM_TxStsReg__4__POS, 4 .set SDCard_BSPIM_TxStsReg__MASK, 0x1F -.set SDCard_BSPIM_TxStsReg__MASK_REG, CYREG_B1_UDB07_MSK -.set SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG, CYREG_B1_UDB07_ACTL -.set SDCard_BSPIM_TxStsReg__STATUS_REG, CYREG_B1_UDB07_ST +.set SDCard_BSPIM_TxStsReg__MASK_REG, CYREG_B0_UDB06_MSK +.set SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB06_ACTL +.set SDCard_BSPIM_TxStsReg__STATUS_REG, CYREG_B0_UDB06_ST /* SD_SCK */ .set SD_SCK__0__INTTYPE, CYREG_PICU3_INTTYPE1 @@ -464,6 +534,137 @@ .set SD_SCK__SHIFT, 1 .set SD_SCK__SLW, CYREG_PRT3_SLW +/* NOR_CTL */ +.set NOR_CTL_Sync_ctrl_reg__0__MASK, 0x01 +.set NOR_CTL_Sync_ctrl_reg__0__POS, 0 +.set NOR_CTL_Sync_ctrl_reg__1__MASK, 0x02 +.set NOR_CTL_Sync_ctrl_reg__1__POS, 1 +.set NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B1_UDB06_07_ACTL +.set NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B1_UDB06_07_CTL +.set NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B1_UDB06_07_CTL +.set NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B1_UDB06_07_CTL +.set NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B1_UDB06_07_CTL +.set NOR_CTL_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B1_UDB06_07_MSK +.set NOR_CTL_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B1_UDB06_07_MSK +.set NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B1_UDB06_07_MSK +.set NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B1_UDB06_07_MSK +.set NOR_CTL_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B1_UDB06_ACTL +.set NOR_CTL_Sync_ctrl_reg__CONTROL_REG, CYREG_B1_UDB06_CTL +.set NOR_CTL_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B1_UDB06_ST_CTL +.set NOR_CTL_Sync_ctrl_reg__COUNT_REG, CYREG_B1_UDB06_CTL +.set NOR_CTL_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B1_UDB06_ST_CTL +.set NOR_CTL_Sync_ctrl_reg__MASK, 0x03 +.set NOR_CTL_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B1_UDB06_MSK_ACTL +.set NOR_CTL_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B1_UDB06_MSK_ACTL +.set NOR_CTL_Sync_ctrl_reg__PERIOD_REG, CYREG_B1_UDB06_MSK + +/* NOR_SCK */ +.set NOR_SCK__0__INTTYPE, CYREG_PICU3_INTTYPE7 +.set NOR_SCK__0__MASK, 0x80 +.set NOR_SCK__0__PC, CYREG_PRT3_PC7 +.set NOR_SCK__0__PORT, 3 +.set NOR_SCK__0__SHIFT, 7 +.set NOR_SCK__AG, CYREG_PRT3_AG +.set NOR_SCK__AMUX, CYREG_PRT3_AMUX +.set NOR_SCK__BIE, CYREG_PRT3_BIE +.set NOR_SCK__BIT_MASK, CYREG_PRT3_BIT_MASK +.set NOR_SCK__BYP, CYREG_PRT3_BYP +.set NOR_SCK__CTL, CYREG_PRT3_CTL +.set NOR_SCK__DM0, CYREG_PRT3_DM0 +.set NOR_SCK__DM1, CYREG_PRT3_DM1 +.set NOR_SCK__DM2, CYREG_PRT3_DM2 +.set NOR_SCK__DR, CYREG_PRT3_DR +.set NOR_SCK__INP_DIS, CYREG_PRT3_INP_DIS +.set NOR_SCK__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU3_BASE +.set NOR_SCK__LCD_COM_SEG, CYREG_PRT3_LCD_COM_SEG +.set NOR_SCK__LCD_EN, CYREG_PRT3_LCD_EN +.set NOR_SCK__MASK, 0x80 +.set NOR_SCK__PORT, 3 +.set NOR_SCK__PRT, CYREG_PRT3_PRT +.set NOR_SCK__PRTDSI__CAPS_SEL, CYREG_PRT3_CAPS_SEL +.set NOR_SCK__PRTDSI__DBL_SYNC_IN, CYREG_PRT3_DBL_SYNC_IN +.set NOR_SCK__PRTDSI__OE_SEL0, CYREG_PRT3_OE_SEL0 +.set NOR_SCK__PRTDSI__OE_SEL1, CYREG_PRT3_OE_SEL1 +.set NOR_SCK__PRTDSI__OUT_SEL0, CYREG_PRT3_OUT_SEL0 +.set NOR_SCK__PRTDSI__OUT_SEL1, CYREG_PRT3_OUT_SEL1 +.set NOR_SCK__PRTDSI__SYNC_OUT, CYREG_PRT3_SYNC_OUT +.set NOR_SCK__PS, CYREG_PRT3_PS +.set NOR_SCK__SHIFT, 7 +.set NOR_SCK__SLW, CYREG_PRT3_SLW + +/* NOR_SPI */ +.set NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB08_09_ACTL +.set NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB08_09_CTL +.set NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB08_09_CTL +.set NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB08_09_CTL +.set NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB08_09_CTL +.set NOR_SPI_BSPIM_BitCounter__16BIT_MASK_MASK_REG, CYREG_B0_UDB08_09_MSK +.set NOR_SPI_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB08_09_MSK +.set NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB08_09_MSK +.set NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB08_09_MSK +.set NOR_SPI_BSPIM_BitCounter__CONTROL_AUX_CTL_REG, CYREG_B0_UDB08_ACTL +.set NOR_SPI_BSPIM_BitCounter__CONTROL_REG, CYREG_B0_UDB08_CTL +.set NOR_SPI_BSPIM_BitCounter__CONTROL_ST_REG, CYREG_B0_UDB08_ST_CTL +.set NOR_SPI_BSPIM_BitCounter__COUNT_REG, CYREG_B0_UDB08_CTL +.set NOR_SPI_BSPIM_BitCounter__COUNT_ST_REG, CYREG_B0_UDB08_ST_CTL +.set NOR_SPI_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB08_MSK_ACTL +.set NOR_SPI_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB08_MSK_ACTL +.set NOR_SPI_BSPIM_BitCounter__PERIOD_REG, CYREG_B0_UDB08_MSK +.set NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB08_09_ACTL +.set NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_REG, CYREG_B0_UDB08_09_ST +.set NOR_SPI_BSPIM_BitCounter_ST__MASK_REG, CYREG_B0_UDB08_MSK +.set NOR_SPI_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB08_MSK_ACTL +.set NOR_SPI_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG, CYREG_B0_UDB08_MSK_ACTL +.set NOR_SPI_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG, CYREG_B0_UDB08_ACTL +.set NOR_SPI_BSPIM_BitCounter_ST__STATUS_CNT_REG, CYREG_B0_UDB08_ST_CTL +.set NOR_SPI_BSPIM_BitCounter_ST__STATUS_CONTROL_REG, CYREG_B0_UDB08_ST_CTL +.set NOR_SPI_BSPIM_BitCounter_ST__STATUS_REG, CYREG_B0_UDB08_ST +.set NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B1_UDB08_09_ACTL +.set NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_REG, CYREG_B1_UDB08_09_ST +.set NOR_SPI_BSPIM_RxStsReg__4__MASK, 0x10 +.set NOR_SPI_BSPIM_RxStsReg__4__POS, 4 +.set NOR_SPI_BSPIM_RxStsReg__5__MASK, 0x20 +.set NOR_SPI_BSPIM_RxStsReg__5__POS, 5 +.set NOR_SPI_BSPIM_RxStsReg__6__MASK, 0x40 +.set NOR_SPI_BSPIM_RxStsReg__6__POS, 6 +.set NOR_SPI_BSPIM_RxStsReg__MASK, 0x70 +.set NOR_SPI_BSPIM_RxStsReg__MASK_REG, CYREG_B1_UDB08_MSK +.set NOR_SPI_BSPIM_RxStsReg__STATUS_AUX_CTL_REG, CYREG_B1_UDB08_ACTL +.set NOR_SPI_BSPIM_RxStsReg__STATUS_REG, CYREG_B1_UDB08_ST +.set NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A0_REG, CYREG_B0_UDB04_05_A0 +.set NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A1_REG, CYREG_B0_UDB04_05_A1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D0_REG, CYREG_B0_UDB04_05_D0 +.set NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D1_REG, CYREG_B0_UDB04_05_D1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG, CYREG_B0_UDB04_05_ACTL +.set NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F0_REG, CYREG_B0_UDB04_05_F0 +.set NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F1_REG, CYREG_B0_UDB04_05_F1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__A0_A1_REG, CYREG_B0_UDB04_A0_A1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__A0_REG, CYREG_B0_UDB04_A0 +.set NOR_SPI_BSPIM_sR8_Dp_u0__A1_REG, CYREG_B0_UDB04_A1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__D0_D1_REG, CYREG_B0_UDB04_D0_D1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__D0_REG, CYREG_B0_UDB04_D0 +.set NOR_SPI_BSPIM_sR8_Dp_u0__D1_REG, CYREG_B0_UDB04_D1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG, CYREG_B0_UDB04_ACTL +.set NOR_SPI_BSPIM_sR8_Dp_u0__F0_F1_REG, CYREG_B0_UDB04_F0_F1 +.set NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG, CYREG_B0_UDB04_F0 +.set NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG, CYREG_B0_UDB04_F1 +.set NOR_SPI_BSPIM_TxStsReg__0__MASK, 0x01 +.set NOR_SPI_BSPIM_TxStsReg__0__POS, 0 +.set NOR_SPI_BSPIM_TxStsReg__1__MASK, 0x02 +.set NOR_SPI_BSPIM_TxStsReg__1__POS, 1 +.set NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB07_08_ACTL +.set NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_REG, CYREG_B0_UDB07_08_ST +.set NOR_SPI_BSPIM_TxStsReg__2__MASK, 0x04 +.set NOR_SPI_BSPIM_TxStsReg__2__POS, 2 +.set NOR_SPI_BSPIM_TxStsReg__3__MASK, 0x08 +.set NOR_SPI_BSPIM_TxStsReg__3__POS, 3 +.set NOR_SPI_BSPIM_TxStsReg__4__MASK, 0x10 +.set NOR_SPI_BSPIM_TxStsReg__4__POS, 4 +.set NOR_SPI_BSPIM_TxStsReg__MASK, 0x1F +.set NOR_SPI_BSPIM_TxStsReg__MASK_REG, CYREG_B0_UDB07_MSK +.set NOR_SPI_BSPIM_TxStsReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB07_ACTL +.set NOR_SPI_BSPIM_TxStsReg__STATUS_REG, CYREG_B0_UDB07_ST + /* SCSI_In */ .set SCSI_In__0__INTTYPE, CYREG_PICU6_INTTYPE1 .set SCSI_In__0__MASK, 0x02 @@ -1051,16 +1252,84 @@ .set TERM_EN__SHIFT, 3 .set TERM_EN__SLW, CYREG_PRT15_SLW +/* nNOR_CS */ +.set nNOR_CS__0__INTTYPE, CYREG_PICU3_INTTYPE4 +.set nNOR_CS__0__MASK, 0x10 +.set nNOR_CS__0__PC, CYREG_PRT3_PC4 +.set nNOR_CS__0__PORT, 3 +.set nNOR_CS__0__SHIFT, 4 +.set nNOR_CS__AG, CYREG_PRT3_AG +.set nNOR_CS__AMUX, CYREG_PRT3_AMUX +.set nNOR_CS__BIE, CYREG_PRT3_BIE +.set nNOR_CS__BIT_MASK, CYREG_PRT3_BIT_MASK +.set nNOR_CS__BYP, CYREG_PRT3_BYP +.set nNOR_CS__CTL, CYREG_PRT3_CTL +.set nNOR_CS__DM0, CYREG_PRT3_DM0 +.set nNOR_CS__DM1, CYREG_PRT3_DM1 +.set nNOR_CS__DM2, CYREG_PRT3_DM2 +.set nNOR_CS__DR, CYREG_PRT3_DR +.set nNOR_CS__INP_DIS, CYREG_PRT3_INP_DIS +.set nNOR_CS__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU3_BASE +.set nNOR_CS__LCD_COM_SEG, CYREG_PRT3_LCD_COM_SEG +.set nNOR_CS__LCD_EN, CYREG_PRT3_LCD_EN +.set nNOR_CS__MASK, 0x10 +.set nNOR_CS__PORT, 3 +.set nNOR_CS__PRT, CYREG_PRT3_PRT +.set nNOR_CS__PRTDSI__CAPS_SEL, CYREG_PRT3_CAPS_SEL +.set nNOR_CS__PRTDSI__DBL_SYNC_IN, CYREG_PRT3_DBL_SYNC_IN +.set nNOR_CS__PRTDSI__OE_SEL0, CYREG_PRT3_OE_SEL0 +.set nNOR_CS__PRTDSI__OE_SEL1, CYREG_PRT3_OE_SEL1 +.set nNOR_CS__PRTDSI__OUT_SEL0, CYREG_PRT3_OUT_SEL0 +.set nNOR_CS__PRTDSI__OUT_SEL1, CYREG_PRT3_OUT_SEL1 +.set nNOR_CS__PRTDSI__SYNC_OUT, CYREG_PRT3_SYNC_OUT +.set nNOR_CS__PS, CYREG_PRT3_PS +.set nNOR_CS__SHIFT, 4 +.set nNOR_CS__SLW, CYREG_PRT3_SLW + +/* nNOR_WP */ +.set nNOR_WP__0__INTTYPE, CYREG_PICU3_INTTYPE5 +.set nNOR_WP__0__MASK, 0x20 +.set nNOR_WP__0__PC, CYREG_PRT3_PC5 +.set nNOR_WP__0__PORT, 3 +.set nNOR_WP__0__SHIFT, 5 +.set nNOR_WP__AG, CYREG_PRT3_AG +.set nNOR_WP__AMUX, CYREG_PRT3_AMUX +.set nNOR_WP__BIE, CYREG_PRT3_BIE +.set nNOR_WP__BIT_MASK, CYREG_PRT3_BIT_MASK +.set nNOR_WP__BYP, CYREG_PRT3_BYP +.set nNOR_WP__CTL, CYREG_PRT3_CTL +.set nNOR_WP__DM0, CYREG_PRT3_DM0 +.set nNOR_WP__DM1, CYREG_PRT3_DM1 +.set nNOR_WP__DM2, CYREG_PRT3_DM2 +.set nNOR_WP__DR, CYREG_PRT3_DR +.set nNOR_WP__INP_DIS, CYREG_PRT3_INP_DIS +.set nNOR_WP__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU3_BASE +.set nNOR_WP__LCD_COM_SEG, CYREG_PRT3_LCD_COM_SEG +.set nNOR_WP__LCD_EN, CYREG_PRT3_LCD_EN +.set nNOR_WP__MASK, 0x20 +.set nNOR_WP__PORT, 3 +.set nNOR_WP__PRT, CYREG_PRT3_PRT +.set nNOR_WP__PRTDSI__CAPS_SEL, CYREG_PRT3_CAPS_SEL +.set nNOR_WP__PRTDSI__DBL_SYNC_IN, CYREG_PRT3_DBL_SYNC_IN +.set nNOR_WP__PRTDSI__OE_SEL0, CYREG_PRT3_OE_SEL0 +.set nNOR_WP__PRTDSI__OE_SEL1, CYREG_PRT3_OE_SEL1 +.set nNOR_WP__PRTDSI__OUT_SEL0, CYREG_PRT3_OUT_SEL0 +.set nNOR_WP__PRTDSI__OUT_SEL1, CYREG_PRT3_OUT_SEL1 +.set nNOR_WP__PRTDSI__SYNC_OUT, CYREG_PRT3_SYNC_OUT +.set nNOR_WP__PS, CYREG_PRT3_PS +.set nNOR_WP__SHIFT, 5 +.set nNOR_WP__SLW, CYREG_PRT3_SLW + /* SCSI_CLK */ -.set SCSI_CLK__CFG0, CYREG_CLKDIST_DCFG1_CFG0 -.set SCSI_CLK__CFG1, CYREG_CLKDIST_DCFG1_CFG1 -.set SCSI_CLK__CFG2, CYREG_CLKDIST_DCFG1_CFG2 +.set SCSI_CLK__CFG0, CYREG_CLKDIST_DCFG2_CFG0 +.set SCSI_CLK__CFG1, CYREG_CLKDIST_DCFG2_CFG1 +.set SCSI_CLK__CFG2, CYREG_CLKDIST_DCFG2_CFG2 .set SCSI_CLK__CFG2_SRC_SEL_MASK, 0x07 -.set SCSI_CLK__INDEX, 0x01 +.set SCSI_CLK__INDEX, 0x02 .set SCSI_CLK__PM_ACT_CFG, CYREG_PM_ACT_CFG2 -.set SCSI_CLK__PM_ACT_MSK, 0x02 +.set SCSI_CLK__PM_ACT_MSK, 0x04 .set SCSI_CLK__PM_STBY_CFG, CYREG_PM_STBY_CFG2 -.set SCSI_CLK__PM_STBY_MSK, 0x02 +.set SCSI_CLK__PM_STBY_MSK, 0x04 /* SCSI_Out */ .set SCSI_Out__0__AG, CYREG_PRT6_AG @@ -1515,15 +1784,15 @@ .set SCSI_Out_Bits_Sync_ctrl_reg__0__POS, 0 .set SCSI_Out_Bits_Sync_ctrl_reg__1__MASK, 0x02 .set SCSI_Out_Bits_Sync_ctrl_reg__1__POS, 1 -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB13_14_ACTL -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB13_14_CTL -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB13_14_CTL -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB13_14_CTL -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB13_14_CTL -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB13_14_MSK -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB13_14_MSK -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB13_14_MSK -.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB13_14_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB09_10_ACTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB09_10_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB09_10_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB09_10_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB09_10_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB09_10_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB09_10_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB09_10_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB09_10_MSK .set SCSI_Out_Bits_Sync_ctrl_reg__2__MASK, 0x04 .set SCSI_Out_Bits_Sync_ctrl_reg__2__POS, 2 .set SCSI_Out_Bits_Sync_ctrl_reg__3__MASK, 0x08 @@ -1536,35 +1805,35 @@ .set SCSI_Out_Bits_Sync_ctrl_reg__6__POS, 6 .set SCSI_Out_Bits_Sync_ctrl_reg__7__MASK, 0x80 .set SCSI_Out_Bits_Sync_ctrl_reg__7__POS, 7 -.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB13_ACTL -.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB13_CTL -.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB13_ST_CTL -.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB13_CTL -.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB13_ST_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB09_ACTL +.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB09_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB09_ST_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB09_CTL +.set SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB09_ST_CTL .set SCSI_Out_Bits_Sync_ctrl_reg__MASK, 0xFF -.set SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB13_MSK_ACTL -.set SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB13_MSK_ACTL -.set SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB13_MSK +.set SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB09_MSK_ACTL +.set SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB09_MSK_ACTL +.set SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB09_MSK .set SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK, 0x01 .set SCSI_Out_Ctl_Sync_ctrl_reg__0__POS, 0 -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB06_07_ACTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB06_07_CTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB06_07_CTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB06_07_CTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB06_07_CTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB06_07_MSK -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB06_07_MSK -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB06_07_MSK -.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB06_07_MSK -.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB06_ACTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB06_CTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB06_ST_CTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB06_CTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB06_ST_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_04_ACTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB03_04_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB03_04_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB03_04_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB03_04_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB03_04_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB03_04_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB03_04_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB03_04_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_ACTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB03_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB03_ST_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB03_CTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB03_ST_CTL .set SCSI_Out_Ctl_Sync_ctrl_reg__MASK, 0x01 -.set SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB06_MSK_ACTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB06_MSK_ACTL -.set SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB06_MSK +.set SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL +.set SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB03_MSK .set SCSI_Out_DBx__0__AG, CYREG_PRT6_AG .set SCSI_Out_DBx__0__AMUX, CYREG_PRT6_AMUX .set SCSI_Out_DBx__0__BIE, CYREG_PRT6_BIE @@ -2012,6 +2281,17 @@ .set SCSI_Out_DBx__DB7__SHIFT, 5 .set SCSI_Out_DBx__DB7__SLW, CYREG_PRT15_SLW +/* NOR_Clock */ +.set NOR_Clock__CFG0, CYREG_CLKDIST_DCFG0_CFG0 +.set NOR_Clock__CFG1, CYREG_CLKDIST_DCFG0_CFG1 +.set NOR_Clock__CFG2, CYREG_CLKDIST_DCFG0_CFG2 +.set NOR_Clock__CFG2_SRC_SEL_MASK, 0x07 +.set NOR_Clock__INDEX, 0x00 +.set NOR_Clock__PM_ACT_CFG, CYREG_PM_ACT_CFG2 +.set NOR_Clock__PM_ACT_MSK, 0x01 +.set NOR_Clock__PM_STBY_CFG, CYREG_PM_STBY_CFG2 +.set NOR_Clock__PM_STBY_MSK, 0x01 + /* SD_RX_DMA */ .set SD_RX_DMA__DRQ_CTL, CYREG_IDMUX_DRQ_CTL0 .set SD_RX_DMA__DRQ_NUMBER, 2 @@ -2052,6 +2332,39 @@ .set SD_TX_DMA_COMPLETE__INTC_SET_EN_REG, CYREG_NVIC_SETENA0 .set SD_TX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 +/* nNOR_HOLD */ +.set nNOR_HOLD__0__INTTYPE, CYREG_PICU12_INTTYPE1 +.set nNOR_HOLD__0__MASK, 0x02 +.set nNOR_HOLD__0__PC, CYREG_PRT12_PC1 +.set nNOR_HOLD__0__PORT, 12 +.set nNOR_HOLD__0__SHIFT, 1 +.set nNOR_HOLD__AG, CYREG_PRT12_AG +.set nNOR_HOLD__BIE, CYREG_PRT12_BIE +.set nNOR_HOLD__BIT_MASK, CYREG_PRT12_BIT_MASK +.set nNOR_HOLD__BYP, CYREG_PRT12_BYP +.set nNOR_HOLD__DM0, CYREG_PRT12_DM0 +.set nNOR_HOLD__DM1, CYREG_PRT12_DM1 +.set nNOR_HOLD__DM2, CYREG_PRT12_DM2 +.set nNOR_HOLD__DR, CYREG_PRT12_DR +.set nNOR_HOLD__INP_DIS, CYREG_PRT12_INP_DIS +.set nNOR_HOLD__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU12_BASE +.set nNOR_HOLD__MASK, 0x02 +.set nNOR_HOLD__PORT, 12 +.set nNOR_HOLD__PRT, CYREG_PRT12_PRT +.set nNOR_HOLD__PRTDSI__DBL_SYNC_IN, CYREG_PRT12_DBL_SYNC_IN +.set nNOR_HOLD__PRTDSI__OE_SEL0, CYREG_PRT12_OE_SEL0 +.set nNOR_HOLD__PRTDSI__OE_SEL1, CYREG_PRT12_OE_SEL1 +.set nNOR_HOLD__PRTDSI__OUT_SEL0, CYREG_PRT12_OUT_SEL0 +.set nNOR_HOLD__PRTDSI__OUT_SEL1, CYREG_PRT12_OUT_SEL1 +.set nNOR_HOLD__PRTDSI__SYNC_OUT, CYREG_PRT12_SYNC_OUT +.set nNOR_HOLD__PS, CYREG_PRT12_PS +.set nNOR_HOLD__SHIFT, 1 +.set nNOR_HOLD__SIO_CFG, CYREG_PRT12_SIO_CFG +.set nNOR_HOLD__SIO_DIFF, CYREG_PRT12_SIO_DIFF +.set nNOR_HOLD__SIO_HYST_EN, CYREG_PRT12_SIO_HYST_EN +.set nNOR_HOLD__SIO_REG_HIFREQ, CYREG_PRT12_SIO_REG_HIFREQ +.set nNOR_HOLD__SLW, CYREG_PRT12_SLW + /* SCSI_Noise */ .set SCSI_Noise__0__AG, CYREG_PRT4_AG .set SCSI_Noise__0__AMUX, CYREG_PRT4_AMUX @@ -2384,6 +2697,8 @@ .set scsiTarget_StatusReg__0__POS, 0 .set scsiTarget_StatusReg__1__MASK, 0x02 .set scsiTarget_StatusReg__1__POS, 1 +.set scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB03_04_ACTL +.set scsiTarget_StatusReg__16BIT_STATUS_REG, CYREG_B0_UDB03_04_ST .set scsiTarget_StatusReg__2__MASK, 0x04 .set scsiTarget_StatusReg__2__POS, 2 .set scsiTarget_StatusReg__3__MASK, 0x08 @@ -2391,13 +2706,13 @@ .set scsiTarget_StatusReg__4__MASK, 0x10 .set scsiTarget_StatusReg__4__POS, 4 .set scsiTarget_StatusReg__MASK, 0x1F -.set scsiTarget_StatusReg__MASK_REG, CYREG_B0_UDB15_MSK -.set scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB15_MSK_ACTL -.set scsiTarget_StatusReg__PER_ST_AUX_CTL_REG, CYREG_B0_UDB15_MSK_ACTL -.set scsiTarget_StatusReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB15_ACTL -.set scsiTarget_StatusReg__STATUS_CNT_REG, CYREG_B0_UDB15_ST_CTL -.set scsiTarget_StatusReg__STATUS_CONTROL_REG, CYREG_B0_UDB15_ST_CTL -.set scsiTarget_StatusReg__STATUS_REG, CYREG_B0_UDB15_ST +.set scsiTarget_StatusReg__MASK_REG, CYREG_B0_UDB03_MSK +.set scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL +.set scsiTarget_StatusReg__PER_ST_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL +.set scsiTarget_StatusReg__STATUS_AUX_CTL_REG, CYREG_B0_UDB03_ACTL +.set scsiTarget_StatusReg__STATUS_CNT_REG, CYREG_B0_UDB03_ST_CTL +.set scsiTarget_StatusReg__STATUS_CONTROL_REG, CYREG_B0_UDB03_ST_CTL +.set scsiTarget_StatusReg__STATUS_REG, CYREG_B0_UDB03_ST /* Debug_Timer */ .set Debug_Timer_Interrupt__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 @@ -2466,111 +2781,26 @@ .set SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG, CYREG_NVIC_SETPEND0 /* SD_Data_Clk */ -.set SD_Data_Clk__CFG0, CYREG_CLKDIST_DCFG0_CFG0 -.set SD_Data_Clk__CFG1, CYREG_CLKDIST_DCFG0_CFG1 -.set SD_Data_Clk__CFG2, CYREG_CLKDIST_DCFG0_CFG2 +.set SD_Data_Clk__CFG0, CYREG_CLKDIST_DCFG1_CFG0 +.set SD_Data_Clk__CFG1, CYREG_CLKDIST_DCFG1_CFG1 +.set SD_Data_Clk__CFG2, CYREG_CLKDIST_DCFG1_CFG2 .set SD_Data_Clk__CFG2_SRC_SEL_MASK, 0x07 -.set SD_Data_Clk__INDEX, 0x00 +.set SD_Data_Clk__INDEX, 0x01 .set SD_Data_Clk__PM_ACT_CFG, CYREG_PM_ACT_CFG2 -.set SD_Data_Clk__PM_ACT_MSK, 0x01 +.set SD_Data_Clk__PM_ACT_MSK, 0x02 .set SD_Data_Clk__PM_STBY_CFG, CYREG_PM_STBY_CFG2 -.set SD_Data_Clk__PM_STBY_MSK, 0x01 - -/* SPI_Pullups */ -.set SPI_Pullups__0__INTTYPE, CYREG_PICU3_INTTYPE4 -.set SPI_Pullups__0__MASK, 0x10 -.set SPI_Pullups__0__PC, CYREG_PRT3_PC4 -.set SPI_Pullups__0__PORT, 3 -.set SPI_Pullups__0__SHIFT, 4 -.set SPI_Pullups__1__INTTYPE, CYREG_PICU3_INTTYPE5 -.set SPI_Pullups__1__MASK, 0x20 -.set SPI_Pullups__1__PC, CYREG_PRT3_PC5 -.set SPI_Pullups__1__PORT, 3 -.set SPI_Pullups__1__SHIFT, 5 -.set SPI_Pullups__2__INTTYPE, CYREG_PICU3_INTTYPE6 -.set SPI_Pullups__2__MASK, 0x40 -.set SPI_Pullups__2__PC, CYREG_PRT3_PC6 -.set SPI_Pullups__2__PORT, 3 -.set SPI_Pullups__2__SHIFT, 6 -.set SPI_Pullups__3__INTTYPE, CYREG_PICU3_INTTYPE7 -.set SPI_Pullups__3__MASK, 0x80 -.set SPI_Pullups__3__PC, CYREG_PRT3_PC7 -.set SPI_Pullups__3__PORT, 3 -.set SPI_Pullups__3__SHIFT, 7 -.set SPI_Pullups__AG, CYREG_PRT3_AG -.set SPI_Pullups__AMUX, CYREG_PRT3_AMUX -.set SPI_Pullups__BIE, CYREG_PRT3_BIE -.set SPI_Pullups__BIT_MASK, CYREG_PRT3_BIT_MASK -.set SPI_Pullups__BYP, CYREG_PRT3_BYP -.set SPI_Pullups__CTL, CYREG_PRT3_CTL -.set SPI_Pullups__DM0, CYREG_PRT3_DM0 -.set SPI_Pullups__DM1, CYREG_PRT3_DM1 -.set SPI_Pullups__DM2, CYREG_PRT3_DM2 -.set SPI_Pullups__DR, CYREG_PRT3_DR -.set SPI_Pullups__INP_DIS, CYREG_PRT3_INP_DIS -.set SPI_Pullups__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU3_BASE -.set SPI_Pullups__LCD_COM_SEG, CYREG_PRT3_LCD_COM_SEG -.set SPI_Pullups__LCD_EN, CYREG_PRT3_LCD_EN -.set SPI_Pullups__MASK, 0xF0 -.set SPI_Pullups__PORT, 3 -.set SPI_Pullups__PRT, CYREG_PRT3_PRT -.set SPI_Pullups__PRTDSI__CAPS_SEL, CYREG_PRT3_CAPS_SEL -.set SPI_Pullups__PRTDSI__DBL_SYNC_IN, CYREG_PRT3_DBL_SYNC_IN -.set SPI_Pullups__PRTDSI__OE_SEL0, CYREG_PRT3_OE_SEL0 -.set SPI_Pullups__PRTDSI__OE_SEL1, CYREG_PRT3_OE_SEL1 -.set SPI_Pullups__PRTDSI__OUT_SEL0, CYREG_PRT3_OUT_SEL0 -.set SPI_Pullups__PRTDSI__OUT_SEL1, CYREG_PRT3_OUT_SEL1 -.set SPI_Pullups__PRTDSI__SYNC_OUT, CYREG_PRT3_SYNC_OUT -.set SPI_Pullups__PS, CYREG_PRT3_PS -.set SPI_Pullups__SHIFT, 4 -.set SPI_Pullups__SLW, CYREG_PRT3_SLW -.set SPI_Pullups_1__0__INTTYPE, CYREG_PICU12_INTTYPE0 -.set SPI_Pullups_1__0__MASK, 0x01 -.set SPI_Pullups_1__0__PC, CYREG_PRT12_PC0 -.set SPI_Pullups_1__0__PORT, 12 -.set SPI_Pullups_1__0__SHIFT, 0 -.set SPI_Pullups_1__1__INTTYPE, CYREG_PICU12_INTTYPE1 -.set SPI_Pullups_1__1__MASK, 0x02 -.set SPI_Pullups_1__1__PC, CYREG_PRT12_PC1 -.set SPI_Pullups_1__1__PORT, 12 -.set SPI_Pullups_1__1__SHIFT, 1 -.set SPI_Pullups_1__AG, CYREG_PRT12_AG -.set SPI_Pullups_1__BIE, CYREG_PRT12_BIE -.set SPI_Pullups_1__BIT_MASK, CYREG_PRT12_BIT_MASK -.set SPI_Pullups_1__BYP, CYREG_PRT12_BYP -.set SPI_Pullups_1__DM0, CYREG_PRT12_DM0 -.set SPI_Pullups_1__DM1, CYREG_PRT12_DM1 -.set SPI_Pullups_1__DM2, CYREG_PRT12_DM2 -.set SPI_Pullups_1__DR, CYREG_PRT12_DR -.set SPI_Pullups_1__INP_DIS, CYREG_PRT12_INP_DIS -.set SPI_Pullups_1__INTTYPE_BASE, CYDEV_PICU_INTTYPE_PICU12_BASE -.set SPI_Pullups_1__MASK, 0x03 -.set SPI_Pullups_1__PORT, 12 -.set SPI_Pullups_1__PRT, CYREG_PRT12_PRT -.set SPI_Pullups_1__PRTDSI__DBL_SYNC_IN, CYREG_PRT12_DBL_SYNC_IN -.set SPI_Pullups_1__PRTDSI__OE_SEL0, CYREG_PRT12_OE_SEL0 -.set SPI_Pullups_1__PRTDSI__OE_SEL1, CYREG_PRT12_OE_SEL1 -.set SPI_Pullups_1__PRTDSI__OUT_SEL0, CYREG_PRT12_OUT_SEL0 -.set SPI_Pullups_1__PRTDSI__OUT_SEL1, CYREG_PRT12_OUT_SEL1 -.set SPI_Pullups_1__PRTDSI__SYNC_OUT, CYREG_PRT12_SYNC_OUT -.set SPI_Pullups_1__PS, CYREG_PRT12_PS -.set SPI_Pullups_1__SHIFT, 0 -.set SPI_Pullups_1__SIO_CFG, CYREG_PRT12_SIO_CFG -.set SPI_Pullups_1__SIO_DIFF, CYREG_PRT12_SIO_DIFF -.set SPI_Pullups_1__SIO_HYST_EN, CYREG_PRT12_SIO_HYST_EN -.set SPI_Pullups_1__SIO_REG_HIFREQ, CYREG_PRT12_SIO_REG_HIFREQ -.set SPI_Pullups_1__SLW, CYREG_PRT12_SLW +.set SD_Data_Clk__PM_STBY_MSK, 0x02 /* timer_clock */ -.set timer_clock__CFG0, CYREG_CLKDIST_DCFG2_CFG0 -.set timer_clock__CFG1, CYREG_CLKDIST_DCFG2_CFG1 -.set timer_clock__CFG2, CYREG_CLKDIST_DCFG2_CFG2 +.set timer_clock__CFG0, CYREG_CLKDIST_DCFG3_CFG0 +.set timer_clock__CFG1, CYREG_CLKDIST_DCFG3_CFG1 +.set timer_clock__CFG2, CYREG_CLKDIST_DCFG3_CFG2 .set timer_clock__CFG2_SRC_SEL_MASK, 0x07 -.set timer_clock__INDEX, 0x02 +.set timer_clock__INDEX, 0x03 .set timer_clock__PM_ACT_CFG, CYREG_PM_ACT_CFG2 -.set timer_clock__PM_ACT_MSK, 0x04 +.set timer_clock__PM_ACT_MSK, 0x08 .set timer_clock__PM_STBY_CFG, CYREG_PM_STBY_CFG2 -.set timer_clock__PM_STBY_MSK, 0x04 +.set timer_clock__PM_STBY_MSK, 0x08 /* SCSI_RST_ISR */ .set SCSI_RST_ISR__INTC_CLR_EN_REG, CYREG_NVIC_CLRENA0 @@ -2597,8 +2827,6 @@ .set SCSI_Filtered_sts_sts_reg__0__POS, 0 .set SCSI_Filtered_sts_sts_reg__1__MASK, 0x02 .set SCSI_Filtered_sts_sts_reg__1__POS, 1 -.set SCSI_Filtered_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB07_08_ACTL -.set SCSI_Filtered_sts_sts_reg__16BIT_STATUS_REG, CYREG_B0_UDB07_08_ST .set SCSI_Filtered_sts_sts_reg__2__MASK, 0x04 .set SCSI_Filtered_sts_sts_reg__2__POS, 2 .set SCSI_Filtered_sts_sts_reg__3__MASK, 0x08 @@ -2606,58 +2834,67 @@ .set SCSI_Filtered_sts_sts_reg__4__MASK, 0x10 .set SCSI_Filtered_sts_sts_reg__4__POS, 4 .set SCSI_Filtered_sts_sts_reg__MASK, 0x1F -.set SCSI_Filtered_sts_sts_reg__MASK_REG, CYREG_B0_UDB07_MSK -.set SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG, CYREG_B0_UDB07_ACTL -.set SCSI_Filtered_sts_sts_reg__STATUS_REG, CYREG_B0_UDB07_ST +.set SCSI_Filtered_sts_sts_reg__MASK_REG, CYREG_B0_UDB15_MSK +.set SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG, CYREG_B0_UDB15_ACTL +.set SCSI_Filtered_sts_sts_reg__STATUS_REG, CYREG_B0_UDB15_ST /* SCSI_CTL_PHASE */ .set SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK, 0x01 .set SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS, 0 .set SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK, 0x02 .set SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS, 1 +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_13_ACTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB12_13_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB12_13_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB12_13_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB12_13_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB12_13_MSK .set SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK, 0x04 .set SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS, 2 -.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB15_ACTL -.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB15_CTL -.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB15_ST_CTL -.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB15_CTL -.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB15_ST_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB12_ACTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB12_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB12_ST_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB12_CTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB12_ST_CTL .set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK, 0x07 -.set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB15_MSK_ACTL -.set SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB15_MSK_ACTL -.set SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB15_MSK +.set SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB12_MSK_ACTL +.set SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB12_MSK /* SCSI_Glitch_Ctl */ .set SCSI_Glitch_Ctl_Sync_ctrl_reg__0__MASK, 0x01 .set SCSI_Glitch_Ctl_Sync_ctrl_reg__0__POS, 0 -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_04_ACTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB03_04_CTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB03_04_CTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB03_04_CTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB03_04_CTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB03_04_MSK -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB03_04_MSK -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB03_04_MSK -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB03_04_MSK -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB03_ACTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB03_CTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB03_ST_CTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB03_CTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB03_ST_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG, CYREG_B0_UDB13_14_ACTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG, CYREG_B0_UDB13_14_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG, CYREG_B0_UDB13_14_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG, CYREG_B0_UDB13_14_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG, CYREG_B0_UDB13_14_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG, CYREG_B0_UDB13_14_MSK +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG, CYREG_B0_UDB13_14_MSK +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG, CYREG_B0_UDB13_14_MSK +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG, CYREG_B0_UDB13_14_MSK +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG, CYREG_B0_UDB13_ACTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG, CYREG_B0_UDB13_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG, CYREG_B0_UDB13_ST_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG, CYREG_B0_UDB13_CTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG, CYREG_B0_UDB13_ST_CTL .set SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK, 0x01 -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB03_MSK_ACTL -.set SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB03_MSK +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG, CYREG_B0_UDB13_MSK_ACTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG, CYREG_B0_UDB13_MSK_ACTL +.set SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG, CYREG_B0_UDB13_MSK /* SCSI_Parity_Error */ .set SCSI_Parity_Error_sts_sts_reg__0__MASK, 0x01 .set SCSI_Parity_Error_sts_sts_reg__0__POS, 0 -.set SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB14_15_ACTL -.set SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG, CYREG_B0_UDB14_15_ST +.set SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG, CYREG_B0_UDB11_12_ACTL +.set SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG, CYREG_B0_UDB11_12_ST .set SCSI_Parity_Error_sts_sts_reg__MASK, 0x01 -.set SCSI_Parity_Error_sts_sts_reg__MASK_REG, CYREG_B0_UDB14_MSK -.set SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG, CYREG_B0_UDB14_ACTL -.set SCSI_Parity_Error_sts_sts_reg__STATUS_REG, CYREG_B0_UDB14_ST +.set SCSI_Parity_Error_sts_sts_reg__MASK_REG, CYREG_B0_UDB11_MSK +.set SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG, CYREG_B0_UDB11_ACTL +.set SCSI_Parity_Error_sts_sts_reg__STATUS_REG, CYREG_B0_UDB11_ST /* Miscellaneous */ .set BCLK__BUS_CLK__HZ, 50000000 diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitteriar.inc b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitteriar.inc index 1fab3ec..5442ef3 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitteriar.inc +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitteriar.inc @@ -354,33 +354,101 @@ USBFS_USB__USB_CLK_EN EQU CYREG_USB_USB_CLK_EN USBFS_USB__USBIO_CR0 EQU CYREG_USB_USBIO_CR0 USBFS_USB__USBIO_CR1 EQU CYREG_USB_USBIO_CR1 +/* NOR_SI */ +NOR_SI__0__INTTYPE EQU CYREG_PICU3_INTTYPE6 +NOR_SI__0__MASK EQU 0x40 +NOR_SI__0__PC EQU CYREG_PRT3_PC6 +NOR_SI__0__PORT EQU 3 +NOR_SI__0__SHIFT EQU 6 +NOR_SI__AG EQU CYREG_PRT3_AG +NOR_SI__AMUX EQU CYREG_PRT3_AMUX +NOR_SI__BIE EQU CYREG_PRT3_BIE +NOR_SI__BIT_MASK EQU CYREG_PRT3_BIT_MASK +NOR_SI__BYP EQU CYREG_PRT3_BYP +NOR_SI__CTL EQU CYREG_PRT3_CTL +NOR_SI__DM0 EQU CYREG_PRT3_DM0 +NOR_SI__DM1 EQU CYREG_PRT3_DM1 +NOR_SI__DM2 EQU CYREG_PRT3_DM2 +NOR_SI__DR EQU CYREG_PRT3_DR +NOR_SI__INP_DIS EQU CYREG_PRT3_INP_DIS +NOR_SI__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +NOR_SI__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +NOR_SI__LCD_EN EQU CYREG_PRT3_LCD_EN +NOR_SI__MASK EQU 0x40 +NOR_SI__PORT EQU 3 +NOR_SI__PRT EQU CYREG_PRT3_PRT +NOR_SI__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +NOR_SI__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +NOR_SI__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +NOR_SI__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +NOR_SI__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +NOR_SI__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +NOR_SI__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +NOR_SI__PS EQU CYREG_PRT3_PS +NOR_SI__SHIFT EQU 6 +NOR_SI__SLW EQU CYREG_PRT3_SLW + +/* NOR_SO */ +NOR_SO__0__INTTYPE EQU CYREG_PICU15_INTTYPE2 +NOR_SO__0__MASK EQU 0x04 +NOR_SO__0__PC EQU CYREG_IO_PC_PRT15_PC2 +NOR_SO__0__PORT EQU 15 +NOR_SO__0__SHIFT EQU 2 +NOR_SO__AG EQU CYREG_PRT15_AG +NOR_SO__AMUX EQU CYREG_PRT15_AMUX +NOR_SO__BIE EQU CYREG_PRT15_BIE +NOR_SO__BIT_MASK EQU CYREG_PRT15_BIT_MASK +NOR_SO__BYP EQU CYREG_PRT15_BYP +NOR_SO__CTL EQU CYREG_PRT15_CTL +NOR_SO__DM0 EQU CYREG_PRT15_DM0 +NOR_SO__DM1 EQU CYREG_PRT15_DM1 +NOR_SO__DM2 EQU CYREG_PRT15_DM2 +NOR_SO__DR EQU CYREG_PRT15_DR +NOR_SO__INP_DIS EQU CYREG_PRT15_INP_DIS +NOR_SO__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU15_BASE +NOR_SO__LCD_COM_SEG EQU CYREG_PRT15_LCD_COM_SEG +NOR_SO__LCD_EN EQU CYREG_PRT15_LCD_EN +NOR_SO__MASK EQU 0x04 +NOR_SO__PORT EQU 15 +NOR_SO__PRT EQU CYREG_PRT15_PRT +NOR_SO__PRTDSI__CAPS_SEL EQU CYREG_PRT15_CAPS_SEL +NOR_SO__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT15_DBL_SYNC_IN +NOR_SO__PRTDSI__OE_SEL0 EQU CYREG_PRT15_OE_SEL0 +NOR_SO__PRTDSI__OE_SEL1 EQU CYREG_PRT15_OE_SEL1 +NOR_SO__PRTDSI__OUT_SEL0 EQU CYREG_PRT15_OUT_SEL0 +NOR_SO__PRTDSI__OUT_SEL1 EQU CYREG_PRT15_OUT_SEL1 +NOR_SO__PRTDSI__SYNC_OUT EQU CYREG_PRT15_SYNC_OUT +NOR_SO__PS EQU CYREG_PRT15_PS +NOR_SO__SHIFT EQU 2 +NOR_SO__SLW EQU CYREG_PRT15_SLW + /* SDCard */ -SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB04_05_ACTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB04_ACTL -SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B1_UDB04_CTL -SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B1_UDB04_CTL -SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB04_MSK -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB04_05_ACTL -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B1_UDB04_05_ST -SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B1_UDB04_MSK -SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB04_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B1_UDB04_ST +SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB05_06_ACTL +SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB05_ACTL +SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B1_UDB05_CTL +SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B1_UDB05_CTL +SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB05_MSK +SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB05_06_ACTL +SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B1_UDB05_06_ST +SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B1_UDB05_MSK +SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB05_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B1_UDB05_ST SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB06_07_ST SDCard_BSPIM_RxStsReg__4__MASK EQU 0x10 @@ -391,7 +459,11 @@ SDCard_BSPIM_RxStsReg__6__MASK EQU 0x40 SDCard_BSPIM_RxStsReg__6__POS EQU 6 SDCard_BSPIM_RxStsReg__MASK EQU 0x70 SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB06_MSK +SDCard_BSPIM_RxStsReg__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL +SDCard_BSPIM_RxStsReg__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL +SDCard_BSPIM_RxStsReg__STATUS_CNT_REG EQU CYREG_B1_UDB06_ST_CTL +SDCard_BSPIM_RxStsReg__STATUS_CONTROL_REG EQU CYREG_B1_UDB06_ST_CTL SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB06_ST SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B1_UDB04_05_A0 SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B1_UDB04_05_A1 @@ -410,14 +482,12 @@ SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B1_UDB04_ACTL SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B1_UDB04_F0_F1 SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B1_UDB04_F0 SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B1_UDB04_F1 -SDCard_BSPIM_sR8_Dp_u0__MSK_DP_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_sR8_Dp_u0__PER_DP_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL SDCard_BSPIM_TxStsReg__0__MASK EQU 0x01 SDCard_BSPIM_TxStsReg__0__POS EQU 0 SDCard_BSPIM_TxStsReg__1__MASK EQU 0x02 SDCard_BSPIM_TxStsReg__1__POS EQU 1 -SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_08_ACTL -SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB07_08_ST +SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL +SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB06_07_ST SDCard_BSPIM_TxStsReg__2__MASK EQU 0x04 SDCard_BSPIM_TxStsReg__2__POS EQU 2 SDCard_BSPIM_TxStsReg__3__MASK EQU 0x08 @@ -425,9 +495,9 @@ SDCard_BSPIM_TxStsReg__3__POS EQU 3 SDCard_BSPIM_TxStsReg__4__MASK EQU 0x10 SDCard_BSPIM_TxStsReg__4__POS EQU 4 SDCard_BSPIM_TxStsReg__MASK EQU 0x1F -SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B1_UDB07_MSK -SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_ACTL -SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B1_UDB07_ST +SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB06_MSK +SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL +SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB06_ST /* SD_SCK */ SD_SCK__0__INTTYPE EQU CYREG_PICU3_INTTYPE1 @@ -463,6 +533,137 @@ SD_SCK__PS EQU CYREG_PRT3_PS SD_SCK__SHIFT EQU 1 SD_SCK__SLW EQU CYREG_PRT3_SLW +/* NOR_CTL */ +NOR_CTL_Sync_ctrl_reg__0__MASK EQU 0x01 +NOR_CTL_Sync_ctrl_reg__0__POS EQU 0 +NOR_CTL_Sync_ctrl_reg__1__MASK EQU 0x02 +NOR_CTL_Sync_ctrl_reg__1__POS EQU 1 +NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL +NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL +NOR_CTL_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B1_UDB06_CTL +NOR_CTL_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B1_UDB06_ST_CTL +NOR_CTL_Sync_ctrl_reg__COUNT_REG EQU CYREG_B1_UDB06_CTL +NOR_CTL_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B1_UDB06_ST_CTL +NOR_CTL_Sync_ctrl_reg__MASK EQU 0x03 +NOR_CTL_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL +NOR_CTL_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL +NOR_CTL_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B1_UDB06_MSK + +/* NOR_SCK */ +NOR_SCK__0__INTTYPE EQU CYREG_PICU3_INTTYPE7 +NOR_SCK__0__MASK EQU 0x80 +NOR_SCK__0__PC EQU CYREG_PRT3_PC7 +NOR_SCK__0__PORT EQU 3 +NOR_SCK__0__SHIFT EQU 7 +NOR_SCK__AG EQU CYREG_PRT3_AG +NOR_SCK__AMUX EQU CYREG_PRT3_AMUX +NOR_SCK__BIE EQU CYREG_PRT3_BIE +NOR_SCK__BIT_MASK EQU CYREG_PRT3_BIT_MASK +NOR_SCK__BYP EQU CYREG_PRT3_BYP +NOR_SCK__CTL EQU CYREG_PRT3_CTL +NOR_SCK__DM0 EQU CYREG_PRT3_DM0 +NOR_SCK__DM1 EQU CYREG_PRT3_DM1 +NOR_SCK__DM2 EQU CYREG_PRT3_DM2 +NOR_SCK__DR EQU CYREG_PRT3_DR +NOR_SCK__INP_DIS EQU CYREG_PRT3_INP_DIS +NOR_SCK__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +NOR_SCK__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +NOR_SCK__LCD_EN EQU CYREG_PRT3_LCD_EN +NOR_SCK__MASK EQU 0x80 +NOR_SCK__PORT EQU 3 +NOR_SCK__PRT EQU CYREG_PRT3_PRT +NOR_SCK__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +NOR_SCK__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +NOR_SCK__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +NOR_SCK__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +NOR_SCK__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +NOR_SCK__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +NOR_SCK__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +NOR_SCK__PS EQU CYREG_PRT3_PS +NOR_SCK__SHIFT EQU 7 +NOR_SCK__SLW EQU CYREG_PRT3_SLW + +/* NOR_SPI */ +NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB08_09_ACTL +NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB08_ACTL +NOR_SPI_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B0_UDB08_CTL +NOR_SPI_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter__COUNT_REG EQU CYREG_B0_UDB08_CTL +NOR_SPI_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B0_UDB08_MSK +NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB08_09_ACTL +NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B0_UDB08_09_ST +NOR_SPI_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B0_UDB08_MSK +NOR_SPI_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB08_ACTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B0_UDB08_ST +NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_09_ACTL +NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB08_09_ST +NOR_SPI_BSPIM_RxStsReg__4__MASK EQU 0x10 +NOR_SPI_BSPIM_RxStsReg__4__POS EQU 4 +NOR_SPI_BSPIM_RxStsReg__5__MASK EQU 0x20 +NOR_SPI_BSPIM_RxStsReg__5__POS EQU 5 +NOR_SPI_BSPIM_RxStsReg__6__MASK EQU 0x40 +NOR_SPI_BSPIM_RxStsReg__6__POS EQU 6 +NOR_SPI_BSPIM_RxStsReg__MASK EQU 0x70 +NOR_SPI_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB08_MSK +NOR_SPI_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_ACTL +NOR_SPI_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB08_ST +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB04_05_A0 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB04_05_A1 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB04_05_D0 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB04_05_D1 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB04_05_F0 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB04_05_F1 +NOR_SPI_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB04_A0_A1 +NOR_SPI_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB04_A0 +NOR_SPI_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB04_A1 +NOR_SPI_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB04_D0_D1 +NOR_SPI_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB04_D0 +NOR_SPI_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB04_D1 +NOR_SPI_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL +NOR_SPI_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB04_F0_F1 +NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB04_F0 +NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB04_F1 +NOR_SPI_BSPIM_TxStsReg__0__MASK EQU 0x01 +NOR_SPI_BSPIM_TxStsReg__0__POS EQU 0 +NOR_SPI_BSPIM_TxStsReg__1__MASK EQU 0x02 +NOR_SPI_BSPIM_TxStsReg__1__POS EQU 1 +NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_08_ACTL +NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB07_08_ST +NOR_SPI_BSPIM_TxStsReg__2__MASK EQU 0x04 +NOR_SPI_BSPIM_TxStsReg__2__POS EQU 2 +NOR_SPI_BSPIM_TxStsReg__3__MASK EQU 0x08 +NOR_SPI_BSPIM_TxStsReg__3__POS EQU 3 +NOR_SPI_BSPIM_TxStsReg__4__MASK EQU 0x10 +NOR_SPI_BSPIM_TxStsReg__4__POS EQU 4 +NOR_SPI_BSPIM_TxStsReg__MASK EQU 0x1F +NOR_SPI_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB07_MSK +NOR_SPI_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_ACTL +NOR_SPI_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB07_ST + /* SCSI_In */ SCSI_In__0__INTTYPE EQU CYREG_PICU6_INTTYPE1 SCSI_In__0__MASK EQU 0x02 @@ -1050,16 +1251,84 @@ TERM_EN__PS EQU CYREG_PRT15_PS TERM_EN__SHIFT EQU 3 TERM_EN__SLW EQU CYREG_PRT15_SLW +/* nNOR_CS */ +nNOR_CS__0__INTTYPE EQU CYREG_PICU3_INTTYPE4 +nNOR_CS__0__MASK EQU 0x10 +nNOR_CS__0__PC EQU CYREG_PRT3_PC4 +nNOR_CS__0__PORT EQU 3 +nNOR_CS__0__SHIFT EQU 4 +nNOR_CS__AG EQU CYREG_PRT3_AG +nNOR_CS__AMUX EQU CYREG_PRT3_AMUX +nNOR_CS__BIE EQU CYREG_PRT3_BIE +nNOR_CS__BIT_MASK EQU CYREG_PRT3_BIT_MASK +nNOR_CS__BYP EQU CYREG_PRT3_BYP +nNOR_CS__CTL EQU CYREG_PRT3_CTL +nNOR_CS__DM0 EQU CYREG_PRT3_DM0 +nNOR_CS__DM1 EQU CYREG_PRT3_DM1 +nNOR_CS__DM2 EQU CYREG_PRT3_DM2 +nNOR_CS__DR EQU CYREG_PRT3_DR +nNOR_CS__INP_DIS EQU CYREG_PRT3_INP_DIS +nNOR_CS__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +nNOR_CS__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +nNOR_CS__LCD_EN EQU CYREG_PRT3_LCD_EN +nNOR_CS__MASK EQU 0x10 +nNOR_CS__PORT EQU 3 +nNOR_CS__PRT EQU CYREG_PRT3_PRT +nNOR_CS__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +nNOR_CS__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +nNOR_CS__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +nNOR_CS__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +nNOR_CS__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +nNOR_CS__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +nNOR_CS__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +nNOR_CS__PS EQU CYREG_PRT3_PS +nNOR_CS__SHIFT EQU 4 +nNOR_CS__SLW EQU CYREG_PRT3_SLW + +/* nNOR_WP */ +nNOR_WP__0__INTTYPE EQU CYREG_PICU3_INTTYPE5 +nNOR_WP__0__MASK EQU 0x20 +nNOR_WP__0__PC EQU CYREG_PRT3_PC5 +nNOR_WP__0__PORT EQU 3 +nNOR_WP__0__SHIFT EQU 5 +nNOR_WP__AG EQU CYREG_PRT3_AG +nNOR_WP__AMUX EQU CYREG_PRT3_AMUX +nNOR_WP__BIE EQU CYREG_PRT3_BIE +nNOR_WP__BIT_MASK EQU CYREG_PRT3_BIT_MASK +nNOR_WP__BYP EQU CYREG_PRT3_BYP +nNOR_WP__CTL EQU CYREG_PRT3_CTL +nNOR_WP__DM0 EQU CYREG_PRT3_DM0 +nNOR_WP__DM1 EQU CYREG_PRT3_DM1 +nNOR_WP__DM2 EQU CYREG_PRT3_DM2 +nNOR_WP__DR EQU CYREG_PRT3_DR +nNOR_WP__INP_DIS EQU CYREG_PRT3_INP_DIS +nNOR_WP__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +nNOR_WP__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +nNOR_WP__LCD_EN EQU CYREG_PRT3_LCD_EN +nNOR_WP__MASK EQU 0x20 +nNOR_WP__PORT EQU 3 +nNOR_WP__PRT EQU CYREG_PRT3_PRT +nNOR_WP__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +nNOR_WP__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +nNOR_WP__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +nNOR_WP__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +nNOR_WP__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +nNOR_WP__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +nNOR_WP__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +nNOR_WP__PS EQU CYREG_PRT3_PS +nNOR_WP__SHIFT EQU 5 +nNOR_WP__SLW EQU CYREG_PRT3_SLW + /* SCSI_CLK */ -SCSI_CLK__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 -SCSI_CLK__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 -SCSI_CLK__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 +SCSI_CLK__CFG0 EQU CYREG_CLKDIST_DCFG2_CFG0 +SCSI_CLK__CFG1 EQU CYREG_CLKDIST_DCFG2_CFG1 +SCSI_CLK__CFG2 EQU CYREG_CLKDIST_DCFG2_CFG2 SCSI_CLK__CFG2_SRC_SEL_MASK EQU 0x07 -SCSI_CLK__INDEX EQU 0x01 +SCSI_CLK__INDEX EQU 0x02 SCSI_CLK__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -SCSI_CLK__PM_ACT_MSK EQU 0x02 +SCSI_CLK__PM_ACT_MSK EQU 0x04 SCSI_CLK__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -SCSI_CLK__PM_STBY_MSK EQU 0x02 +SCSI_CLK__PM_STBY_MSK EQU 0x04 /* SCSI_Out */ SCSI_Out__0__AG EQU CYREG_PRT6_AG @@ -1514,15 +1783,15 @@ SCSI_Out_Bits_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_Out_Bits_Sync_ctrl_reg__0__POS EQU 0 SCSI_Out_Bits_Sync_ctrl_reg__1__MASK EQU 0x02 SCSI_Out_Bits_Sync_ctrl_reg__1__POS EQU 1 -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_14_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB13_14_MSK -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB13_14_MSK -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB09_10_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB09_10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB09_10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB09_10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB09_10_MSK SCSI_Out_Bits_Sync_ctrl_reg__2__MASK EQU 0x04 SCSI_Out_Bits_Sync_ctrl_reg__2__POS EQU 2 SCSI_Out_Bits_Sync_ctrl_reg__3__MASK EQU 0x08 @@ -1535,35 +1804,35 @@ SCSI_Out_Bits_Sync_ctrl_reg__6__MASK EQU 0x40 SCSI_Out_Bits_Sync_ctrl_reg__6__POS EQU 6 SCSI_Out_Bits_Sync_ctrl_reg__7__MASK EQU 0x80 SCSI_Out_Bits_Sync_ctrl_reg__7__POS EQU 7 -SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB13_CTL -SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB13_ST_CTL -SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB13_CTL -SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB13_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB09_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB09_CTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB09_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB09_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB09_ST_CTL SCSI_Out_Bits_Sync_ctrl_reg__MASK EQU 0xFF -SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB13_MSK +SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB09_MSK_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB09_MSK_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB09_MSK SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_Out_Ctl_Sync_ctrl_reg__0__POS EQU 0 -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB06_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB06_ST_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB06_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB06_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB03_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB03_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL SCSI_Out_Ctl_Sync_ctrl_reg__MASK EQU 0x01 -SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB06_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB03_MSK SCSI_Out_DBx__0__AG EQU CYREG_PRT6_AG SCSI_Out_DBx__0__AMUX EQU CYREG_PRT6_AMUX SCSI_Out_DBx__0__BIE EQU CYREG_PRT6_BIE @@ -2011,6 +2280,17 @@ SCSI_Out_DBx__DB7__PS EQU CYREG_PRT15_PS SCSI_Out_DBx__DB7__SHIFT EQU 5 SCSI_Out_DBx__DB7__SLW EQU CYREG_PRT15_SLW +/* NOR_Clock */ +NOR_Clock__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0 +NOR_Clock__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1 +NOR_Clock__CFG2 EQU CYREG_CLKDIST_DCFG0_CFG2 +NOR_Clock__CFG2_SRC_SEL_MASK EQU 0x07 +NOR_Clock__INDEX EQU 0x00 +NOR_Clock__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 +NOR_Clock__PM_ACT_MSK EQU 0x01 +NOR_Clock__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 +NOR_Clock__PM_STBY_MSK EQU 0x01 + /* SD_RX_DMA */ SD_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 SD_RX_DMA__DRQ_NUMBER EQU 2 @@ -2051,6 +2331,39 @@ SD_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_6 SD_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 SD_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +/* nNOR_HOLD */ +nNOR_HOLD__0__INTTYPE EQU CYREG_PICU12_INTTYPE1 +nNOR_HOLD__0__MASK EQU 0x02 +nNOR_HOLD__0__PC EQU CYREG_PRT12_PC1 +nNOR_HOLD__0__PORT EQU 12 +nNOR_HOLD__0__SHIFT EQU 1 +nNOR_HOLD__AG EQU CYREG_PRT12_AG +nNOR_HOLD__BIE EQU CYREG_PRT12_BIE +nNOR_HOLD__BIT_MASK EQU CYREG_PRT12_BIT_MASK +nNOR_HOLD__BYP EQU CYREG_PRT12_BYP +nNOR_HOLD__DM0 EQU CYREG_PRT12_DM0 +nNOR_HOLD__DM1 EQU CYREG_PRT12_DM1 +nNOR_HOLD__DM2 EQU CYREG_PRT12_DM2 +nNOR_HOLD__DR EQU CYREG_PRT12_DR +nNOR_HOLD__INP_DIS EQU CYREG_PRT12_INP_DIS +nNOR_HOLD__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU12_BASE +nNOR_HOLD__MASK EQU 0x02 +nNOR_HOLD__PORT EQU 12 +nNOR_HOLD__PRT EQU CYREG_PRT12_PRT +nNOR_HOLD__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT12_DBL_SYNC_IN +nNOR_HOLD__PRTDSI__OE_SEL0 EQU CYREG_PRT12_OE_SEL0 +nNOR_HOLD__PRTDSI__OE_SEL1 EQU CYREG_PRT12_OE_SEL1 +nNOR_HOLD__PRTDSI__OUT_SEL0 EQU CYREG_PRT12_OUT_SEL0 +nNOR_HOLD__PRTDSI__OUT_SEL1 EQU CYREG_PRT12_OUT_SEL1 +nNOR_HOLD__PRTDSI__SYNC_OUT EQU CYREG_PRT12_SYNC_OUT +nNOR_HOLD__PS EQU CYREG_PRT12_PS +nNOR_HOLD__SHIFT EQU 1 +nNOR_HOLD__SIO_CFG EQU CYREG_PRT12_SIO_CFG +nNOR_HOLD__SIO_DIFF EQU CYREG_PRT12_SIO_DIFF +nNOR_HOLD__SIO_HYST_EN EQU CYREG_PRT12_SIO_HYST_EN +nNOR_HOLD__SIO_REG_HIFREQ EQU CYREG_PRT12_SIO_REG_HIFREQ +nNOR_HOLD__SLW EQU CYREG_PRT12_SLW + /* SCSI_Noise */ SCSI_Noise__0__AG EQU CYREG_PRT4_AG SCSI_Noise__0__AMUX EQU CYREG_PRT4_AMUX @@ -2383,6 +2696,8 @@ scsiTarget_StatusReg__0__MASK EQU 0x01 scsiTarget_StatusReg__0__POS EQU 0 scsiTarget_StatusReg__1__MASK EQU 0x02 scsiTarget_StatusReg__1__POS EQU 1 +scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL +scsiTarget_StatusReg__16BIT_STATUS_REG EQU CYREG_B0_UDB03_04_ST scsiTarget_StatusReg__2__MASK EQU 0x04 scsiTarget_StatusReg__2__POS EQU 2 scsiTarget_StatusReg__3__MASK EQU 0x08 @@ -2390,13 +2705,13 @@ scsiTarget_StatusReg__3__POS EQU 3 scsiTarget_StatusReg__4__MASK EQU 0x10 scsiTarget_StatusReg__4__POS EQU 4 scsiTarget_StatusReg__MASK EQU 0x1F -scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB15_MSK -scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -scsiTarget_StatusReg__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL -scsiTarget_StatusReg__STATUS_CNT_REG EQU CYREG_B0_UDB15_ST_CTL -scsiTarget_StatusReg__STATUS_CONTROL_REG EQU CYREG_B0_UDB15_ST_CTL -scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB15_ST +scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB03_MSK +scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +scsiTarget_StatusReg__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL +scsiTarget_StatusReg__STATUS_CNT_REG EQU CYREG_B0_UDB03_ST_CTL +scsiTarget_StatusReg__STATUS_CONTROL_REG EQU CYREG_B0_UDB03_ST_CTL +scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB03_ST /* Debug_Timer */ Debug_Timer_Interrupt__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -2465,111 +2780,26 @@ SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 /* SD_Data_Clk */ -SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0 -SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1 -SD_Data_Clk__CFG2 EQU CYREG_CLKDIST_DCFG0_CFG2 +SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 +SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 +SD_Data_Clk__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 SD_Data_Clk__CFG2_SRC_SEL_MASK EQU 0x07 -SD_Data_Clk__INDEX EQU 0x00 +SD_Data_Clk__INDEX EQU 0x01 SD_Data_Clk__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -SD_Data_Clk__PM_ACT_MSK EQU 0x01 +SD_Data_Clk__PM_ACT_MSK EQU 0x02 SD_Data_Clk__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -SD_Data_Clk__PM_STBY_MSK EQU 0x01 - -/* SPI_Pullups */ -SPI_Pullups__0__INTTYPE EQU CYREG_PICU3_INTTYPE4 -SPI_Pullups__0__MASK EQU 0x10 -SPI_Pullups__0__PC EQU CYREG_PRT3_PC4 -SPI_Pullups__0__PORT EQU 3 -SPI_Pullups__0__SHIFT EQU 4 -SPI_Pullups__1__INTTYPE EQU CYREG_PICU3_INTTYPE5 -SPI_Pullups__1__MASK EQU 0x20 -SPI_Pullups__1__PC EQU CYREG_PRT3_PC5 -SPI_Pullups__1__PORT EQU 3 -SPI_Pullups__1__SHIFT EQU 5 -SPI_Pullups__2__INTTYPE EQU CYREG_PICU3_INTTYPE6 -SPI_Pullups__2__MASK EQU 0x40 -SPI_Pullups__2__PC EQU CYREG_PRT3_PC6 -SPI_Pullups__2__PORT EQU 3 -SPI_Pullups__2__SHIFT EQU 6 -SPI_Pullups__3__INTTYPE EQU CYREG_PICU3_INTTYPE7 -SPI_Pullups__3__MASK EQU 0x80 -SPI_Pullups__3__PC EQU CYREG_PRT3_PC7 -SPI_Pullups__3__PORT EQU 3 -SPI_Pullups__3__SHIFT EQU 7 -SPI_Pullups__AG EQU CYREG_PRT3_AG -SPI_Pullups__AMUX EQU CYREG_PRT3_AMUX -SPI_Pullups__BIE EQU CYREG_PRT3_BIE -SPI_Pullups__BIT_MASK EQU CYREG_PRT3_BIT_MASK -SPI_Pullups__BYP EQU CYREG_PRT3_BYP -SPI_Pullups__CTL EQU CYREG_PRT3_CTL -SPI_Pullups__DM0 EQU CYREG_PRT3_DM0 -SPI_Pullups__DM1 EQU CYREG_PRT3_DM1 -SPI_Pullups__DM2 EQU CYREG_PRT3_DM2 -SPI_Pullups__DR EQU CYREG_PRT3_DR -SPI_Pullups__INP_DIS EQU CYREG_PRT3_INP_DIS -SPI_Pullups__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE -SPI_Pullups__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG -SPI_Pullups__LCD_EN EQU CYREG_PRT3_LCD_EN -SPI_Pullups__MASK EQU 0xF0 -SPI_Pullups__PORT EQU 3 -SPI_Pullups__PRT EQU CYREG_PRT3_PRT -SPI_Pullups__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL -SPI_Pullups__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN -SPI_Pullups__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 -SPI_Pullups__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 -SPI_Pullups__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 -SPI_Pullups__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 -SPI_Pullups__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT -SPI_Pullups__PS EQU CYREG_PRT3_PS -SPI_Pullups__SHIFT EQU 4 -SPI_Pullups__SLW EQU CYREG_PRT3_SLW -SPI_Pullups_1__0__INTTYPE EQU CYREG_PICU12_INTTYPE0 -SPI_Pullups_1__0__MASK EQU 0x01 -SPI_Pullups_1__0__PC EQU CYREG_PRT12_PC0 -SPI_Pullups_1__0__PORT EQU 12 -SPI_Pullups_1__0__SHIFT EQU 0 -SPI_Pullups_1__1__INTTYPE EQU CYREG_PICU12_INTTYPE1 -SPI_Pullups_1__1__MASK EQU 0x02 -SPI_Pullups_1__1__PC EQU CYREG_PRT12_PC1 -SPI_Pullups_1__1__PORT EQU 12 -SPI_Pullups_1__1__SHIFT EQU 1 -SPI_Pullups_1__AG EQU CYREG_PRT12_AG -SPI_Pullups_1__BIE EQU CYREG_PRT12_BIE -SPI_Pullups_1__BIT_MASK EQU CYREG_PRT12_BIT_MASK -SPI_Pullups_1__BYP EQU CYREG_PRT12_BYP -SPI_Pullups_1__DM0 EQU CYREG_PRT12_DM0 -SPI_Pullups_1__DM1 EQU CYREG_PRT12_DM1 -SPI_Pullups_1__DM2 EQU CYREG_PRT12_DM2 -SPI_Pullups_1__DR EQU CYREG_PRT12_DR -SPI_Pullups_1__INP_DIS EQU CYREG_PRT12_INP_DIS -SPI_Pullups_1__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU12_BASE -SPI_Pullups_1__MASK EQU 0x03 -SPI_Pullups_1__PORT EQU 12 -SPI_Pullups_1__PRT EQU CYREG_PRT12_PRT -SPI_Pullups_1__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT12_DBL_SYNC_IN -SPI_Pullups_1__PRTDSI__OE_SEL0 EQU CYREG_PRT12_OE_SEL0 -SPI_Pullups_1__PRTDSI__OE_SEL1 EQU CYREG_PRT12_OE_SEL1 -SPI_Pullups_1__PRTDSI__OUT_SEL0 EQU CYREG_PRT12_OUT_SEL0 -SPI_Pullups_1__PRTDSI__OUT_SEL1 EQU CYREG_PRT12_OUT_SEL1 -SPI_Pullups_1__PRTDSI__SYNC_OUT EQU CYREG_PRT12_SYNC_OUT -SPI_Pullups_1__PS EQU CYREG_PRT12_PS -SPI_Pullups_1__SHIFT EQU 0 -SPI_Pullups_1__SIO_CFG EQU CYREG_PRT12_SIO_CFG -SPI_Pullups_1__SIO_DIFF EQU CYREG_PRT12_SIO_DIFF -SPI_Pullups_1__SIO_HYST_EN EQU CYREG_PRT12_SIO_HYST_EN -SPI_Pullups_1__SIO_REG_HIFREQ EQU CYREG_PRT12_SIO_REG_HIFREQ -SPI_Pullups_1__SLW EQU CYREG_PRT12_SLW +SD_Data_Clk__PM_STBY_MSK EQU 0x02 /* timer_clock */ -timer_clock__CFG0 EQU CYREG_CLKDIST_DCFG2_CFG0 -timer_clock__CFG1 EQU CYREG_CLKDIST_DCFG2_CFG1 -timer_clock__CFG2 EQU CYREG_CLKDIST_DCFG2_CFG2 +timer_clock__CFG0 EQU CYREG_CLKDIST_DCFG3_CFG0 +timer_clock__CFG1 EQU CYREG_CLKDIST_DCFG3_CFG1 +timer_clock__CFG2 EQU CYREG_CLKDIST_DCFG3_CFG2 timer_clock__CFG2_SRC_SEL_MASK EQU 0x07 -timer_clock__INDEX EQU 0x02 +timer_clock__INDEX EQU 0x03 timer_clock__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -timer_clock__PM_ACT_MSK EQU 0x04 +timer_clock__PM_ACT_MSK EQU 0x08 timer_clock__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -timer_clock__PM_STBY_MSK EQU 0x04 +timer_clock__PM_STBY_MSK EQU 0x08 /* SCSI_RST_ISR */ SCSI_RST_ISR__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -2596,8 +2826,6 @@ SCSI_Filtered_sts_sts_reg__0__MASK EQU 0x01 SCSI_Filtered_sts_sts_reg__0__POS EQU 0 SCSI_Filtered_sts_sts_reg__1__MASK EQU 0x02 SCSI_Filtered_sts_sts_reg__1__POS EQU 1 -SCSI_Filtered_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_08_ACTL -SCSI_Filtered_sts_sts_reg__16BIT_STATUS_REG EQU CYREG_B0_UDB07_08_ST SCSI_Filtered_sts_sts_reg__2__MASK EQU 0x04 SCSI_Filtered_sts_sts_reg__2__POS EQU 2 SCSI_Filtered_sts_sts_reg__3__MASK EQU 0x08 @@ -2605,58 +2833,67 @@ SCSI_Filtered_sts_sts_reg__3__POS EQU 3 SCSI_Filtered_sts_sts_reg__4__MASK EQU 0x10 SCSI_Filtered_sts_sts_reg__4__POS EQU 4 SCSI_Filtered_sts_sts_reg__MASK EQU 0x1F -SCSI_Filtered_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB07_MSK -SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_ACTL -SCSI_Filtered_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB07_ST +SCSI_Filtered_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB15_MSK +SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL +SCSI_Filtered_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB15_ST /* SCSI_CTL_PHASE */ SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS EQU 0 SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK EQU 0x02 SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS EQU 1 +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK EQU 0x04 SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS EQU 2 -SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL -SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB15_ST_CTL -SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB15_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL SCSI_CTL_PHASE_Sync_ctrl_reg__MASK EQU 0x07 -SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB15_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB12_MSK /* SCSI_Glitch_Ctl */ SCSI_Glitch_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_Glitch_Ctl_Sync_ctrl_reg__0__POS EQU 0 -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB03_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB03_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_14_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB13_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB13_ST_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB13_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB13_ST_CTL SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK EQU 0x01 -SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB03_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB13_MSK /* SCSI_Parity_Error */ SCSI_Parity_Error_sts_sts_reg__0__MASK EQU 0x01 SCSI_Parity_Error_sts_sts_reg__0__POS EQU 0 -SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL -SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG EQU CYREG_B0_UDB14_15_ST +SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB11_12_ACTL +SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG EQU CYREG_B0_UDB11_12_ST SCSI_Parity_Error_sts_sts_reg__MASK EQU 0x01 -SCSI_Parity_Error_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB14_MSK -SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL -SCSI_Parity_Error_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB14_ST +SCSI_Parity_Error_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB11_MSK +SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB11_ACTL +SCSI_Parity_Error_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB11_ST /* Miscellaneous */ BCLK__BUS_CLK__HZ EQU 50000000 diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitterrv.inc b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitterrv.inc index cd3a5eb..5ddb795 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitterrv.inc +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitterrv.inc @@ -354,33 +354,101 @@ USBFS_USB__USB_CLK_EN EQU CYREG_USB_USB_CLK_EN USBFS_USB__USBIO_CR0 EQU CYREG_USB_USBIO_CR0 USBFS_USB__USBIO_CR1 EQU CYREG_USB_USBIO_CR1 +; NOR_SI +NOR_SI__0__INTTYPE EQU CYREG_PICU3_INTTYPE6 +NOR_SI__0__MASK EQU 0x40 +NOR_SI__0__PC EQU CYREG_PRT3_PC6 +NOR_SI__0__PORT EQU 3 +NOR_SI__0__SHIFT EQU 6 +NOR_SI__AG EQU CYREG_PRT3_AG +NOR_SI__AMUX EQU CYREG_PRT3_AMUX +NOR_SI__BIE EQU CYREG_PRT3_BIE +NOR_SI__BIT_MASK EQU CYREG_PRT3_BIT_MASK +NOR_SI__BYP EQU CYREG_PRT3_BYP +NOR_SI__CTL EQU CYREG_PRT3_CTL +NOR_SI__DM0 EQU CYREG_PRT3_DM0 +NOR_SI__DM1 EQU CYREG_PRT3_DM1 +NOR_SI__DM2 EQU CYREG_PRT3_DM2 +NOR_SI__DR EQU CYREG_PRT3_DR +NOR_SI__INP_DIS EQU CYREG_PRT3_INP_DIS +NOR_SI__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +NOR_SI__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +NOR_SI__LCD_EN EQU CYREG_PRT3_LCD_EN +NOR_SI__MASK EQU 0x40 +NOR_SI__PORT EQU 3 +NOR_SI__PRT EQU CYREG_PRT3_PRT +NOR_SI__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +NOR_SI__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +NOR_SI__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +NOR_SI__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +NOR_SI__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +NOR_SI__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +NOR_SI__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +NOR_SI__PS EQU CYREG_PRT3_PS +NOR_SI__SHIFT EQU 6 +NOR_SI__SLW EQU CYREG_PRT3_SLW + +; NOR_SO +NOR_SO__0__INTTYPE EQU CYREG_PICU15_INTTYPE2 +NOR_SO__0__MASK EQU 0x04 +NOR_SO__0__PC EQU CYREG_IO_PC_PRT15_PC2 +NOR_SO__0__PORT EQU 15 +NOR_SO__0__SHIFT EQU 2 +NOR_SO__AG EQU CYREG_PRT15_AG +NOR_SO__AMUX EQU CYREG_PRT15_AMUX +NOR_SO__BIE EQU CYREG_PRT15_BIE +NOR_SO__BIT_MASK EQU CYREG_PRT15_BIT_MASK +NOR_SO__BYP EQU CYREG_PRT15_BYP +NOR_SO__CTL EQU CYREG_PRT15_CTL +NOR_SO__DM0 EQU CYREG_PRT15_DM0 +NOR_SO__DM1 EQU CYREG_PRT15_DM1 +NOR_SO__DM2 EQU CYREG_PRT15_DM2 +NOR_SO__DR EQU CYREG_PRT15_DR +NOR_SO__INP_DIS EQU CYREG_PRT15_INP_DIS +NOR_SO__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU15_BASE +NOR_SO__LCD_COM_SEG EQU CYREG_PRT15_LCD_COM_SEG +NOR_SO__LCD_EN EQU CYREG_PRT15_LCD_EN +NOR_SO__MASK EQU 0x04 +NOR_SO__PORT EQU 15 +NOR_SO__PRT EQU CYREG_PRT15_PRT +NOR_SO__PRTDSI__CAPS_SEL EQU CYREG_PRT15_CAPS_SEL +NOR_SO__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT15_DBL_SYNC_IN +NOR_SO__PRTDSI__OE_SEL0 EQU CYREG_PRT15_OE_SEL0 +NOR_SO__PRTDSI__OE_SEL1 EQU CYREG_PRT15_OE_SEL1 +NOR_SO__PRTDSI__OUT_SEL0 EQU CYREG_PRT15_OUT_SEL0 +NOR_SO__PRTDSI__OUT_SEL1 EQU CYREG_PRT15_OUT_SEL1 +NOR_SO__PRTDSI__SYNC_OUT EQU CYREG_PRT15_SYNC_OUT +NOR_SO__PS EQU CYREG_PRT15_PS +NOR_SO__SHIFT EQU 2 +NOR_SO__SLW EQU CYREG_PRT15_SLW + ; SDCard -SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB04_05_ACTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB04_05_CTL -SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB04_05_MSK -SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB04_ACTL -SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B1_UDB04_CTL -SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B1_UDB04_CTL -SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB04_MSK -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB04_05_ACTL -SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B1_UDB04_05_ST -SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B1_UDB04_MSK -SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB04_ACTL -SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B1_UDB04_ST_CTL -SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B1_UDB04_ST +SDCard_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB05_06_ACTL +SDCard_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB05_06_CTL +SDCard_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB05_06_MSK +SDCard_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB05_ACTL +SDCard_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B1_UDB05_CTL +SDCard_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter__COUNT_REG EQU CYREG_B1_UDB05_CTL +SDCard_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B1_UDB05_MSK +SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB05_06_ACTL +SDCard_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B1_UDB05_06_ST +SDCard_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B1_UDB05_MSK +SDCard_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB05_MSK_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB05_ACTL +SDCard_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B1_UDB05_ST_CTL +SDCard_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B1_UDB05_ST SDCard_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL SDCard_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB06_07_ST SDCard_BSPIM_RxStsReg__4__MASK EQU 0x10 @@ -391,7 +459,11 @@ SDCard_BSPIM_RxStsReg__6__MASK EQU 0x40 SDCard_BSPIM_RxStsReg__6__POS EQU 6 SDCard_BSPIM_RxStsReg__MASK EQU 0x70 SDCard_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB06_MSK +SDCard_BSPIM_RxStsReg__MASK_ST_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL +SDCard_BSPIM_RxStsReg__PER_ST_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL SDCard_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL +SDCard_BSPIM_RxStsReg__STATUS_CNT_REG EQU CYREG_B1_UDB06_ST_CTL +SDCard_BSPIM_RxStsReg__STATUS_CONTROL_REG EQU CYREG_B1_UDB06_ST_CTL SDCard_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB06_ST SDCard_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B1_UDB04_05_A0 SDCard_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B1_UDB04_05_A1 @@ -410,14 +482,12 @@ SDCard_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B1_UDB04_ACTL SDCard_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B1_UDB04_F0_F1 SDCard_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B1_UDB04_F0 SDCard_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B1_UDB04_F1 -SDCard_BSPIM_sR8_Dp_u0__MSK_DP_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL -SDCard_BSPIM_sR8_Dp_u0__PER_DP_AUX_CTL_REG EQU CYREG_B1_UDB04_MSK_ACTL SDCard_BSPIM_TxStsReg__0__MASK EQU 0x01 SDCard_BSPIM_TxStsReg__0__POS EQU 0 SDCard_BSPIM_TxStsReg__1__MASK EQU 0x02 SDCard_BSPIM_TxStsReg__1__POS EQU 1 -SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_08_ACTL -SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB07_08_ST +SDCard_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL +SDCard_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB06_07_ST SDCard_BSPIM_TxStsReg__2__MASK EQU 0x04 SDCard_BSPIM_TxStsReg__2__POS EQU 2 SDCard_BSPIM_TxStsReg__3__MASK EQU 0x08 @@ -425,9 +495,9 @@ SDCard_BSPIM_TxStsReg__3__POS EQU 3 SDCard_BSPIM_TxStsReg__4__MASK EQU 0x10 SDCard_BSPIM_TxStsReg__4__POS EQU 4 SDCard_BSPIM_TxStsReg__MASK EQU 0x1F -SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B1_UDB07_MSK -SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB07_ACTL -SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B1_UDB07_ST +SDCard_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB06_MSK +SDCard_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL +SDCard_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB06_ST ; SD_SCK SD_SCK__0__INTTYPE EQU CYREG_PICU3_INTTYPE1 @@ -463,6 +533,137 @@ SD_SCK__PS EQU CYREG_PRT3_PS SD_SCK__SHIFT EQU 1 SD_SCK__SLW EQU CYREG_PRT3_SLW +; NOR_CTL +NOR_CTL_Sync_ctrl_reg__0__MASK EQU 0x01 +NOR_CTL_Sync_ctrl_reg__0__POS EQU 0 +NOR_CTL_Sync_ctrl_reg__1__MASK EQU 0x02 +NOR_CTL_Sync_ctrl_reg__1__POS EQU 1 +NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB06_07_ACTL +NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B1_UDB06_07_CTL +NOR_CTL_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B1_UDB06_07_MSK +NOR_CTL_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B1_UDB06_ACTL +NOR_CTL_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B1_UDB06_CTL +NOR_CTL_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B1_UDB06_ST_CTL +NOR_CTL_Sync_ctrl_reg__COUNT_REG EQU CYREG_B1_UDB06_CTL +NOR_CTL_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B1_UDB06_ST_CTL +NOR_CTL_Sync_ctrl_reg__MASK EQU 0x03 +NOR_CTL_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL +NOR_CTL_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B1_UDB06_MSK_ACTL +NOR_CTL_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B1_UDB06_MSK + +; NOR_SCK +NOR_SCK__0__INTTYPE EQU CYREG_PICU3_INTTYPE7 +NOR_SCK__0__MASK EQU 0x80 +NOR_SCK__0__PC EQU CYREG_PRT3_PC7 +NOR_SCK__0__PORT EQU 3 +NOR_SCK__0__SHIFT EQU 7 +NOR_SCK__AG EQU CYREG_PRT3_AG +NOR_SCK__AMUX EQU CYREG_PRT3_AMUX +NOR_SCK__BIE EQU CYREG_PRT3_BIE +NOR_SCK__BIT_MASK EQU CYREG_PRT3_BIT_MASK +NOR_SCK__BYP EQU CYREG_PRT3_BYP +NOR_SCK__CTL EQU CYREG_PRT3_CTL +NOR_SCK__DM0 EQU CYREG_PRT3_DM0 +NOR_SCK__DM1 EQU CYREG_PRT3_DM1 +NOR_SCK__DM2 EQU CYREG_PRT3_DM2 +NOR_SCK__DR EQU CYREG_PRT3_DR +NOR_SCK__INP_DIS EQU CYREG_PRT3_INP_DIS +NOR_SCK__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +NOR_SCK__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +NOR_SCK__LCD_EN EQU CYREG_PRT3_LCD_EN +NOR_SCK__MASK EQU 0x80 +NOR_SCK__PORT EQU 3 +NOR_SCK__PRT EQU CYREG_PRT3_PRT +NOR_SCK__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +NOR_SCK__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +NOR_SCK__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +NOR_SCK__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +NOR_SCK__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +NOR_SCK__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +NOR_SCK__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +NOR_SCK__PS EQU CYREG_PRT3_PS +NOR_SCK__SHIFT EQU 7 +NOR_SCK__SLW EQU CYREG_PRT3_SLW + +; NOR_SPI +NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB08_09_ACTL +NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB08_09_CTL +NOR_SPI_BSPIM_BitCounter__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB08_09_MSK +NOR_SPI_BSPIM_BitCounter__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB08_ACTL +NOR_SPI_BSPIM_BitCounter__CONTROL_REG EQU CYREG_B0_UDB08_CTL +NOR_SPI_BSPIM_BitCounter__CONTROL_ST_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter__COUNT_REG EQU CYREG_B0_UDB08_CTL +NOR_SPI_BSPIM_BitCounter__COUNT_ST_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter__PERIOD_REG EQU CYREG_B0_UDB08_MSK +NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB08_09_ACTL +NOR_SPI_BSPIM_BitCounter_ST__16BIT_STATUS_REG EQU CYREG_B0_UDB08_09_ST +NOR_SPI_BSPIM_BitCounter_ST__MASK_REG EQU CYREG_B0_UDB08_MSK +NOR_SPI_BSPIM_BitCounter_ST__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter_ST__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB08_MSK_ACTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB08_ACTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_CNT_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_CONTROL_REG EQU CYREG_B0_UDB08_ST_CTL +NOR_SPI_BSPIM_BitCounter_ST__STATUS_REG EQU CYREG_B0_UDB08_ST +NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_09_ACTL +NOR_SPI_BSPIM_RxStsReg__16BIT_STATUS_REG EQU CYREG_B1_UDB08_09_ST +NOR_SPI_BSPIM_RxStsReg__4__MASK EQU 0x10 +NOR_SPI_BSPIM_RxStsReg__4__POS EQU 4 +NOR_SPI_BSPIM_RxStsReg__5__MASK EQU 0x20 +NOR_SPI_BSPIM_RxStsReg__5__POS EQU 5 +NOR_SPI_BSPIM_RxStsReg__6__MASK EQU 0x40 +NOR_SPI_BSPIM_RxStsReg__6__POS EQU 6 +NOR_SPI_BSPIM_RxStsReg__MASK EQU 0x70 +NOR_SPI_BSPIM_RxStsReg__MASK_REG EQU CYREG_B1_UDB08_MSK +NOR_SPI_BSPIM_RxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B1_UDB08_ACTL +NOR_SPI_BSPIM_RxStsReg__STATUS_REG EQU CYREG_B1_UDB08_ST +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A0_REG EQU CYREG_B0_UDB04_05_A0 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_A1_REG EQU CYREG_B0_UDB04_05_A1 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D0_REG EQU CYREG_B0_UDB04_05_D0 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_D1_REG EQU CYREG_B0_UDB04_05_D1 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_DP_AUX_CTL_REG EQU CYREG_B0_UDB04_05_ACTL +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F0_REG EQU CYREG_B0_UDB04_05_F0 +NOR_SPI_BSPIM_sR8_Dp_u0__16BIT_F1_REG EQU CYREG_B0_UDB04_05_F1 +NOR_SPI_BSPIM_sR8_Dp_u0__A0_A1_REG EQU CYREG_B0_UDB04_A0_A1 +NOR_SPI_BSPIM_sR8_Dp_u0__A0_REG EQU CYREG_B0_UDB04_A0 +NOR_SPI_BSPIM_sR8_Dp_u0__A1_REG EQU CYREG_B0_UDB04_A1 +NOR_SPI_BSPIM_sR8_Dp_u0__D0_D1_REG EQU CYREG_B0_UDB04_D0_D1 +NOR_SPI_BSPIM_sR8_Dp_u0__D0_REG EQU CYREG_B0_UDB04_D0 +NOR_SPI_BSPIM_sR8_Dp_u0__D1_REG EQU CYREG_B0_UDB04_D1 +NOR_SPI_BSPIM_sR8_Dp_u0__DP_AUX_CTL_REG EQU CYREG_B0_UDB04_ACTL +NOR_SPI_BSPIM_sR8_Dp_u0__F0_F1_REG EQU CYREG_B0_UDB04_F0_F1 +NOR_SPI_BSPIM_sR8_Dp_u0__F0_REG EQU CYREG_B0_UDB04_F0 +NOR_SPI_BSPIM_sR8_Dp_u0__F1_REG EQU CYREG_B0_UDB04_F1 +NOR_SPI_BSPIM_TxStsReg__0__MASK EQU 0x01 +NOR_SPI_BSPIM_TxStsReg__0__POS EQU 0 +NOR_SPI_BSPIM_TxStsReg__1__MASK EQU 0x02 +NOR_SPI_BSPIM_TxStsReg__1__POS EQU 1 +NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_08_ACTL +NOR_SPI_BSPIM_TxStsReg__16BIT_STATUS_REG EQU CYREG_B0_UDB07_08_ST +NOR_SPI_BSPIM_TxStsReg__2__MASK EQU 0x04 +NOR_SPI_BSPIM_TxStsReg__2__POS EQU 2 +NOR_SPI_BSPIM_TxStsReg__3__MASK EQU 0x08 +NOR_SPI_BSPIM_TxStsReg__3__POS EQU 3 +NOR_SPI_BSPIM_TxStsReg__4__MASK EQU 0x10 +NOR_SPI_BSPIM_TxStsReg__4__POS EQU 4 +NOR_SPI_BSPIM_TxStsReg__MASK EQU 0x1F +NOR_SPI_BSPIM_TxStsReg__MASK_REG EQU CYREG_B0_UDB07_MSK +NOR_SPI_BSPIM_TxStsReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_ACTL +NOR_SPI_BSPIM_TxStsReg__STATUS_REG EQU CYREG_B0_UDB07_ST + ; SCSI_In SCSI_In__0__INTTYPE EQU CYREG_PICU6_INTTYPE1 SCSI_In__0__MASK EQU 0x02 @@ -1050,16 +1251,84 @@ TERM_EN__PS EQU CYREG_PRT15_PS TERM_EN__SHIFT EQU 3 TERM_EN__SLW EQU CYREG_PRT15_SLW +; nNOR_CS +nNOR_CS__0__INTTYPE EQU CYREG_PICU3_INTTYPE4 +nNOR_CS__0__MASK EQU 0x10 +nNOR_CS__0__PC EQU CYREG_PRT3_PC4 +nNOR_CS__0__PORT EQU 3 +nNOR_CS__0__SHIFT EQU 4 +nNOR_CS__AG EQU CYREG_PRT3_AG +nNOR_CS__AMUX EQU CYREG_PRT3_AMUX +nNOR_CS__BIE EQU CYREG_PRT3_BIE +nNOR_CS__BIT_MASK EQU CYREG_PRT3_BIT_MASK +nNOR_CS__BYP EQU CYREG_PRT3_BYP +nNOR_CS__CTL EQU CYREG_PRT3_CTL +nNOR_CS__DM0 EQU CYREG_PRT3_DM0 +nNOR_CS__DM1 EQU CYREG_PRT3_DM1 +nNOR_CS__DM2 EQU CYREG_PRT3_DM2 +nNOR_CS__DR EQU CYREG_PRT3_DR +nNOR_CS__INP_DIS EQU CYREG_PRT3_INP_DIS +nNOR_CS__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +nNOR_CS__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +nNOR_CS__LCD_EN EQU CYREG_PRT3_LCD_EN +nNOR_CS__MASK EQU 0x10 +nNOR_CS__PORT EQU 3 +nNOR_CS__PRT EQU CYREG_PRT3_PRT +nNOR_CS__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +nNOR_CS__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +nNOR_CS__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +nNOR_CS__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +nNOR_CS__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +nNOR_CS__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +nNOR_CS__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +nNOR_CS__PS EQU CYREG_PRT3_PS +nNOR_CS__SHIFT EQU 4 +nNOR_CS__SLW EQU CYREG_PRT3_SLW + +; nNOR_WP +nNOR_WP__0__INTTYPE EQU CYREG_PICU3_INTTYPE5 +nNOR_WP__0__MASK EQU 0x20 +nNOR_WP__0__PC EQU CYREG_PRT3_PC5 +nNOR_WP__0__PORT EQU 3 +nNOR_WP__0__SHIFT EQU 5 +nNOR_WP__AG EQU CYREG_PRT3_AG +nNOR_WP__AMUX EQU CYREG_PRT3_AMUX +nNOR_WP__BIE EQU CYREG_PRT3_BIE +nNOR_WP__BIT_MASK EQU CYREG_PRT3_BIT_MASK +nNOR_WP__BYP EQU CYREG_PRT3_BYP +nNOR_WP__CTL EQU CYREG_PRT3_CTL +nNOR_WP__DM0 EQU CYREG_PRT3_DM0 +nNOR_WP__DM1 EQU CYREG_PRT3_DM1 +nNOR_WP__DM2 EQU CYREG_PRT3_DM2 +nNOR_WP__DR EQU CYREG_PRT3_DR +nNOR_WP__INP_DIS EQU CYREG_PRT3_INP_DIS +nNOR_WP__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE +nNOR_WP__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG +nNOR_WP__LCD_EN EQU CYREG_PRT3_LCD_EN +nNOR_WP__MASK EQU 0x20 +nNOR_WP__PORT EQU 3 +nNOR_WP__PRT EQU CYREG_PRT3_PRT +nNOR_WP__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL +nNOR_WP__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN +nNOR_WP__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 +nNOR_WP__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 +nNOR_WP__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 +nNOR_WP__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 +nNOR_WP__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT +nNOR_WP__PS EQU CYREG_PRT3_PS +nNOR_WP__SHIFT EQU 5 +nNOR_WP__SLW EQU CYREG_PRT3_SLW + ; SCSI_CLK -SCSI_CLK__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 -SCSI_CLK__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 -SCSI_CLK__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 +SCSI_CLK__CFG0 EQU CYREG_CLKDIST_DCFG2_CFG0 +SCSI_CLK__CFG1 EQU CYREG_CLKDIST_DCFG2_CFG1 +SCSI_CLK__CFG2 EQU CYREG_CLKDIST_DCFG2_CFG2 SCSI_CLK__CFG2_SRC_SEL_MASK EQU 0x07 -SCSI_CLK__INDEX EQU 0x01 +SCSI_CLK__INDEX EQU 0x02 SCSI_CLK__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -SCSI_CLK__PM_ACT_MSK EQU 0x02 +SCSI_CLK__PM_ACT_MSK EQU 0x04 SCSI_CLK__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -SCSI_CLK__PM_STBY_MSK EQU 0x02 +SCSI_CLK__PM_STBY_MSK EQU 0x04 ; SCSI_Out SCSI_Out__0__AG EQU CYREG_PRT6_AG @@ -1514,15 +1783,15 @@ SCSI_Out_Bits_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_Out_Bits_Sync_ctrl_reg__0__POS EQU 0 SCSI_Out_Bits_Sync_ctrl_reg__1__MASK EQU 0x02 SCSI_Out_Bits_Sync_ctrl_reg__1__POS EQU 1 -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_14_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB13_14_CTL -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB13_14_MSK -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB13_14_MSK -SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB09_10_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB09_10_CTL +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB09_10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB09_10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB09_10_MSK +SCSI_Out_Bits_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB09_10_MSK SCSI_Out_Bits_Sync_ctrl_reg__2__MASK EQU 0x04 SCSI_Out_Bits_Sync_ctrl_reg__2__POS EQU 2 SCSI_Out_Bits_Sync_ctrl_reg__3__MASK EQU 0x08 @@ -1535,35 +1804,35 @@ SCSI_Out_Bits_Sync_ctrl_reg__6__MASK EQU 0x40 SCSI_Out_Bits_Sync_ctrl_reg__6__POS EQU 6 SCSI_Out_Bits_Sync_ctrl_reg__7__MASK EQU 0x80 SCSI_Out_Bits_Sync_ctrl_reg__7__POS EQU 7 -SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB13_CTL -SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB13_ST_CTL -SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB13_CTL -SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB13_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB09_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB09_CTL +SCSI_Out_Bits_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB09_ST_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB09_CTL +SCSI_Out_Bits_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB09_ST_CTL SCSI_Out_Bits_Sync_ctrl_reg__MASK EQU 0xFF -SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL -SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB13_MSK +SCSI_Out_Bits_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB09_MSK_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB09_MSK_ACTL +SCSI_Out_Bits_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB09_MSK SCSI_Out_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_Out_Ctl_Sync_ctrl_reg__0__POS EQU 0 -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_07_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB06_07_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB06_07_MSK -SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB06_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB06_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB06_ST_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB06_CTL -SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB06_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB03_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB03_CTL +SCSI_Out_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL SCSI_Out_Ctl_Sync_ctrl_reg__MASK EQU 0x01 -SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB06_MSK_ACTL -SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB06_MSK +SCSI_Out_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +SCSI_Out_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB03_MSK SCSI_Out_DBx__0__AG EQU CYREG_PRT6_AG SCSI_Out_DBx__0__AMUX EQU CYREG_PRT6_AMUX SCSI_Out_DBx__0__BIE EQU CYREG_PRT6_BIE @@ -2011,6 +2280,17 @@ SCSI_Out_DBx__DB7__PS EQU CYREG_PRT15_PS SCSI_Out_DBx__DB7__SHIFT EQU 5 SCSI_Out_DBx__DB7__SLW EQU CYREG_PRT15_SLW +; NOR_Clock +NOR_Clock__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0 +NOR_Clock__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1 +NOR_Clock__CFG2 EQU CYREG_CLKDIST_DCFG0_CFG2 +NOR_Clock__CFG2_SRC_SEL_MASK EQU 0x07 +NOR_Clock__INDEX EQU 0x00 +NOR_Clock__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 +NOR_Clock__PM_ACT_MSK EQU 0x01 +NOR_Clock__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 +NOR_Clock__PM_STBY_MSK EQU 0x01 + ; SD_RX_DMA SD_RX_DMA__DRQ_CTL EQU CYREG_IDMUX_DRQ_CTL0 SD_RX_DMA__DRQ_NUMBER EQU 2 @@ -2051,6 +2331,39 @@ SD_TX_DMA_COMPLETE__INTC_PRIOR_REG EQU CYREG_NVIC_PRI_6 SD_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 SD_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 +; nNOR_HOLD +nNOR_HOLD__0__INTTYPE EQU CYREG_PICU12_INTTYPE1 +nNOR_HOLD__0__MASK EQU 0x02 +nNOR_HOLD__0__PC EQU CYREG_PRT12_PC1 +nNOR_HOLD__0__PORT EQU 12 +nNOR_HOLD__0__SHIFT EQU 1 +nNOR_HOLD__AG EQU CYREG_PRT12_AG +nNOR_HOLD__BIE EQU CYREG_PRT12_BIE +nNOR_HOLD__BIT_MASK EQU CYREG_PRT12_BIT_MASK +nNOR_HOLD__BYP EQU CYREG_PRT12_BYP +nNOR_HOLD__DM0 EQU CYREG_PRT12_DM0 +nNOR_HOLD__DM1 EQU CYREG_PRT12_DM1 +nNOR_HOLD__DM2 EQU CYREG_PRT12_DM2 +nNOR_HOLD__DR EQU CYREG_PRT12_DR +nNOR_HOLD__INP_DIS EQU CYREG_PRT12_INP_DIS +nNOR_HOLD__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU12_BASE +nNOR_HOLD__MASK EQU 0x02 +nNOR_HOLD__PORT EQU 12 +nNOR_HOLD__PRT EQU CYREG_PRT12_PRT +nNOR_HOLD__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT12_DBL_SYNC_IN +nNOR_HOLD__PRTDSI__OE_SEL0 EQU CYREG_PRT12_OE_SEL0 +nNOR_HOLD__PRTDSI__OE_SEL1 EQU CYREG_PRT12_OE_SEL1 +nNOR_HOLD__PRTDSI__OUT_SEL0 EQU CYREG_PRT12_OUT_SEL0 +nNOR_HOLD__PRTDSI__OUT_SEL1 EQU CYREG_PRT12_OUT_SEL1 +nNOR_HOLD__PRTDSI__SYNC_OUT EQU CYREG_PRT12_SYNC_OUT +nNOR_HOLD__PS EQU CYREG_PRT12_PS +nNOR_HOLD__SHIFT EQU 1 +nNOR_HOLD__SIO_CFG EQU CYREG_PRT12_SIO_CFG +nNOR_HOLD__SIO_DIFF EQU CYREG_PRT12_SIO_DIFF +nNOR_HOLD__SIO_HYST_EN EQU CYREG_PRT12_SIO_HYST_EN +nNOR_HOLD__SIO_REG_HIFREQ EQU CYREG_PRT12_SIO_REG_HIFREQ +nNOR_HOLD__SLW EQU CYREG_PRT12_SLW + ; SCSI_Noise SCSI_Noise__0__AG EQU CYREG_PRT4_AG SCSI_Noise__0__AMUX EQU CYREG_PRT4_AMUX @@ -2383,6 +2696,8 @@ scsiTarget_StatusReg__0__MASK EQU 0x01 scsiTarget_StatusReg__0__POS EQU 0 scsiTarget_StatusReg__1__MASK EQU 0x02 scsiTarget_StatusReg__1__POS EQU 1 +scsiTarget_StatusReg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL +scsiTarget_StatusReg__16BIT_STATUS_REG EQU CYREG_B0_UDB03_04_ST scsiTarget_StatusReg__2__MASK EQU 0x04 scsiTarget_StatusReg__2__POS EQU 2 scsiTarget_StatusReg__3__MASK EQU 0x08 @@ -2390,13 +2705,13 @@ scsiTarget_StatusReg__3__POS EQU 3 scsiTarget_StatusReg__4__MASK EQU 0x10 scsiTarget_StatusReg__4__POS EQU 4 scsiTarget_StatusReg__MASK EQU 0x1F -scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB15_MSK -scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -scsiTarget_StatusReg__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL -scsiTarget_StatusReg__STATUS_CNT_REG EQU CYREG_B0_UDB15_ST_CTL -scsiTarget_StatusReg__STATUS_CONTROL_REG EQU CYREG_B0_UDB15_ST_CTL -scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB15_ST +scsiTarget_StatusReg__MASK_REG EQU CYREG_B0_UDB03_MSK +scsiTarget_StatusReg__MASK_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +scsiTarget_StatusReg__PER_ST_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL +scsiTarget_StatusReg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL +scsiTarget_StatusReg__STATUS_CNT_REG EQU CYREG_B0_UDB03_ST_CTL +scsiTarget_StatusReg__STATUS_CONTROL_REG EQU CYREG_B0_UDB03_ST_CTL +scsiTarget_StatusReg__STATUS_REG EQU CYREG_B0_UDB03_ST ; Debug_Timer Debug_Timer_Interrupt__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -2465,111 +2780,26 @@ SCSI_TX_DMA_COMPLETE__INTC_SET_EN_REG EQU CYREG_NVIC_SETENA0 SCSI_TX_DMA_COMPLETE__INTC_SET_PD_REG EQU CYREG_NVIC_SETPEND0 ; SD_Data_Clk -SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG0_CFG0 -SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG0_CFG1 -SD_Data_Clk__CFG2 EQU CYREG_CLKDIST_DCFG0_CFG2 +SD_Data_Clk__CFG0 EQU CYREG_CLKDIST_DCFG1_CFG0 +SD_Data_Clk__CFG1 EQU CYREG_CLKDIST_DCFG1_CFG1 +SD_Data_Clk__CFG2 EQU CYREG_CLKDIST_DCFG1_CFG2 SD_Data_Clk__CFG2_SRC_SEL_MASK EQU 0x07 -SD_Data_Clk__INDEX EQU 0x00 +SD_Data_Clk__INDEX EQU 0x01 SD_Data_Clk__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -SD_Data_Clk__PM_ACT_MSK EQU 0x01 +SD_Data_Clk__PM_ACT_MSK EQU 0x02 SD_Data_Clk__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -SD_Data_Clk__PM_STBY_MSK EQU 0x01 - -; SPI_Pullups -SPI_Pullups__0__INTTYPE EQU CYREG_PICU3_INTTYPE4 -SPI_Pullups__0__MASK EQU 0x10 -SPI_Pullups__0__PC EQU CYREG_PRT3_PC4 -SPI_Pullups__0__PORT EQU 3 -SPI_Pullups__0__SHIFT EQU 4 -SPI_Pullups__1__INTTYPE EQU CYREG_PICU3_INTTYPE5 -SPI_Pullups__1__MASK EQU 0x20 -SPI_Pullups__1__PC EQU CYREG_PRT3_PC5 -SPI_Pullups__1__PORT EQU 3 -SPI_Pullups__1__SHIFT EQU 5 -SPI_Pullups__2__INTTYPE EQU CYREG_PICU3_INTTYPE6 -SPI_Pullups__2__MASK EQU 0x40 -SPI_Pullups__2__PC EQU CYREG_PRT3_PC6 -SPI_Pullups__2__PORT EQU 3 -SPI_Pullups__2__SHIFT EQU 6 -SPI_Pullups__3__INTTYPE EQU CYREG_PICU3_INTTYPE7 -SPI_Pullups__3__MASK EQU 0x80 -SPI_Pullups__3__PC EQU CYREG_PRT3_PC7 -SPI_Pullups__3__PORT EQU 3 -SPI_Pullups__3__SHIFT EQU 7 -SPI_Pullups__AG EQU CYREG_PRT3_AG -SPI_Pullups__AMUX EQU CYREG_PRT3_AMUX -SPI_Pullups__BIE EQU CYREG_PRT3_BIE -SPI_Pullups__BIT_MASK EQU CYREG_PRT3_BIT_MASK -SPI_Pullups__BYP EQU CYREG_PRT3_BYP -SPI_Pullups__CTL EQU CYREG_PRT3_CTL -SPI_Pullups__DM0 EQU CYREG_PRT3_DM0 -SPI_Pullups__DM1 EQU CYREG_PRT3_DM1 -SPI_Pullups__DM2 EQU CYREG_PRT3_DM2 -SPI_Pullups__DR EQU CYREG_PRT3_DR -SPI_Pullups__INP_DIS EQU CYREG_PRT3_INP_DIS -SPI_Pullups__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU3_BASE -SPI_Pullups__LCD_COM_SEG EQU CYREG_PRT3_LCD_COM_SEG -SPI_Pullups__LCD_EN EQU CYREG_PRT3_LCD_EN -SPI_Pullups__MASK EQU 0xF0 -SPI_Pullups__PORT EQU 3 -SPI_Pullups__PRT EQU CYREG_PRT3_PRT -SPI_Pullups__PRTDSI__CAPS_SEL EQU CYREG_PRT3_CAPS_SEL -SPI_Pullups__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT3_DBL_SYNC_IN -SPI_Pullups__PRTDSI__OE_SEL0 EQU CYREG_PRT3_OE_SEL0 -SPI_Pullups__PRTDSI__OE_SEL1 EQU CYREG_PRT3_OE_SEL1 -SPI_Pullups__PRTDSI__OUT_SEL0 EQU CYREG_PRT3_OUT_SEL0 -SPI_Pullups__PRTDSI__OUT_SEL1 EQU CYREG_PRT3_OUT_SEL1 -SPI_Pullups__PRTDSI__SYNC_OUT EQU CYREG_PRT3_SYNC_OUT -SPI_Pullups__PS EQU CYREG_PRT3_PS -SPI_Pullups__SHIFT EQU 4 -SPI_Pullups__SLW EQU CYREG_PRT3_SLW -SPI_Pullups_1__0__INTTYPE EQU CYREG_PICU12_INTTYPE0 -SPI_Pullups_1__0__MASK EQU 0x01 -SPI_Pullups_1__0__PC EQU CYREG_PRT12_PC0 -SPI_Pullups_1__0__PORT EQU 12 -SPI_Pullups_1__0__SHIFT EQU 0 -SPI_Pullups_1__1__INTTYPE EQU CYREG_PICU12_INTTYPE1 -SPI_Pullups_1__1__MASK EQU 0x02 -SPI_Pullups_1__1__PC EQU CYREG_PRT12_PC1 -SPI_Pullups_1__1__PORT EQU 12 -SPI_Pullups_1__1__SHIFT EQU 1 -SPI_Pullups_1__AG EQU CYREG_PRT12_AG -SPI_Pullups_1__BIE EQU CYREG_PRT12_BIE -SPI_Pullups_1__BIT_MASK EQU CYREG_PRT12_BIT_MASK -SPI_Pullups_1__BYP EQU CYREG_PRT12_BYP -SPI_Pullups_1__DM0 EQU CYREG_PRT12_DM0 -SPI_Pullups_1__DM1 EQU CYREG_PRT12_DM1 -SPI_Pullups_1__DM2 EQU CYREG_PRT12_DM2 -SPI_Pullups_1__DR EQU CYREG_PRT12_DR -SPI_Pullups_1__INP_DIS EQU CYREG_PRT12_INP_DIS -SPI_Pullups_1__INTTYPE_BASE EQU CYDEV_PICU_INTTYPE_PICU12_BASE -SPI_Pullups_1__MASK EQU 0x03 -SPI_Pullups_1__PORT EQU 12 -SPI_Pullups_1__PRT EQU CYREG_PRT12_PRT -SPI_Pullups_1__PRTDSI__DBL_SYNC_IN EQU CYREG_PRT12_DBL_SYNC_IN -SPI_Pullups_1__PRTDSI__OE_SEL0 EQU CYREG_PRT12_OE_SEL0 -SPI_Pullups_1__PRTDSI__OE_SEL1 EQU CYREG_PRT12_OE_SEL1 -SPI_Pullups_1__PRTDSI__OUT_SEL0 EQU CYREG_PRT12_OUT_SEL0 -SPI_Pullups_1__PRTDSI__OUT_SEL1 EQU CYREG_PRT12_OUT_SEL1 -SPI_Pullups_1__PRTDSI__SYNC_OUT EQU CYREG_PRT12_SYNC_OUT -SPI_Pullups_1__PS EQU CYREG_PRT12_PS -SPI_Pullups_1__SHIFT EQU 0 -SPI_Pullups_1__SIO_CFG EQU CYREG_PRT12_SIO_CFG -SPI_Pullups_1__SIO_DIFF EQU CYREG_PRT12_SIO_DIFF -SPI_Pullups_1__SIO_HYST_EN EQU CYREG_PRT12_SIO_HYST_EN -SPI_Pullups_1__SIO_REG_HIFREQ EQU CYREG_PRT12_SIO_REG_HIFREQ -SPI_Pullups_1__SLW EQU CYREG_PRT12_SLW +SD_Data_Clk__PM_STBY_MSK EQU 0x02 ; timer_clock -timer_clock__CFG0 EQU CYREG_CLKDIST_DCFG2_CFG0 -timer_clock__CFG1 EQU CYREG_CLKDIST_DCFG2_CFG1 -timer_clock__CFG2 EQU CYREG_CLKDIST_DCFG2_CFG2 +timer_clock__CFG0 EQU CYREG_CLKDIST_DCFG3_CFG0 +timer_clock__CFG1 EQU CYREG_CLKDIST_DCFG3_CFG1 +timer_clock__CFG2 EQU CYREG_CLKDIST_DCFG3_CFG2 timer_clock__CFG2_SRC_SEL_MASK EQU 0x07 -timer_clock__INDEX EQU 0x02 +timer_clock__INDEX EQU 0x03 timer_clock__PM_ACT_CFG EQU CYREG_PM_ACT_CFG2 -timer_clock__PM_ACT_MSK EQU 0x04 +timer_clock__PM_ACT_MSK EQU 0x08 timer_clock__PM_STBY_CFG EQU CYREG_PM_STBY_CFG2 -timer_clock__PM_STBY_MSK EQU 0x04 +timer_clock__PM_STBY_MSK EQU 0x08 ; SCSI_RST_ISR SCSI_RST_ISR__INTC_CLR_EN_REG EQU CYREG_NVIC_CLRENA0 @@ -2596,8 +2826,6 @@ SCSI_Filtered_sts_sts_reg__0__MASK EQU 0x01 SCSI_Filtered_sts_sts_reg__0__POS EQU 0 SCSI_Filtered_sts_sts_reg__1__MASK EQU 0x02 SCSI_Filtered_sts_sts_reg__1__POS EQU 1 -SCSI_Filtered_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_08_ACTL -SCSI_Filtered_sts_sts_reg__16BIT_STATUS_REG EQU CYREG_B0_UDB07_08_ST SCSI_Filtered_sts_sts_reg__2__MASK EQU 0x04 SCSI_Filtered_sts_sts_reg__2__POS EQU 2 SCSI_Filtered_sts_sts_reg__3__MASK EQU 0x08 @@ -2605,58 +2833,67 @@ SCSI_Filtered_sts_sts_reg__3__POS EQU 3 SCSI_Filtered_sts_sts_reg__4__MASK EQU 0x10 SCSI_Filtered_sts_sts_reg__4__POS EQU 4 SCSI_Filtered_sts_sts_reg__MASK EQU 0x1F -SCSI_Filtered_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB07_MSK -SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB07_ACTL -SCSI_Filtered_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB07_ST +SCSI_Filtered_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB15_MSK +SCSI_Filtered_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL +SCSI_Filtered_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB15_ST ; SCSI_CTL_PHASE SCSI_CTL_PHASE_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_CTL_PHASE_Sync_ctrl_reg__0__POS EQU 0 SCSI_CTL_PHASE_Sync_ctrl_reg__1__MASK EQU 0x02 SCSI_CTL_PHASE_Sync_ctrl_reg__1__POS EQU 1 +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_13_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB12_13_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB12_13_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB12_13_MSK SCSI_CTL_PHASE_Sync_ctrl_reg__2__MASK EQU 0x04 SCSI_CTL_PHASE_Sync_ctrl_reg__2__POS EQU 2 -SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB15_ACTL -SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB15_ST_CTL -SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB15_CTL -SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB15_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB12_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB12_ST_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB12_CTL +SCSI_CTL_PHASE_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB12_ST_CTL SCSI_CTL_PHASE_Sync_ctrl_reg__MASK EQU 0x07 -SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB15_MSK_ACTL -SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB15_MSK +SCSI_CTL_PHASE_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB12_MSK_ACTL +SCSI_CTL_PHASE_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB12_MSK ; SCSI_Glitch_Ctl SCSI_Glitch_Ctl_Sync_ctrl_reg__0__MASK EQU 0x01 SCSI_Glitch_Ctl_Sync_ctrl_reg__0__POS EQU 0 -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_04_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB03_04_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB03_04_MSK -SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB03_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB03_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB03_ST_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB03_CTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB03_ST_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_14_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_CONTROL_COUNT_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_CONTROL_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_COUNT_COUNT_REG EQU CYREG_B0_UDB13_14_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_MASK_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_MASK_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_MASK_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__16BIT_PERIOD_PERIOD_REG EQU CYREG_B0_UDB13_14_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_AUX_CTL_REG EQU CYREG_B0_UDB13_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_REG EQU CYREG_B0_UDB13_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__CONTROL_ST_REG EQU CYREG_B0_UDB13_ST_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_REG EQU CYREG_B0_UDB13_CTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__COUNT_ST_REG EQU CYREG_B0_UDB13_ST_CTL SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK EQU 0x01 -SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB03_MSK_ACTL -SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB03_MSK +SCSI_Glitch_Ctl_Sync_ctrl_reg__MASK_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__PER_CTL_AUX_CTL_REG EQU CYREG_B0_UDB13_MSK_ACTL +SCSI_Glitch_Ctl_Sync_ctrl_reg__PERIOD_REG EQU CYREG_B0_UDB13_MSK ; SCSI_Parity_Error SCSI_Parity_Error_sts_sts_reg__0__MASK EQU 0x01 SCSI_Parity_Error_sts_sts_reg__0__POS EQU 0 -SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_15_ACTL -SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG EQU CYREG_B0_UDB14_15_ST +SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_AUX_CTL_REG EQU CYREG_B0_UDB11_12_ACTL +SCSI_Parity_Error_sts_sts_reg__16BIT_STATUS_REG EQU CYREG_B0_UDB11_12_ST SCSI_Parity_Error_sts_sts_reg__MASK EQU 0x01 -SCSI_Parity_Error_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB14_MSK -SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB14_ACTL -SCSI_Parity_Error_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB14_ST +SCSI_Parity_Error_sts_sts_reg__MASK_REG EQU CYREG_B0_UDB11_MSK +SCSI_Parity_Error_sts_sts_reg__STATUS_AUX_CTL_REG EQU CYREG_B0_UDB11_ACTL +SCSI_Parity_Error_sts_sts_reg__STATUS_REG EQU CYREG_B0_UDB11_ST ; Miscellaneous BCLK__BUS_CLK__HZ EQU 50000000 diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.c new file mode 100644 index 0000000..2daa12c --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.c @@ -0,0 +1,226 @@ +/******************************************************************************* +* File Name: nNOR_CS.c +* Version 2.20 +* +* Description: +* This file contains API to enable firmware control of a Pins component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "cytypes.h" +#include "nNOR_CS.h" + +/* APIs are not generated for P15[7:6] on PSoC 5 */ +#if !(CY_PSOC5A &&\ + nNOR_CS__PORT == 15 && ((nNOR_CS__MASK & 0xC0) != 0)) + + +/******************************************************************************* +* Function Name: nNOR_CS_Write +****************************************************************************//** +* +* \brief Writes the value to the physical port (data output register), masking +* and shifting the bits appropriately. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This function avoids changing +* other bits in the port by using the appropriate method (read-modify-write or +* bit banding). +* +* Note This function should not be used on a hardware digital output pin +* as it is driven by the hardware signal attached to it. +* +* \param value +* Value to write to the component instance. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic; the Interrupt +* Service Routines (ISR) can cause corruption of this function. An ISR that +* interrupts this function and performs writes to the Pins component data +* register can cause corrupted port data. To avoid this issue, you should +* either use the Per-Pin APIs (primary method) or disable interrupts around +* this function. +* +* \funcusage +* \snippet nNOR_CS_SUT.c usage_nNOR_CS_Write +*******************************************************************************/ +void nNOR_CS_Write(uint8 value) +{ + uint8 staticBits = (nNOR_CS_DR & (uint8)(~nNOR_CS_MASK)); + nNOR_CS_DR = staticBits | ((uint8)(value << nNOR_CS_SHIFT) & nNOR_CS_MASK); +} + + +/******************************************************************************* +* Function Name: nNOR_CS_SetDriveMode +****************************************************************************//** +* +* \brief Sets the drive mode for each of the Pins component's pins. +* +* Note This affects all pins in the Pins component instance. Use the +* Per-Pin APIs if you wish to control individual pin's drive modes. +* +* \param mode +* Mode for the selected signals. Valid options are documented in +* \ref driveMode. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic, the ISR can +* cause corruption of this function. An ISR that interrupts this function +* and performs writes to the Pins component Drive Mode registers can cause +* corrupted port data. To avoid this issue, you should either use the Per-Pin +* APIs (primary method) or disable interrupts around this function. +* +* \funcusage +* \snippet nNOR_CS_SUT.c usage_nNOR_CS_SetDriveMode +*******************************************************************************/ +void nNOR_CS_SetDriveMode(uint8 mode) +{ + CyPins_SetPinDriveMode(nNOR_CS_0, mode); +} + + +/******************************************************************************* +* Function Name: nNOR_CS_Read +****************************************************************************//** +* +* \brief Reads the associated physical port (pin status register) and masks +* the required bits according to the width and bit position of the component +* instance. +* +* The pin's status register returns the current logic level present on the +* physical pin. +* +* \return +* The current value for the pins in the component as a right justified number. +* +* \funcusage +* \snippet nNOR_CS_SUT.c usage_nNOR_CS_Read +*******************************************************************************/ +uint8 nNOR_CS_Read(void) +{ + return (nNOR_CS_PS & nNOR_CS_MASK) >> nNOR_CS_SHIFT; +} + + +/******************************************************************************* +* Function Name: nNOR_CS_ReadDataReg +****************************************************************************//** +* +* \brief Reads the associated physical port's data output register and masks +* the correct bits according to the width and bit position of the component +* instance. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This is not the same as the +* preferred nNOR_CS_Read() API because the +* nNOR_CS_ReadDataReg() reads the data register instead of the status +* register. For output pins this is a useful function to determine the value +* just written to the pin. +* +* \return +* The current value of the data register masked and shifted into a right +* justified number for the component instance. +* +* \funcusage +* \snippet nNOR_CS_SUT.c usage_nNOR_CS_ReadDataReg +*******************************************************************************/ +uint8 nNOR_CS_ReadDataReg(void) +{ + return (nNOR_CS_DR & nNOR_CS_MASK) >> nNOR_CS_SHIFT; +} + + +/* If interrupt is connected for this Pins component */ +#if defined(nNOR_CS_INTSTAT) + + /******************************************************************************* + * Function Name: nNOR_CS_SetInterruptMode + ****************************************************************************//** + * + * \brief Configures the interrupt mode for each of the Pins component's + * pins. Alternatively you may set the interrupt mode for all the pins + * specified in the Pins component. + * + * Note The interrupt is port-wide and therefore any enabled pin + * interrupt may trigger it. + * + * \param position + * The pin position as listed in the Pins component. You may OR these to be + * able to configure the interrupt mode of multiple pins within a Pins + * component. Or you may use nNOR_CS_INTR_ALL to configure the + * interrupt mode of all the pins in the Pins component. + * - nNOR_CS_0_INTR (First pin in the list) + * - nNOR_CS_1_INTR (Second pin in the list) + * - ... + * - nNOR_CS_INTR_ALL (All pins in Pins component) + * + * \param mode + * Interrupt mode for the selected pins. Valid options are documented in + * \ref intrMode. + * + * \return + * None + * + * \sideeffect + * It is recommended that the interrupt be disabled before calling this + * function to avoid unintended interrupt requests. Note that the interrupt + * type is port wide, and therefore will trigger for any enabled pin on the + * port. + * + * \funcusage + * \snippet nNOR_CS_SUT.c usage_nNOR_CS_SetInterruptMode + *******************************************************************************/ + void nNOR_CS_SetInterruptMode(uint16 position, uint16 mode) + { + if((position & nNOR_CS_0_INTR) != 0u) + { + nNOR_CS_0_INTTYPE_REG = (uint8)mode; + } + } + + + /******************************************************************************* + * Function Name: nNOR_CS_ClearInterrupt + ****************************************************************************//** + * + * \brief Clears any active interrupts attached with the component and returns + * the value of the interrupt status register allowing determination of which + * pins generated an interrupt event. + * + * \return + * The right-shifted current value of the interrupt status register. Each pin + * has one bit set if it generated an interrupt event. For example, bit 0 is + * for pin 0 and bit 1 is for pin 1 of the Pins component. + * + * \sideeffect + * Clears all bits of the physical port's interrupt status register, not just + * those associated with the Pins component. + * + * \funcusage + * \snippet nNOR_CS_SUT.c usage_nNOR_CS_ClearInterrupt + *******************************************************************************/ + uint8 nNOR_CS_ClearInterrupt(void) + { + return (nNOR_CS_INTSTAT & nNOR_CS_MASK) >> nNOR_CS_SHIFT; + } + +#endif /* If Interrupts Are Enabled for this Pins component */ + +#endif /* CY_PSOC5A... */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.h new file mode 100644 index 0000000..f5662d0 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS.h @@ -0,0 +1,165 @@ +/******************************************************************************* +* File Name: nNOR_CS.h +* Version 2.20 +* +* Description: +* This file contains Pin function prototypes and register defines +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_nNOR_CS_H) /* Pins nNOR_CS_H */ +#define CY_PINS_nNOR_CS_H + +#include "cytypes.h" +#include "cyfitter.h" +#include "cypins.h" +#include "nNOR_CS_aliases.h" + +/* APIs are not generated for P15[7:6] */ +#if !(CY_PSOC5A &&\ + nNOR_CS__PORT == 15 && ((nNOR_CS__MASK & 0xC0) != 0)) + + +/*************************************** +* Function Prototypes +***************************************/ + +/** +* \addtogroup group_general +* @{ +*/ +void nNOR_CS_Write(uint8 value); +void nNOR_CS_SetDriveMode(uint8 mode); +uint8 nNOR_CS_ReadDataReg(void); +uint8 nNOR_CS_Read(void); +void nNOR_CS_SetInterruptMode(uint16 position, uint16 mode); +uint8 nNOR_CS_ClearInterrupt(void); +/** @} general */ + +/*************************************** +* API Constants +***************************************/ +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup driveMode Drive mode constants + * \brief Constants to be passed as "mode" parameter in the nNOR_CS_SetDriveMode() function. + * @{ + */ + #define nNOR_CS_DM_ALG_HIZ PIN_DM_ALG_HIZ + #define nNOR_CS_DM_DIG_HIZ PIN_DM_DIG_HIZ + #define nNOR_CS_DM_RES_UP PIN_DM_RES_UP + #define nNOR_CS_DM_RES_DWN PIN_DM_RES_DWN + #define nNOR_CS_DM_OD_LO PIN_DM_OD_LO + #define nNOR_CS_DM_OD_HI PIN_DM_OD_HI + #define nNOR_CS_DM_STRONG PIN_DM_STRONG + #define nNOR_CS_DM_RES_UPDWN PIN_DM_RES_UPDWN + /** @} driveMode */ +/** @} group_constants */ + +/* Digital Port Constants */ +#define nNOR_CS_MASK nNOR_CS__MASK +#define nNOR_CS_SHIFT nNOR_CS__SHIFT +#define nNOR_CS_WIDTH 1u + +/* Interrupt constants */ +#if defined(nNOR_CS__INTSTAT) +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup intrMode Interrupt constants + * \brief Constants to be passed as "mode" parameter in nNOR_CS_SetInterruptMode() function. + * @{ + */ + #define nNOR_CS_INTR_NONE (uint16)(0x0000u) + #define nNOR_CS_INTR_RISING (uint16)(0x0001u) + #define nNOR_CS_INTR_FALLING (uint16)(0x0002u) + #define nNOR_CS_INTR_BOTH (uint16)(0x0003u) + /** @} intrMode */ +/** @} group_constants */ + + #define nNOR_CS_INTR_MASK (0x01u) +#endif /* (nNOR_CS__INTSTAT) */ + + +/*************************************** +* Registers +***************************************/ + +/* Main Port Registers */ +/* Pin State */ +#define nNOR_CS_PS (* (reg8 *) nNOR_CS__PS) +/* Data Register */ +#define nNOR_CS_DR (* (reg8 *) nNOR_CS__DR) +/* Port Number */ +#define nNOR_CS_PRT_NUM (* (reg8 *) nNOR_CS__PRT) +/* Connect to Analog Globals */ +#define nNOR_CS_AG (* (reg8 *) nNOR_CS__AG) +/* Analog MUX bux enable */ +#define nNOR_CS_AMUX (* (reg8 *) nNOR_CS__AMUX) +/* Bidirectional Enable */ +#define nNOR_CS_BIE (* (reg8 *) nNOR_CS__BIE) +/* Bit-mask for Aliased Register Access */ +#define nNOR_CS_BIT_MASK (* (reg8 *) nNOR_CS__BIT_MASK) +/* Bypass Enable */ +#define nNOR_CS_BYP (* (reg8 *) nNOR_CS__BYP) +/* Port wide control signals */ +#define nNOR_CS_CTL (* (reg8 *) nNOR_CS__CTL) +/* Drive Modes */ +#define nNOR_CS_DM0 (* (reg8 *) nNOR_CS__DM0) +#define nNOR_CS_DM1 (* (reg8 *) nNOR_CS__DM1) +#define nNOR_CS_DM2 (* (reg8 *) nNOR_CS__DM2) +/* Input Buffer Disable Override */ +#define nNOR_CS_INP_DIS (* (reg8 *) nNOR_CS__INP_DIS) +/* LCD Common or Segment Drive */ +#define nNOR_CS_LCD_COM_SEG (* (reg8 *) nNOR_CS__LCD_COM_SEG) +/* Enable Segment LCD */ +#define nNOR_CS_LCD_EN (* (reg8 *) nNOR_CS__LCD_EN) +/* Slew Rate Control */ +#define nNOR_CS_SLW (* (reg8 *) nNOR_CS__SLW) + +/* DSI Port Registers */ +/* Global DSI Select Register */ +#define nNOR_CS_PRTDSI__CAPS_SEL (* (reg8 *) nNOR_CS__PRTDSI__CAPS_SEL) +/* Double Sync Enable */ +#define nNOR_CS_PRTDSI__DBL_SYNC_IN (* (reg8 *) nNOR_CS__PRTDSI__DBL_SYNC_IN) +/* Output Enable Select Drive Strength */ +#define nNOR_CS_PRTDSI__OE_SEL0 (* (reg8 *) nNOR_CS__PRTDSI__OE_SEL0) +#define nNOR_CS_PRTDSI__OE_SEL1 (* (reg8 *) nNOR_CS__PRTDSI__OE_SEL1) +/* Port Pin Output Select Registers */ +#define nNOR_CS_PRTDSI__OUT_SEL0 (* (reg8 *) nNOR_CS__PRTDSI__OUT_SEL0) +#define nNOR_CS_PRTDSI__OUT_SEL1 (* (reg8 *) nNOR_CS__PRTDSI__OUT_SEL1) +/* Sync Output Enable Registers */ +#define nNOR_CS_PRTDSI__SYNC_OUT (* (reg8 *) nNOR_CS__PRTDSI__SYNC_OUT) + +/* SIO registers */ +#if defined(nNOR_CS__SIO_CFG) + #define nNOR_CS_SIO_HYST_EN (* (reg8 *) nNOR_CS__SIO_HYST_EN) + #define nNOR_CS_SIO_REG_HIFREQ (* (reg8 *) nNOR_CS__SIO_REG_HIFREQ) + #define nNOR_CS_SIO_CFG (* (reg8 *) nNOR_CS__SIO_CFG) + #define nNOR_CS_SIO_DIFF (* (reg8 *) nNOR_CS__SIO_DIFF) +#endif /* (nNOR_CS__SIO_CFG) */ + +/* Interrupt Registers */ +#if defined(nNOR_CS__INTSTAT) + #define nNOR_CS_INTSTAT (* (reg8 *) nNOR_CS__INTSTAT) + #define nNOR_CS_SNAP (* (reg8 *) nNOR_CS__SNAP) + + #define nNOR_CS_0_INTTYPE_REG (* (reg8 *) nNOR_CS__0__INTTYPE) +#endif /* (nNOR_CS__INTSTAT) */ + +#endif /* CY_PSOC5A... */ + +#endif /* CY_PINS_nNOR_CS_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS_aliases.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS_aliases.h new file mode 100644 index 0000000..d5cf164 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_CS_aliases.h @@ -0,0 +1,36 @@ +/******************************************************************************* +* File Name: nNOR_CS.h +* Version 2.20 +* +* Description: +* This file contains the Alias definitions for Per-Pin APIs in cypins.h. +* Information on using these APIs can be found in the System Reference Guide. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_nNOR_CS_ALIASES_H) /* Pins nNOR_CS_ALIASES_H */ +#define CY_PINS_nNOR_CS_ALIASES_H + +#include "cytypes.h" +#include "cyfitter.h" + + +/*************************************** +* Constants +***************************************/ +#define nNOR_CS_0 (nNOR_CS__0__PC) +#define nNOR_CS_0_INTR ((uint16)((uint16)0x0001u << nNOR_CS__0__SHIFT)) + +#define nNOR_CS_INTR_ALL ((uint16)(nNOR_CS_0_INTR)) + +#endif /* End Pins nNOR_CS_ALIASES_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.c new file mode 100644 index 0000000..e78dbdd --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.c @@ -0,0 +1,226 @@ +/******************************************************************************* +* File Name: nNOR_HOLD.c +* Version 2.20 +* +* Description: +* This file contains API to enable firmware control of a Pins component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "cytypes.h" +#include "nNOR_HOLD.h" + +/* APIs are not generated for P15[7:6] on PSoC 5 */ +#if !(CY_PSOC5A &&\ + nNOR_HOLD__PORT == 15 && ((nNOR_HOLD__MASK & 0xC0) != 0)) + + +/******************************************************************************* +* Function Name: nNOR_HOLD_Write +****************************************************************************//** +* +* \brief Writes the value to the physical port (data output register), masking +* and shifting the bits appropriately. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This function avoids changing +* other bits in the port by using the appropriate method (read-modify-write or +* bit banding). +* +* Note This function should not be used on a hardware digital output pin +* as it is driven by the hardware signal attached to it. +* +* \param value +* Value to write to the component instance. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic; the Interrupt +* Service Routines (ISR) can cause corruption of this function. An ISR that +* interrupts this function and performs writes to the Pins component data +* register can cause corrupted port data. To avoid this issue, you should +* either use the Per-Pin APIs (primary method) or disable interrupts around +* this function. +* +* \funcusage +* \snippet nNOR_HOLD_SUT.c usage_nNOR_HOLD_Write +*******************************************************************************/ +void nNOR_HOLD_Write(uint8 value) +{ + uint8 staticBits = (nNOR_HOLD_DR & (uint8)(~nNOR_HOLD_MASK)); + nNOR_HOLD_DR = staticBits | ((uint8)(value << nNOR_HOLD_SHIFT) & nNOR_HOLD_MASK); +} + + +/******************************************************************************* +* Function Name: nNOR_HOLD_SetDriveMode +****************************************************************************//** +* +* \brief Sets the drive mode for each of the Pins component's pins. +* +* Note This affects all pins in the Pins component instance. Use the +* Per-Pin APIs if you wish to control individual pin's drive modes. +* +* \param mode +* Mode for the selected signals. Valid options are documented in +* \ref driveMode. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic, the ISR can +* cause corruption of this function. An ISR that interrupts this function +* and performs writes to the Pins component Drive Mode registers can cause +* corrupted port data. To avoid this issue, you should either use the Per-Pin +* APIs (primary method) or disable interrupts around this function. +* +* \funcusage +* \snippet nNOR_HOLD_SUT.c usage_nNOR_HOLD_SetDriveMode +*******************************************************************************/ +void nNOR_HOLD_SetDriveMode(uint8 mode) +{ + CyPins_SetPinDriveMode(nNOR_HOLD_0, mode); +} + + +/******************************************************************************* +* Function Name: nNOR_HOLD_Read +****************************************************************************//** +* +* \brief Reads the associated physical port (pin status register) and masks +* the required bits according to the width and bit position of the component +* instance. +* +* The pin's status register returns the current logic level present on the +* physical pin. +* +* \return +* The current value for the pins in the component as a right justified number. +* +* \funcusage +* \snippet nNOR_HOLD_SUT.c usage_nNOR_HOLD_Read +*******************************************************************************/ +uint8 nNOR_HOLD_Read(void) +{ + return (nNOR_HOLD_PS & nNOR_HOLD_MASK) >> nNOR_HOLD_SHIFT; +} + + +/******************************************************************************* +* Function Name: nNOR_HOLD_ReadDataReg +****************************************************************************//** +* +* \brief Reads the associated physical port's data output register and masks +* the correct bits according to the width and bit position of the component +* instance. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This is not the same as the +* preferred nNOR_HOLD_Read() API because the +* nNOR_HOLD_ReadDataReg() reads the data register instead of the status +* register. For output pins this is a useful function to determine the value +* just written to the pin. +* +* \return +* The current value of the data register masked and shifted into a right +* justified number for the component instance. +* +* \funcusage +* \snippet nNOR_HOLD_SUT.c usage_nNOR_HOLD_ReadDataReg +*******************************************************************************/ +uint8 nNOR_HOLD_ReadDataReg(void) +{ + return (nNOR_HOLD_DR & nNOR_HOLD_MASK) >> nNOR_HOLD_SHIFT; +} + + +/* If interrupt is connected for this Pins component */ +#if defined(nNOR_HOLD_INTSTAT) + + /******************************************************************************* + * Function Name: nNOR_HOLD_SetInterruptMode + ****************************************************************************//** + * + * \brief Configures the interrupt mode for each of the Pins component's + * pins. Alternatively you may set the interrupt mode for all the pins + * specified in the Pins component. + * + * Note The interrupt is port-wide and therefore any enabled pin + * interrupt may trigger it. + * + * \param position + * The pin position as listed in the Pins component. You may OR these to be + * able to configure the interrupt mode of multiple pins within a Pins + * component. Or you may use nNOR_HOLD_INTR_ALL to configure the + * interrupt mode of all the pins in the Pins component. + * - nNOR_HOLD_0_INTR (First pin in the list) + * - nNOR_HOLD_1_INTR (Second pin in the list) + * - ... + * - nNOR_HOLD_INTR_ALL (All pins in Pins component) + * + * \param mode + * Interrupt mode for the selected pins. Valid options are documented in + * \ref intrMode. + * + * \return + * None + * + * \sideeffect + * It is recommended that the interrupt be disabled before calling this + * function to avoid unintended interrupt requests. Note that the interrupt + * type is port wide, and therefore will trigger for any enabled pin on the + * port. + * + * \funcusage + * \snippet nNOR_HOLD_SUT.c usage_nNOR_HOLD_SetInterruptMode + *******************************************************************************/ + void nNOR_HOLD_SetInterruptMode(uint16 position, uint16 mode) + { + if((position & nNOR_HOLD_0_INTR) != 0u) + { + nNOR_HOLD_0_INTTYPE_REG = (uint8)mode; + } + } + + + /******************************************************************************* + * Function Name: nNOR_HOLD_ClearInterrupt + ****************************************************************************//** + * + * \brief Clears any active interrupts attached with the component and returns + * the value of the interrupt status register allowing determination of which + * pins generated an interrupt event. + * + * \return + * The right-shifted current value of the interrupt status register. Each pin + * has one bit set if it generated an interrupt event. For example, bit 0 is + * for pin 0 and bit 1 is for pin 1 of the Pins component. + * + * \sideeffect + * Clears all bits of the physical port's interrupt status register, not just + * those associated with the Pins component. + * + * \funcusage + * \snippet nNOR_HOLD_SUT.c usage_nNOR_HOLD_ClearInterrupt + *******************************************************************************/ + uint8 nNOR_HOLD_ClearInterrupt(void) + { + return (nNOR_HOLD_INTSTAT & nNOR_HOLD_MASK) >> nNOR_HOLD_SHIFT; + } + +#endif /* If Interrupts Are Enabled for this Pins component */ + +#endif /* CY_PSOC5A... */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.h new file mode 100644 index 0000000..c75b8ee --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD.h @@ -0,0 +1,165 @@ +/******************************************************************************* +* File Name: nNOR_HOLD.h +* Version 2.20 +* +* Description: +* This file contains Pin function prototypes and register defines +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_nNOR_HOLD_H) /* Pins nNOR_HOLD_H */ +#define CY_PINS_nNOR_HOLD_H + +#include "cytypes.h" +#include "cyfitter.h" +#include "cypins.h" +#include "nNOR_HOLD_aliases.h" + +/* APIs are not generated for P15[7:6] */ +#if !(CY_PSOC5A &&\ + nNOR_HOLD__PORT == 15 && ((nNOR_HOLD__MASK & 0xC0) != 0)) + + +/*************************************** +* Function Prototypes +***************************************/ + +/** +* \addtogroup group_general +* @{ +*/ +void nNOR_HOLD_Write(uint8 value); +void nNOR_HOLD_SetDriveMode(uint8 mode); +uint8 nNOR_HOLD_ReadDataReg(void); +uint8 nNOR_HOLD_Read(void); +void nNOR_HOLD_SetInterruptMode(uint16 position, uint16 mode); +uint8 nNOR_HOLD_ClearInterrupt(void); +/** @} general */ + +/*************************************** +* API Constants +***************************************/ +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup driveMode Drive mode constants + * \brief Constants to be passed as "mode" parameter in the nNOR_HOLD_SetDriveMode() function. + * @{ + */ + #define nNOR_HOLD_DM_ALG_HIZ PIN_DM_ALG_HIZ + #define nNOR_HOLD_DM_DIG_HIZ PIN_DM_DIG_HIZ + #define nNOR_HOLD_DM_RES_UP PIN_DM_RES_UP + #define nNOR_HOLD_DM_RES_DWN PIN_DM_RES_DWN + #define nNOR_HOLD_DM_OD_LO PIN_DM_OD_LO + #define nNOR_HOLD_DM_OD_HI PIN_DM_OD_HI + #define nNOR_HOLD_DM_STRONG PIN_DM_STRONG + #define nNOR_HOLD_DM_RES_UPDWN PIN_DM_RES_UPDWN + /** @} driveMode */ +/** @} group_constants */ + +/* Digital Port Constants */ +#define nNOR_HOLD_MASK nNOR_HOLD__MASK +#define nNOR_HOLD_SHIFT nNOR_HOLD__SHIFT +#define nNOR_HOLD_WIDTH 1u + +/* Interrupt constants */ +#if defined(nNOR_HOLD__INTSTAT) +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup intrMode Interrupt constants + * \brief Constants to be passed as "mode" parameter in nNOR_HOLD_SetInterruptMode() function. + * @{ + */ + #define nNOR_HOLD_INTR_NONE (uint16)(0x0000u) + #define nNOR_HOLD_INTR_RISING (uint16)(0x0001u) + #define nNOR_HOLD_INTR_FALLING (uint16)(0x0002u) + #define nNOR_HOLD_INTR_BOTH (uint16)(0x0003u) + /** @} intrMode */ +/** @} group_constants */ + + #define nNOR_HOLD_INTR_MASK (0x01u) +#endif /* (nNOR_HOLD__INTSTAT) */ + + +/*************************************** +* Registers +***************************************/ + +/* Main Port Registers */ +/* Pin State */ +#define nNOR_HOLD_PS (* (reg8 *) nNOR_HOLD__PS) +/* Data Register */ +#define nNOR_HOLD_DR (* (reg8 *) nNOR_HOLD__DR) +/* Port Number */ +#define nNOR_HOLD_PRT_NUM (* (reg8 *) nNOR_HOLD__PRT) +/* Connect to Analog Globals */ +#define nNOR_HOLD_AG (* (reg8 *) nNOR_HOLD__AG) +/* Analog MUX bux enable */ +#define nNOR_HOLD_AMUX (* (reg8 *) nNOR_HOLD__AMUX) +/* Bidirectional Enable */ +#define nNOR_HOLD_BIE (* (reg8 *) nNOR_HOLD__BIE) +/* Bit-mask for Aliased Register Access */ +#define nNOR_HOLD_BIT_MASK (* (reg8 *) nNOR_HOLD__BIT_MASK) +/* Bypass Enable */ +#define nNOR_HOLD_BYP (* (reg8 *) nNOR_HOLD__BYP) +/* Port wide control signals */ +#define nNOR_HOLD_CTL (* (reg8 *) nNOR_HOLD__CTL) +/* Drive Modes */ +#define nNOR_HOLD_DM0 (* (reg8 *) nNOR_HOLD__DM0) +#define nNOR_HOLD_DM1 (* (reg8 *) nNOR_HOLD__DM1) +#define nNOR_HOLD_DM2 (* (reg8 *) nNOR_HOLD__DM2) +/* Input Buffer Disable Override */ +#define nNOR_HOLD_INP_DIS (* (reg8 *) nNOR_HOLD__INP_DIS) +/* LCD Common or Segment Drive */ +#define nNOR_HOLD_LCD_COM_SEG (* (reg8 *) nNOR_HOLD__LCD_COM_SEG) +/* Enable Segment LCD */ +#define nNOR_HOLD_LCD_EN (* (reg8 *) nNOR_HOLD__LCD_EN) +/* Slew Rate Control */ +#define nNOR_HOLD_SLW (* (reg8 *) nNOR_HOLD__SLW) + +/* DSI Port Registers */ +/* Global DSI Select Register */ +#define nNOR_HOLD_PRTDSI__CAPS_SEL (* (reg8 *) nNOR_HOLD__PRTDSI__CAPS_SEL) +/* Double Sync Enable */ +#define nNOR_HOLD_PRTDSI__DBL_SYNC_IN (* (reg8 *) nNOR_HOLD__PRTDSI__DBL_SYNC_IN) +/* Output Enable Select Drive Strength */ +#define nNOR_HOLD_PRTDSI__OE_SEL0 (* (reg8 *) nNOR_HOLD__PRTDSI__OE_SEL0) +#define nNOR_HOLD_PRTDSI__OE_SEL1 (* (reg8 *) nNOR_HOLD__PRTDSI__OE_SEL1) +/* Port Pin Output Select Registers */ +#define nNOR_HOLD_PRTDSI__OUT_SEL0 (* (reg8 *) nNOR_HOLD__PRTDSI__OUT_SEL0) +#define nNOR_HOLD_PRTDSI__OUT_SEL1 (* (reg8 *) nNOR_HOLD__PRTDSI__OUT_SEL1) +/* Sync Output Enable Registers */ +#define nNOR_HOLD_PRTDSI__SYNC_OUT (* (reg8 *) nNOR_HOLD__PRTDSI__SYNC_OUT) + +/* SIO registers */ +#if defined(nNOR_HOLD__SIO_CFG) + #define nNOR_HOLD_SIO_HYST_EN (* (reg8 *) nNOR_HOLD__SIO_HYST_EN) + #define nNOR_HOLD_SIO_REG_HIFREQ (* (reg8 *) nNOR_HOLD__SIO_REG_HIFREQ) + #define nNOR_HOLD_SIO_CFG (* (reg8 *) nNOR_HOLD__SIO_CFG) + #define nNOR_HOLD_SIO_DIFF (* (reg8 *) nNOR_HOLD__SIO_DIFF) +#endif /* (nNOR_HOLD__SIO_CFG) */ + +/* Interrupt Registers */ +#if defined(nNOR_HOLD__INTSTAT) + #define nNOR_HOLD_INTSTAT (* (reg8 *) nNOR_HOLD__INTSTAT) + #define nNOR_HOLD_SNAP (* (reg8 *) nNOR_HOLD__SNAP) + + #define nNOR_HOLD_0_INTTYPE_REG (* (reg8 *) nNOR_HOLD__0__INTTYPE) +#endif /* (nNOR_HOLD__INTSTAT) */ + +#endif /* CY_PSOC5A... */ + +#endif /* CY_PINS_nNOR_HOLD_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD_aliases.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD_aliases.h new file mode 100644 index 0000000..ecd6798 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_HOLD_aliases.h @@ -0,0 +1,36 @@ +/******************************************************************************* +* File Name: nNOR_HOLD.h +* Version 2.20 +* +* Description: +* This file contains the Alias definitions for Per-Pin APIs in cypins.h. +* Information on using these APIs can be found in the System Reference Guide. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_nNOR_HOLD_ALIASES_H) /* Pins nNOR_HOLD_ALIASES_H */ +#define CY_PINS_nNOR_HOLD_ALIASES_H + +#include "cytypes.h" +#include "cyfitter.h" + + +/*************************************** +* Constants +***************************************/ +#define nNOR_HOLD_0 (nNOR_HOLD__0__PC) +#define nNOR_HOLD_0_INTR ((uint16)((uint16)0x0001u << nNOR_HOLD__0__SHIFT)) + +#define nNOR_HOLD_INTR_ALL ((uint16)(nNOR_HOLD_0_INTR)) + +#endif /* End Pins nNOR_HOLD_ALIASES_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.c b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.c new file mode 100644 index 0000000..a5c18bc --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.c @@ -0,0 +1,226 @@ +/******************************************************************************* +* File Name: nNOR_WP.c +* Version 2.20 +* +* Description: +* This file contains API to enable firmware control of a Pins component. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#include "cytypes.h" +#include "nNOR_WP.h" + +/* APIs are not generated for P15[7:6] on PSoC 5 */ +#if !(CY_PSOC5A &&\ + nNOR_WP__PORT == 15 && ((nNOR_WP__MASK & 0xC0) != 0)) + + +/******************************************************************************* +* Function Name: nNOR_WP_Write +****************************************************************************//** +* +* \brief Writes the value to the physical port (data output register), masking +* and shifting the bits appropriately. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This function avoids changing +* other bits in the port by using the appropriate method (read-modify-write or +* bit banding). +* +* Note This function should not be used on a hardware digital output pin +* as it is driven by the hardware signal attached to it. +* +* \param value +* Value to write to the component instance. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic; the Interrupt +* Service Routines (ISR) can cause corruption of this function. An ISR that +* interrupts this function and performs writes to the Pins component data +* register can cause corrupted port data. To avoid this issue, you should +* either use the Per-Pin APIs (primary method) or disable interrupts around +* this function. +* +* \funcusage +* \snippet nNOR_WP_SUT.c usage_nNOR_WP_Write +*******************************************************************************/ +void nNOR_WP_Write(uint8 value) +{ + uint8 staticBits = (nNOR_WP_DR & (uint8)(~nNOR_WP_MASK)); + nNOR_WP_DR = staticBits | ((uint8)(value << nNOR_WP_SHIFT) & nNOR_WP_MASK); +} + + +/******************************************************************************* +* Function Name: nNOR_WP_SetDriveMode +****************************************************************************//** +* +* \brief Sets the drive mode for each of the Pins component's pins. +* +* Note This affects all pins in the Pins component instance. Use the +* Per-Pin APIs if you wish to control individual pin's drive modes. +* +* \param mode +* Mode for the selected signals. Valid options are documented in +* \ref driveMode. +* +* \return +* None +* +* \sideeffect +* If you use read-modify-write operations that are not atomic, the ISR can +* cause corruption of this function. An ISR that interrupts this function +* and performs writes to the Pins component Drive Mode registers can cause +* corrupted port data. To avoid this issue, you should either use the Per-Pin +* APIs (primary method) or disable interrupts around this function. +* +* \funcusage +* \snippet nNOR_WP_SUT.c usage_nNOR_WP_SetDriveMode +*******************************************************************************/ +void nNOR_WP_SetDriveMode(uint8 mode) +{ + CyPins_SetPinDriveMode(nNOR_WP_0, mode); +} + + +/******************************************************************************* +* Function Name: nNOR_WP_Read +****************************************************************************//** +* +* \brief Reads the associated physical port (pin status register) and masks +* the required bits according to the width and bit position of the component +* instance. +* +* The pin's status register returns the current logic level present on the +* physical pin. +* +* \return +* The current value for the pins in the component as a right justified number. +* +* \funcusage +* \snippet nNOR_WP_SUT.c usage_nNOR_WP_Read +*******************************************************************************/ +uint8 nNOR_WP_Read(void) +{ + return (nNOR_WP_PS & nNOR_WP_MASK) >> nNOR_WP_SHIFT; +} + + +/******************************************************************************* +* Function Name: nNOR_WP_ReadDataReg +****************************************************************************//** +* +* \brief Reads the associated physical port's data output register and masks +* the correct bits according to the width and bit position of the component +* instance. +* +* The data output register controls the signal applied to the physical pin in +* conjunction with the drive mode parameter. This is not the same as the +* preferred nNOR_WP_Read() API because the +* nNOR_WP_ReadDataReg() reads the data register instead of the status +* register. For output pins this is a useful function to determine the value +* just written to the pin. +* +* \return +* The current value of the data register masked and shifted into a right +* justified number for the component instance. +* +* \funcusage +* \snippet nNOR_WP_SUT.c usage_nNOR_WP_ReadDataReg +*******************************************************************************/ +uint8 nNOR_WP_ReadDataReg(void) +{ + return (nNOR_WP_DR & nNOR_WP_MASK) >> nNOR_WP_SHIFT; +} + + +/* If interrupt is connected for this Pins component */ +#if defined(nNOR_WP_INTSTAT) + + /******************************************************************************* + * Function Name: nNOR_WP_SetInterruptMode + ****************************************************************************//** + * + * \brief Configures the interrupt mode for each of the Pins component's + * pins. Alternatively you may set the interrupt mode for all the pins + * specified in the Pins component. + * + * Note The interrupt is port-wide and therefore any enabled pin + * interrupt may trigger it. + * + * \param position + * The pin position as listed in the Pins component. You may OR these to be + * able to configure the interrupt mode of multiple pins within a Pins + * component. Or you may use nNOR_WP_INTR_ALL to configure the + * interrupt mode of all the pins in the Pins component. + * - nNOR_WP_0_INTR (First pin in the list) + * - nNOR_WP_1_INTR (Second pin in the list) + * - ... + * - nNOR_WP_INTR_ALL (All pins in Pins component) + * + * \param mode + * Interrupt mode for the selected pins. Valid options are documented in + * \ref intrMode. + * + * \return + * None + * + * \sideeffect + * It is recommended that the interrupt be disabled before calling this + * function to avoid unintended interrupt requests. Note that the interrupt + * type is port wide, and therefore will trigger for any enabled pin on the + * port. + * + * \funcusage + * \snippet nNOR_WP_SUT.c usage_nNOR_WP_SetInterruptMode + *******************************************************************************/ + void nNOR_WP_SetInterruptMode(uint16 position, uint16 mode) + { + if((position & nNOR_WP_0_INTR) != 0u) + { + nNOR_WP_0_INTTYPE_REG = (uint8)mode; + } + } + + + /******************************************************************************* + * Function Name: nNOR_WP_ClearInterrupt + ****************************************************************************//** + * + * \brief Clears any active interrupts attached with the component and returns + * the value of the interrupt status register allowing determination of which + * pins generated an interrupt event. + * + * \return + * The right-shifted current value of the interrupt status register. Each pin + * has one bit set if it generated an interrupt event. For example, bit 0 is + * for pin 0 and bit 1 is for pin 1 of the Pins component. + * + * \sideeffect + * Clears all bits of the physical port's interrupt status register, not just + * those associated with the Pins component. + * + * \funcusage + * \snippet nNOR_WP_SUT.c usage_nNOR_WP_ClearInterrupt + *******************************************************************************/ + uint8 nNOR_WP_ClearInterrupt(void) + { + return (nNOR_WP_INTSTAT & nNOR_WP_MASK) >> nNOR_WP_SHIFT; + } + +#endif /* If Interrupts Are Enabled for this Pins component */ + +#endif /* CY_PSOC5A... */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.h new file mode 100644 index 0000000..1baacb3 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP.h @@ -0,0 +1,165 @@ +/******************************************************************************* +* File Name: nNOR_WP.h +* Version 2.20 +* +* Description: +* This file contains Pin function prototypes and register defines +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_nNOR_WP_H) /* Pins nNOR_WP_H */ +#define CY_PINS_nNOR_WP_H + +#include "cytypes.h" +#include "cyfitter.h" +#include "cypins.h" +#include "nNOR_WP_aliases.h" + +/* APIs are not generated for P15[7:6] */ +#if !(CY_PSOC5A &&\ + nNOR_WP__PORT == 15 && ((nNOR_WP__MASK & 0xC0) != 0)) + + +/*************************************** +* Function Prototypes +***************************************/ + +/** +* \addtogroup group_general +* @{ +*/ +void nNOR_WP_Write(uint8 value); +void nNOR_WP_SetDriveMode(uint8 mode); +uint8 nNOR_WP_ReadDataReg(void); +uint8 nNOR_WP_Read(void); +void nNOR_WP_SetInterruptMode(uint16 position, uint16 mode); +uint8 nNOR_WP_ClearInterrupt(void); +/** @} general */ + +/*************************************** +* API Constants +***************************************/ +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup driveMode Drive mode constants + * \brief Constants to be passed as "mode" parameter in the nNOR_WP_SetDriveMode() function. + * @{ + */ + #define nNOR_WP_DM_ALG_HIZ PIN_DM_ALG_HIZ + #define nNOR_WP_DM_DIG_HIZ PIN_DM_DIG_HIZ + #define nNOR_WP_DM_RES_UP PIN_DM_RES_UP + #define nNOR_WP_DM_RES_DWN PIN_DM_RES_DWN + #define nNOR_WP_DM_OD_LO PIN_DM_OD_LO + #define nNOR_WP_DM_OD_HI PIN_DM_OD_HI + #define nNOR_WP_DM_STRONG PIN_DM_STRONG + #define nNOR_WP_DM_RES_UPDWN PIN_DM_RES_UPDWN + /** @} driveMode */ +/** @} group_constants */ + +/* Digital Port Constants */ +#define nNOR_WP_MASK nNOR_WP__MASK +#define nNOR_WP_SHIFT nNOR_WP__SHIFT +#define nNOR_WP_WIDTH 1u + +/* Interrupt constants */ +#if defined(nNOR_WP__INTSTAT) +/** +* \addtogroup group_constants +* @{ +*/ + /** \addtogroup intrMode Interrupt constants + * \brief Constants to be passed as "mode" parameter in nNOR_WP_SetInterruptMode() function. + * @{ + */ + #define nNOR_WP_INTR_NONE (uint16)(0x0000u) + #define nNOR_WP_INTR_RISING (uint16)(0x0001u) + #define nNOR_WP_INTR_FALLING (uint16)(0x0002u) + #define nNOR_WP_INTR_BOTH (uint16)(0x0003u) + /** @} intrMode */ +/** @} group_constants */ + + #define nNOR_WP_INTR_MASK (0x01u) +#endif /* (nNOR_WP__INTSTAT) */ + + +/*************************************** +* Registers +***************************************/ + +/* Main Port Registers */ +/* Pin State */ +#define nNOR_WP_PS (* (reg8 *) nNOR_WP__PS) +/* Data Register */ +#define nNOR_WP_DR (* (reg8 *) nNOR_WP__DR) +/* Port Number */ +#define nNOR_WP_PRT_NUM (* (reg8 *) nNOR_WP__PRT) +/* Connect to Analog Globals */ +#define nNOR_WP_AG (* (reg8 *) nNOR_WP__AG) +/* Analog MUX bux enable */ +#define nNOR_WP_AMUX (* (reg8 *) nNOR_WP__AMUX) +/* Bidirectional Enable */ +#define nNOR_WP_BIE (* (reg8 *) nNOR_WP__BIE) +/* Bit-mask for Aliased Register Access */ +#define nNOR_WP_BIT_MASK (* (reg8 *) nNOR_WP__BIT_MASK) +/* Bypass Enable */ +#define nNOR_WP_BYP (* (reg8 *) nNOR_WP__BYP) +/* Port wide control signals */ +#define nNOR_WP_CTL (* (reg8 *) nNOR_WP__CTL) +/* Drive Modes */ +#define nNOR_WP_DM0 (* (reg8 *) nNOR_WP__DM0) +#define nNOR_WP_DM1 (* (reg8 *) nNOR_WP__DM1) +#define nNOR_WP_DM2 (* (reg8 *) nNOR_WP__DM2) +/* Input Buffer Disable Override */ +#define nNOR_WP_INP_DIS (* (reg8 *) nNOR_WP__INP_DIS) +/* LCD Common or Segment Drive */ +#define nNOR_WP_LCD_COM_SEG (* (reg8 *) nNOR_WP__LCD_COM_SEG) +/* Enable Segment LCD */ +#define nNOR_WP_LCD_EN (* (reg8 *) nNOR_WP__LCD_EN) +/* Slew Rate Control */ +#define nNOR_WP_SLW (* (reg8 *) nNOR_WP__SLW) + +/* DSI Port Registers */ +/* Global DSI Select Register */ +#define nNOR_WP_PRTDSI__CAPS_SEL (* (reg8 *) nNOR_WP__PRTDSI__CAPS_SEL) +/* Double Sync Enable */ +#define nNOR_WP_PRTDSI__DBL_SYNC_IN (* (reg8 *) nNOR_WP__PRTDSI__DBL_SYNC_IN) +/* Output Enable Select Drive Strength */ +#define nNOR_WP_PRTDSI__OE_SEL0 (* (reg8 *) nNOR_WP__PRTDSI__OE_SEL0) +#define nNOR_WP_PRTDSI__OE_SEL1 (* (reg8 *) nNOR_WP__PRTDSI__OE_SEL1) +/* Port Pin Output Select Registers */ +#define nNOR_WP_PRTDSI__OUT_SEL0 (* (reg8 *) nNOR_WP__PRTDSI__OUT_SEL0) +#define nNOR_WP_PRTDSI__OUT_SEL1 (* (reg8 *) nNOR_WP__PRTDSI__OUT_SEL1) +/* Sync Output Enable Registers */ +#define nNOR_WP_PRTDSI__SYNC_OUT (* (reg8 *) nNOR_WP__PRTDSI__SYNC_OUT) + +/* SIO registers */ +#if defined(nNOR_WP__SIO_CFG) + #define nNOR_WP_SIO_HYST_EN (* (reg8 *) nNOR_WP__SIO_HYST_EN) + #define nNOR_WP_SIO_REG_HIFREQ (* (reg8 *) nNOR_WP__SIO_REG_HIFREQ) + #define nNOR_WP_SIO_CFG (* (reg8 *) nNOR_WP__SIO_CFG) + #define nNOR_WP_SIO_DIFF (* (reg8 *) nNOR_WP__SIO_DIFF) +#endif /* (nNOR_WP__SIO_CFG) */ + +/* Interrupt Registers */ +#if defined(nNOR_WP__INTSTAT) + #define nNOR_WP_INTSTAT (* (reg8 *) nNOR_WP__INTSTAT) + #define nNOR_WP_SNAP (* (reg8 *) nNOR_WP__SNAP) + + #define nNOR_WP_0_INTTYPE_REG (* (reg8 *) nNOR_WP__0__INTTYPE) +#endif /* (nNOR_WP__INTSTAT) */ + +#endif /* CY_PSOC5A... */ + +#endif /* CY_PINS_nNOR_WP_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP_aliases.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP_aliases.h new file mode 100644 index 0000000..d9c2f02 --- /dev/null +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/nNOR_WP_aliases.h @@ -0,0 +1,36 @@ +/******************************************************************************* +* File Name: nNOR_WP.h +* Version 2.20 +* +* Description: +* This file contains the Alias definitions for Per-Pin APIs in cypins.h. +* Information on using these APIs can be found in the System Reference Guide. +* +* Note: +* +******************************************************************************** +* Copyright 2008-2015, Cypress Semiconductor Corporation. All rights reserved. +* You may use this file only in accordance with the license, terms, conditions, +* disclaimers, and limitations in the end user license agreement accompanying +* the software package with which this file was provided. +*******************************************************************************/ + +#if !defined(CY_PINS_nNOR_WP_ALIASES_H) /* Pins nNOR_WP_ALIASES_H */ +#define CY_PINS_nNOR_WP_ALIASES_H + +#include "cytypes.h" +#include "cyfitter.h" + + +/*************************************** +* Constants +***************************************/ +#define nNOR_WP_0 (nNOR_WP__0__PC) +#define nNOR_WP_0_INTR ((uint16)((uint16)0x0001u << nNOR_WP__0__SHIFT)) + +#define nNOR_WP_INTR_ALL ((uint16)(nNOR_WP_0_INTR)) + +#endif /* End Pins nNOR_WP_ALIASES_H */ + + +/* [] END OF FILE */ diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/project.h b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/project.h index e00c8c0..fde38ec 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/project.h +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/Generated_Source/PSoC5/project.h @@ -70,10 +70,22 @@ #include "SCSI_Glitch_Ctl.h" #include "TERM_EN_aliases.h" #include "TERM_EN.h" -#include "SPI_Pullups_aliases.h" -#include "SPI_Pullups.h" -#include "SPI_Pullups_1_aliases.h" -#include "SPI_Pullups_1.h" +#include "NOR_Clock.h" +#include "NOR_SO_aliases.h" +#include "NOR_SO.h" +#include "NOR_SPI.h" +#include "NOR_SPI_PVT.h" +#include "NOR_SCK_aliases.h" +#include "NOR_SCK.h" +#include "nNOR_HOLD_aliases.h" +#include "nNOR_HOLD.h" +#include "NOR_SI_aliases.h" +#include "NOR_SI.h" +#include "NOR_CTL.h" +#include "nNOR_CS_aliases.h" +#include "nNOR_CS.h" +#include "nNOR_WP_aliases.h" +#include "nNOR_WP.h" #include "USBFS_Dm_aliases.h" #include "USBFS_Dm.h" #include "USBFS_Dp_aliases.h" diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cycdx b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cycdx index 0fb7619..d68d1f5 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cycdx +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cycdx @@ -1,11 +1,20 @@ - \ No newline at end of file diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cydwr b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cydwr index 47e0e7f..19736fe 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cydwr +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cydwr @@ -529,26 +529,31 @@ - + + + + + + @@ -3688,7 +3693,7 @@ - + @@ -3793,6 +3798,11 @@ + + + + + @@ -3816,6 +3826,11 @@ + + + + + @@ -3837,6 +3852,11 @@ + + + + + @@ -3879,6 +3899,11 @@ + + + + + @@ -3889,6 +3914,11 @@ + + + + + diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyfit b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyfit index c125153d5a04bf40928f60e980654666ff141c8b..c3ea79e5d1f5771107430e4c4fe8c43406c6db53 100644 GIT binary patch delta 240211 zcmY&f}sHc0YL$+SH&upswfoCV*vs6m;eF6{N;+;7#d01nc0g7U1hKwR1m{TbmJNZ^h_JlNl-c zppg+$^5qet!35?(NeLpu77)S|u$tTWC?bmhnD}N@mi_p9Z+K6>W_X?5%-qd0I?Td; zao+cyJb!#|pL{$kyKiL`f79Pke|Nk~ckb-QW%drtY}wc4eE4|ITy(}-S@Lxz)0u2t z`nXYh^KlneHrw>7&6t%wx~kEVqj33sHHZ0j_=Hkuk@@{p;<4uaKH0q`S z8oO5MHi`cf`MEYm*zjadmAKxUv?N|F>?prwEG{K4Q#2%XoS#}tJ>OZ%_aZ`>$?=~w z{IZc**}A;?rU$lT-bVi9%BG7riZb#c@-l}D?mUDBDzK?TeJ&M(qyW-c0QEUs4cF&@sSwjO<+1lS6i?*n-% zn^mjbjIO+0ZnP+|Z3yC<-pMpy;TOA#G|@|U_6Lun>T8@35f3GP?*>f6W3B7zaLzASipe%Sd^q8*cs~S=b3a{(1Sntv*bt2MU*) zHUH-6+u(kK;g}gVJhha``wLFQ{^%Dwg>a5SD5-qxm=MF+yNifsAdWT8(QSkuLT^f83Q6XY;@{xN!B*Q4nER~dv3 z0=EYWAq5&P^e+}2@BZ3?NKabi+iQuI|mSQJs^CUkUU=YwQLJ0lY~}G9k~hv`F9(f=&PAp_`O?xo|J12TNw!T# z-7L>!glzbUuK-`ea*;6~7-fzmKse_1&;>>zTKRzu+w1tuGPpd78ZRPy8xJ6qfdg0S=64^1~y&lxEs)X<@@Mm+BRmkEW{}gd8>9A6$OYPb+++FYCO? zL~g@@_-M!MBa42(7RbQzia2Y|(tntTgj8!I`>{>_F_KBVjEZ3)aNZAmPrzBnn=7P1 zk(F*oa?vSakUUmJfBH!kAn0YDUNE_O-ykGb;WZm3P=fNW1?e~jm}uwD)3O3 zo$yq3l#hCwyBxn%JbSC>(q*rq7^d68WmOACo)W}ZIIJM~aB-^YCn5otnn(&X;1^ap z#h)vt0ChRWK�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 z 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

JF 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ð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

N*tsX_suZwn{?baxwvon zEZ<65zCC35R>#t)3_i#FaSeP#F`FfmFWh&yLErG3jQWjwmQ&12jj!adD7^A3h42H9 z7`0L@5Ip1Mi~FkMCx(?s(s*?9(<6FEzKJm30Z;Zd;hB<-$?!+?T)f~xw`b937Ui#( zCCxsQeYI)iDuv#hc(Rf5Y1hGuBPxdsxv`f(RQ>^9h0SGprX;9ffbBHfYlYi5k51li z23aR|kfoH_Y?oyGKsE3v_-NDgOZ9yF`g$nxxX0deQ-P|_mSv|N zH;LmdSkGKPfi^AXwKV^jp)z9i#0z1x;Y<7&NAm>0xo0IuBQnCIiN~CD+)w%(eTc1=a3{T8I#GfM(n4IZYkt1U~wP-2I znE1BW$bw8A{P|vu9FG6qo;fmaSMiYtwl~`L7j~f*Unun1afe9U+l>^K)}Q&oXZNhs z_XO1U2-NrPvz%(IY9D$)Ksy^N^{%*<5Y($FLy9;H%3*@>ovrqJNL$JWWt-@^##K%L$64R4+0U zhk5+T5j@xYZI8egG166N^7r-q83&8SW2|-PGJRBFfwXQ@P8}csi|xIUEV6A$#mVof?Ey z*ETcayr%p4k8zLD@?e3RA}!I+6t>HkM;oiC3G^X*H})^JTop}Hk+sS^WJYf<)?S-$ z|FnH^xUBftsVX&+=lJq}VEU{jr}@SfI#Y1n%oceV)r;T9UDYNt!!%wKM-^G`Y41d= z-lJUS%qlREO5z%5Wf)c~FTgq1CiKG0A?oS(qR(WmfeR)FMXK`8UN>=(xk9lHhFuYR zddd$~TaI|}2rRbczJ5#a(%dyL-)g_AEVRLtO2ybh>bhT*`)-#q^>9u;_{K=s)fBg3 z4HdTge|+-@Z&pu6)`TaH+~FTl4`tx{mKSd3Fvc(p^_LC^eAT^1?AmhIW}9o8#5MM~ zB3f$bjPkd><3_|#Zi?k?8?&#fxB^pW9)5$Ht9&Om&)}nECOV|t{iT31(k<%3bz%6P zTRL&oGpD7c);A|LVb%0D`&H2)|7k;1J#OhZo>PlaPMoI}^DKPH%{r4J-MB9#M!F53 z6U9?E@40jlFRlAhoejmQ^_lj(-6hj9`>|6k4=+QFopZxu?tz-FI>wQlr<(Gv)xkyge99LIf&s;y$WI?ghIsCvhpeL0gVS$mD zELwn9`Z#@Ll|?NUQgGIpv^GSzFJX>c>rqs@{w(p@h06(wYBZ9xR?$KoGxqv@;_et; zX)?9bUTItXZ#gDGT^&1apT=Rc(K%Z9#r_r4KaXCI>PyKgnT*46{rUR_Pw;~rwsW7 zCArHy*P^R1=v_F6b7{Sn17BXTMoU>RvzvvlccGF``0TU>zWRD?c=L!ar=k?{Bq!2| z9~7Fyh4yfvk?TT~#YMtr^7DPCqt`p;9KA}V+^K7KWE>b08|MV^kruOSWP;&_dkG7i zT2|5B#*jmsxC}Pu*L3UNSFc+cY;9|mhs8Ulh%Z)loYGmu4KayNpya<9Q}n>vE0MCg zW}3ccAVFklh!ZqoniwV`wU=e&ucTR#|J+T#c`<_SW=g*WW0o%`)Qvu>A68s=(|L}H zK#utFysJKK!^>JN^s$|aaLF-W&h9`xp+sBq)P4)%4!E!j6b8QV<;-?EpV_^3^Lbw` zU=E)8B#%UI#C6xNO}qlmQ*P z5+hPOpgAs|IVwtrt*+6fW6JE4gqEMW1RQFLxrZOD;hS2P`ObuNzv=(=els#(tJrt= zsKVCf`ekGnSyq@%gL8|F)4j7kN^lDg$`zkwIJd0Cm%+sHl=@yRh`y53_ez%}ACLif)1B z;k~3gDUgR!dRQKCkjk@biBHz>N$P#)?A)QCym-fBykHIl3=_WbmH0{}yNSjl`|*yiolY29}dZ$z62y1?VdxdNn{z}PCeDDQ1sykn0AaWmj2MB54&+A`)_AC3mN+AXCI zxXlf7yAS5}04S7tsWnSux3Wfk+jNeqIXvwW%sU#;=3!cG=ZODa$^k`AQ{B1^I+v^s zwnDh8bOF08wp8J9L&;CpBB(g;h{2hk_oIzyWoC1!Oln9UY_$Q^4t_|- z4bRJ9Gbf2p8$M{sVAuk?y=E=qo-CSz%$ULOoU;w6s+K(kv~=yGdqS;kn1kU~o1yG! zn1K?-fPvw?kA83$a$UT9wB6~?3~u|4!KPs3hjcneN9FW?WG_|&%-;XXUFd+-yNbi? z-`T7F@3Hs4au?b-8?foewsx1_!|Ql!InX)TKG<&69tRAW<#M5_-8tKDQ^3hk?Siv) zhZ@Lqw<{T~_z%VJg9 z6>G{wEYRHOE8Smo_}G8d;S`+)o)H#LSUr8yElN}FQ|UJFB&r_+QtL%%x1fQ4b^YBr z9CKLQE#4U-o&v_JUw{k6;X)hD=rmR(86T6CjniCqF=%4sv_l1Q5dfY zq?;Sog3=nB*-(V!`4~zIcSj3ay<;)5$v<8Kz zul+59p+g+5Job+{oOo%zOZ1T59@gROsh1hv@Q++#zEyXUbVWebA@lW#8!JqkB9nan z8aH;oXqEULK|t29M=I5w> z8g5{>>%f}jN^#g~PjY69!^@Hyye#$1gF;}s6R;itlOA=R#H*dMUKqgN3^`3@&2P5&#P~SedB5ti_ihPXGx#-2;UF zwUhqdFAEj;OW$ASY5y@sndR4sW$Z(M^;WR-fX zU$~Rt!ipvI1morz^DK%&Y(|F~>U)ejwP4i@=$vz$G1uQITz+M^SBXC2w9|z?@<82I zAzkkU&^(%~kezs}0-ZgjBeutQg~Y*Hq9~^PPxKH9-iDzn?FiBi zz*9Q_Pa*xg67IMFpQ@aWtXktQ>YXb*4(>W=W}S5!462>;>H>uO?#J8GTFotMQCTgq z@kdr!N2IjtZ>`sy?;F{)p|u)Z;)|@hrig=&jE8e|Aoou3jgnEUsJ>Bn2_E}!v+%6` z(Jo0mHKk?i@{A#LBLds`ms-XJ)?h({f=RoImWKiI3r@O0dvZO$SbcMy@X2CjP^?}) z5MXSU%;**N(m3e4X<3vZSPq28w_6*=R8##mKT*?Gk%=3Vlhvc6Ds%{GkliR_tce2SodopUkfts8$QUr;4TpN{{g81_&Ec^&#r1AN%wSsOCJpN z&Xu{9*e$3Uy_;VnE4l8v#cs6va!YgcG2mO#gyEjT=o61UC3fSqXO`*hOR7_)ZV~Qi zx!v@q_N>x7^JMXFhUq|mh1}k{ohR`*Yyf~tH@PR!+p(FTmhz`|z|Kt<0XuiIcXW&; z2wn+p1E3aC0oL)qH-fhFk?&l*9EJ|BauCvaw(XCfh98XlKd3+7>;J6&hqd9sno*(A zzUD7HLd0{4lav53duK}W@+Ww)=|REr87SlhyKxC%_fawVDl0_4(xA zKwGHroNq+L|BA`;=s%2cCN7BM!H9TP7+%SiKcbV>w2ySrA6nNTnE9qKguQ<6;vE3f zbzzuJ9lXTkvekWMDW4ck_w%Zn}*UE#9LB*Y}0*FC&e>DR854 zW+MsCMu~6zo$DCt`Wa;$H3BsQ)M$wdRI#ko^>Oc5aZ^N$ORNjqoV^=jv+a&3@6~g?fB?NPF?jSg zpL{KzYU~tdl->A5{Mwa6MRk0xC{rY!Gozc`(jm6L=tIZd7X0Rt;p^tzX1l{>f=3XK z>}Hf|Tv#z);U8%V4mX=G#Fi%I7-qrd8tuxoCTEAX^m}dYAuozV58Kc6+h;*-yNQlj z-dnB|1w6@?=-Q+lXEHg_`I(08v$_Iuzx;gsEYmjYrDceVg5;{{HQqoq!t;F!g;?5x zV;6`JPuuhx7M3)95eDVXOmP7bRlb?X_GAR1eHymA$qdKjnu0w;SvEDd{>}#3A|dP^01SaKACj306jSsCnnXTB6;} z?JZ4ZHIO@24RRqMhp+ysM@>cEq%Tss=llXThUrXkoVQwhUH#2K#Hyg77DR=?+M ztSv@2UsyMDym?s2;5D-n6V|;EVH3M=*s;T1#-)RTHfpw#=^cMOTw}&l1=En1pDBj? z@?ed*2hL#@WHzeNyWEC~cd!{oKz)j(1yz3OYrImWs!Pm6E3s`UN-W2yta3*JTbLsR zQ9NdSmW99=ZwwVAQUDxhjn85`N@XQUGj@SJ7f(yuWCjeW%_x02)|>w}ct@UZJEu~Q z0=;WGwvCa}PeZ>L&+0qX`$Q`)%*R4`cNUx}`C6%cH3;LTW4mA}PW}MbQ?I#F*UNH; z!cU{bBw5yZD{h$s4jmYn$M4KG(;ci z&$JCN*dmfG06E?fnA2OY>qoYQwBL4 zSjLZPp9V6%)C4HD$bzLTtCW7sD*%nP1Q!r1|hf_H0`~3KAXdGL%uq|g7O&<(sME`Z_iigloLb8 zGqqw^l~e$?WEXNI3bCsJuXn&%e!#88MZhi5k{Q*cOr1R!d^Ir$fo(gdN`4RIdg0t@ z#H%h1QAJklDp)s&gCeRlmYxDmq+ugXfb^QFAp_n|wx(f2xo}oNjU)gF^Kn?1F%fL# z&R{$@Vx`;$o1NnZz2SL5?06aAgJ@z-2(~k`>D51z!>TF^uo4ihHsf3Z!bNpjO*7>Xa<_eh_i2joPag3lH`ZQmt3nl>#G3BvBJ5NTEQkWN(JaZ zedGKQIQD52enT}yu6`P2DL-vZHWdw+F=*c)IgxIU&0cH&si$sp2h2pD`wOZ4_kAzq9G;~*b;&APGTn5)MUF3WsL;AT!~#e zq@&t$&sTpKTruR)>NVzYu(Z@#764;R82_*m;>^sA3+jY>!D$92X47Otp1&{17G6Ji z3T!2|1t|ZPslFN|`%LBC&Y=v&%+%u2kre=zHbOd36+s3T6L|1^Uvj*GO)3;!+<9tJ zZdGnkZdZP_+|>!)C{TLrTN@-0H!)pG7y0Vt86K~^x_iVmDQ{DkLSl5B9G&hZuSqOO zM;`@C;RzuJNylm`OzKOGTjwqfYD8$_%19&96$iyVI9-jusSOw7Rx+W53M9U)C7v%x z?>3C(yQPTa0EkIRQz)@^-sX5BBGh(4BdHM7S4L8EYP%x)a=G>2L5A}wC4z>CydwAG ztcBvls?RUpIyMI*s3kR$Tk&G|&KK{*Yf>V*%Ga2QLjcHHlGG;E*$YCHuj#6&7uYs; zWqx!9hQqt|hD^bBEhx#io8$Vt!U$~OBfB}(FZDWmI(Q1ngNS~R^Lzqwq%-|d; z!0;^iYGS2`g~T8q>nlxm1BA2f8B+Jg{h3(DAC(U%4!t?N9#2Cbt_z^zd=Y?(H>*GA za+|(0oTsX|!Kuv)ViVlvAeUMRa?n*cYXuiR0NGeTew-HF@qPiFQ<7dVT)e3D%(VJQ z&`X$Jn*z3$u1qy@oxQF?Ty1^5Eh0oSK$kN25ZLUHWxoJz%~nR4?uk0#$t0z!1$Nwo zbG$|wj!Jni*5ff0R~LQ(m-W`Ab`6U-kjobS`l~cyW5W2kt*!u{K-}JU&Rz{X$;}mt zFET2#UaTX-5^SmS0aPZzkE<-NzCTxkrx`uin3#hzgY2_t*t%#_V;hjsq4`j;`0t4P zjmGm9Ufs_6D*hM1I3cBb!Z3$v?#<9|CarOp?fq}0lCJpnj}{&KN#3IBA;4VwV+P&; zUUOy?Eu@yxB~E62TbSJnDB$SVC4Eh0XnowjdmW1CB))6Z^(hVmz;2xfS~C|!jO7v5 zS#iN7Bxl=myVv7?q4WKQ@0rBrpla7-$JXsytzNyaHN+vsz=6>% z|7YJPVFSReFb5utetF!U8_XL^Kmf2kKOKiX!;B9xwcdcAfSudUDj8h2yVii~@Z@Rm zJYfwy8Pj9A_Nw{=D_gcQiu`whfaZi@D(H_HK!YxZb;5vT?kliJmc@n?F}+pk*L7i4 z0{cE&vasV5ULC1u+VQfsN5Ep&Fy!RmxwLde(>^$Fy=#bIy4JOpaPsm#JHK<2vtM9d zwE&+Tnu`lToYTnA?D;#fh2{4Bmw&*_^zY0RoBy4e{};T3{wHQy0Mz)IwfnMyy&%S$ zkFXI~gZ0rJp4y)#O3q7#2a+^}wU$%M!gNlx00&F}aWI0Zcqdt8vSwyo#JG(9CkJ!I zj546VQO`R>CFN%XzXlb#Vbtz~tnxGWlSx~6HB?SbOi8*PGlaF;X+`5O`ddrP1dApEEShaE+Yf9I1RJ40 z>!)Jq*?e(oxED2A*xDQi%C*is0vlijDQybYe%5(a7Cb=RNHBr}xDeW~2;Wyj2E~h2 zEl^$eZCF^=4mu)+^M}C}uTKLHv}Gmav*r3jcKO9nLJ4dXgqwg;(aZy`(m}3kz7kpq zzHS_bO*260+-!4ozIY8;yQ5g z6-}FA=`;hBrv`F&;_wa`%|=FFY-J^&m9Bo~ThiPWXpmhuk?0qT3LMUY`2NE2Z&b zgWNiMq{kIj^S2*?v0&Q1hPE(my2Oqa4IvsVlm|g_#<)%AuFDKyK2RP>ma-wA*w+ZKbc6Vxpjn}3)MB)C?H7FU=|AEN053uc zJ8I?ud^{9r6^YKb-=`A#Zl?benE+q_GJnx)$#$6~o;m&2pW)UJfSwL(_AiRfG4?l# z4Z+6jux7)g3hVX@{9i|u57YVI1Ip099#Q^h0cFT4}8&3YmfjQ{k4JZG% zz}%mr$%S3B{>RZ|=-&+||Kn&f^zVj~|EE2W!_j2u-wh}K<7hGjZ-V?|sr~na z7J@fH{+rbPkKyD`=ve69xQja5WFi-CpR%V~A-AVkp-*%eHu-A8{M4@PHu5d|Wz4Ek zN8>TWZ_dlxTn3{MG+ei5vb=q@WV!!AY2!fMp6&AX<&xzOk4ir{81-Ks8K`nx-o96| z9B42a>0qQ=vfN%>N>*K}`>-@~r0#~x@^--U%`+v--IqsG4MxHH4Gr#on#Xl>M3;=X&UWLeD4=$pmz_HM~C!J|^K7f{_^`}562gV9NABPic} z_e05Y=7Z8x?3cZ7EPLB5Z;w3ROfFf@e^AP0Yb5r>{YiuS zlWO-T+3ruk%PY?}X+X!-rN%>bH$Ywfl4XHMrQfpLci%tX^tn6=iTH@5dHoSFi{2pc zfrWNJ2y+y|=cG=PLHFLB65g&4o7{3ci@zqa5phgO4+q;3^8b>{AIOVkhq*Asl_pe^ zFok$Z5t#bcaqar9_J(+H`O96cW9wta!R1oB+Q$O>jb*OsYiBpc-gkRFa$Ln@Wd~b^ zD+}B5m5D&-o1>i{b?9cBFZ)N~IATaLJtjF8N@pS80#%E|r5^E^p2DQ<(!8aoa^^md zE87YD6wOfUku(Kw8$F&e7nZ_XuZkb`6-s}>V5tO)#>Lxu9S~?`6-s+IuJB7XSF>v8Gs%ZGhS3%fX7{QFle=m} zJ&&>R;=vyB-uCeyqC&nk9U*u+S1gP5s1#<@c%5j4`;!`XKZWJ(jpv(!CCj*%N0$vo zbsv-p^k3;;nhGf?35;lMMcXcBKJrS*i3r!A(hgEhi`Uk7!%7yc?;J>`%Z@l7_3U~T zk?6hhy;nYCk&_aQb-~IX85euM;59}(eUO1UO8Um%8=< zv6j4>&C+G3AKjl|IT^^FNYB&i!hTZI&_TwmuDe7|$*-0q)TX?mC~!7!mW6eD0w?IT zCp+O9^rl3-BlHp4=~Li|A^c-I9at9alX?t``nO-eMlTy8kai54s)eTV zO_DrPbPG-VfGTBeqjuMK?zEaO&r5EEEkGk-mRIvCf*(e22rwC5GYC=#|Ds;|H49I4ABrD zhm`OH(-ApzbK1j1{LNh**|KAl%HeEo{8uK19==j0QUT&+l(d%c?|@a zNjR1 ztOHrt_#b9vUVNG@?U%R@g|*?ya5yeZ$tp0tlzbs8d+M=sp}F&;593N7huIawJg#0= zLA080^Qo-nAbJ$)lchP3XDIA*WQ#Bx+T+GP&sv_ZQ%O+ByQmhilc$%wBqV0~{Q7gm zz>}My>T8`ROLUV~isVc9dXYu40z{7L&nKml#?xmfit{&9tK;a2PeUvH$Lc*f7zXLQ zcbZmbmS?aCX0UEgIKJ@|edD73!jEFka{JxcRR%2|bga?)=Pvb#iXWdllcwkPa_WKs zLNHoXVQ()7Z7Cy59%Dp!8~ki+fS=+I;KzJP%RhKRNAid+`@Ne*@oG&-1(qq>GsI5S zL-cG@G4Rbv9H_q2V=3NzK<|W(5l;Us_=^GA(}E@r z45Vc>u~zD+hT1htMTzR#v*1Cd4&hZ}5)H+t#X8TpEUVdY4qa|CIz{(Qez_pj1Ib6` zzt%*(g(&e(8YoIsXK$v{3YWn5GR4_)%C%gHRUIkG7P2#*E%K`%@CzmIDDER$Je;K|nhSl}bCWB39(C)ApzN2pgDJJI$ z$ccZ(Eb|!0r_d%iVNzbPZhIzrLQlzHRJ&gBDCt*elU4W?Kl&+3N=0A#@>XUvR5F^c z=<8S4Do~vGW!o*ZOcf*}XC5p1`PGepA~*p>+tMb5sz(!kNeppplEJgwuUb{SG3!uz zNSc;ArHk;Wc6K%aNyWsa9?A#xSpD~JzNf|My+YH@nvq4HYetgj-1f;5XDUM$c{t03{;N`XxUe)6D3T`o`mE0ytB|6v*XHc zws~S0p^~pXMhF$lwwD!_S$(dh)AM402=?&PS~)!Yude3Z`IzIWcNNzlyfWiqz%>d( z8ScU>oQnZ zyrxdij>5HsgYZdk)~z0Ad?mkkDY#*Wg5YUq20JJ}yXZ4@+UzB7H>e|RcRW{$<|vw7UU;pGuR=xDV%XsQ__|D)vP^H)dMa=1vGExUy_|bWPiHp0F{d5tftry*gQrYvp!2SfPBfnD(R3!A^2k6 zptqAWa#+0e9-cF0NAuGWKEf>X9RHj!i#-3aBF%c<3{hcZGCfHKECcbCwdKXfYihNu zaZY%@93ZCO0C!GaYU#%y-IoeR&xf{m43;qO6V25_DblhT4U=?ym|hfEGu4Zf02%{uGB_GfM&M6 zGgiy*l#EjJCtvCfTr%1 zEufmbS8nAx4(H3QHf_PU)W+7stq#&r-WEWC5d5PWEYg2K&i8cLZlA30%`O5mAkVkU zKgabOU1;0~^lBD$8wZ{P^G})F221P9H(!gRA@bb#6;SuayI1; zYFFpoQx!xjO(25}O>wJuNH(UtO-7a<4 zNOMr%T__MqCcOVhXn^Ky;BYYYS#&qvcc<5%aq!-KOnK~S&|}IH3$(hI=bZQMc;?Hc zeXF$g-osTpw`Q#I?A*HX3bODVVSj4I(uhN*V(=5qg059V7Oh}APLh;)W!3y7JRQ|w zCe=aBdz~hmTGnf=!Vn39biPo1@6MCvjNE~wZ}2qxTlGNjv^Me1H^S_mqF6T;MoGyQ z7fMP*a3grWJ?rDfBW*#{<~L`!!&xcQe%_3~NL5Vx{p>-51Eb#?)c2x@l-TE64}|I| z{GiA1QP)IrKm{HZ=#k`;@XUVC#rP4Zo-dTWv3Xg!6)WF7nHNwZASHJWq(o-lmh8~)+maj6-)%_`S0%4~ z57(O3SXC(xc#UNR0?LQF`6YdUGA3IxC}R>1QXC(hD{ZLufHMD2ZE*>NAi>?;-Q9v~&|nj6k>CM>yF0;M77GdP&IW>O&_IB@dEax+ch9|l=-pxF z>FVv8r>d)JdSE*K5B~kifAC?rcK3h9{L6j+iu?byaQ}UL?(o-QKI{vO{eH{l0_Xw% z>(q~e`XlM=8uT!QF;lHenomn0uztaXpEK7nyC1(YUgv>62xmH9E5xZlruDgTb{|`B z{I_z*jSW|XTC5;#MTMygnJQx9VhLBK6yNPDJx)p&swrKqCOtzLolZyo-W!ZKQb(A2 zsU=`EBbc7h#bh_p1FU>yg2e}Q$HfeMUo>fZv^4M^ZE4XFYh$Y6y7Y%+lvcT&W z&OHq!!15_P4tMs2y03rps+30biOGvqR)_-3;SnQL~7B^*W- zJ(Osxa`4M)*)q~PT5S9eK^k0Ii!i3rUW73f7C}}Q0HZ2Rv48xS)XjE{agocv$&AiWnM$_!Lhk0_;yf!Q!Y5ndtCH#5sgEqfKy%YPW9v=*jCFy+%;{8#xZ zoc>k5Io`j@2XkVE(>rWow`a$0MZKM=HSDr~4aR@9z<&-jYA<_2$0Df)j}m=9xpn3-b<`vW6D7y%t-!j!zZfYW>YUn2ZZ3nM_b{}LBwsQ&N%8~u5K zf8~c+)PKe?e3bDQ^8dyCZ~W`#{|g_6d-Ye$|A_nFV*gJIPx|lAvRyI%vrZCrGK>OY zNB&{ffBysg9ch{dl`0p)D>It9B;96GJ7c)_w2LP)`khL3>)ED+QJi)pNLMy|k!qMz zl+}#d%vUSpOj<}QA+-}&{wKR$1sa{d;i_PKq{2lcQzn{$nJnjv`{_H?v=cuQeMB03 z$Lq6|DQ-LXLRZgPV+plGxHwgLVvBN7#dfpKPk_&&z)(kxbvCkB^GC0hPwn~+Fd}3x zf%^4Z?K3X+Ww~c(PP}&1N6BS8`uf?nG;us`e-uupN`MP4BsWDi?zEV}aa55gM@r9F zMq14$0DW1vapk86-};QhvX^q1-7Ne|`Yd)`R_?3`vm8g3LA|yzA#J{#vcDXMWXH}5 zR1NTcMpuO$#!@}4E0fY*`wAnuN0@PpIr4k0^Ej_v3 zukjbxzj(v{h5JA4Uzcgw3q~5tUb+8p#i2N|U-4lU?Vn+g0d;nNA^%@on8N>yzxcm#Xa9=%A94R%?Eh&IE&lykV$1YC_aeXj zUfKxb`_fC8@AzK>{HHZmB7^&Sx%gxL3IrIsd?)-;S@0teWA0d?+X+TiS1U=%dosRL zxhh3d(Ta>(#nY5cOzH|VPADB?l?!EGzn2q!QECM{PvlG9A}pJDere|A`ruqEm>~iq zp<`k!!HL`oIi@vP^Lha@S9n_;`g4Oe_rOUOBIQ3=>bJW zd%oXvi+l-`9=%Q?uCJYI3PK}t{HvzTo6tqATQqn(Y!wSbU2@Q)R)R9>T~aW#3HTpA zjTfCxYE?*#PxNc%ZSJ}L2&$i4XTlY^X$*URn~%mfGoCSrT7?WN%|Ka2*2k(XsWJ`w zeRVR?kA2_zsV75ylAmjht1YRX4-Zhg+w~e)=V{BlaHBF2XmhQP%stDWWDCEvdEISU zPbuz&{Wzs`-}<&bwsL^nodi=2)Q7dEw3#h~rbm8ofZwqqG09<=JLry~NH*qNV5dyx zdtlMqiG2I;HGgPkdxh0yqlz_0K4ncI&#<%wKZM2?;Zs}0C~`kJYAADC2@7!GxNX60 zx_v<0u`zaF_o^}DyxzUJ&GxXt9QE<)19ikk2leCfo~spe-)hzLftP5u z=$zy(GhM5nl+I+?3budnTa)zbL~}FXKQ!0yOr&ZT2fa1h$Fhwkga`D^l<%6aAfzuB zwJt<;PQaXoopx0Th%O$1-uP3MHMa5- zjC5XHg~WDo=YzAz6#?+USG+$qV%K+ibnXQGRr_b-GCOJg4udm>sux+&7_TpK)zGd^ z-{9_MglQvx#$ktomt@a>_5U73*TF(w@##R>RU25B+B~(4<<)T<-!dt5#NrGV3~K#U zA>nyK*Y)k-fqgixSbLWs7}m@Dd+x8-u8y{khWVdHBSS@_HGrz=yq?^jS9n*lx4ygD zMfi;1Z;I6-G<~bl0>nIo!Z(eic$ZY)W%ae`b7V0o9t;(pL`Hd5TquJk=$Fl8HiwLU zJk8~pvcc2lzM7J(ubQqpCpVSl$d(LhPMP`%mxs`!9~ZnQAJ(7b3+_!9jXs(*iLEO~ z-CS4TU_6Cap#X|)@;ZU|2K%S1m)MK*_PmmMmJ&rRQl1txZiRX)lBSd?qX%K!_7-j> z?BFZwY7=GC&Tg_UonJz)mp5aHZTlU1)y2to`Cq*o{llpBNM7DZa=EGM)f`?LLbP20 z$Gt3d?}~?Y{W3hR-5ud^RRw6pEe7X|Q=wHh+IA;<|I@FkOfrnzcHDKn8NV8&zeOP}FUZ&1@emq!ycaQx1B5NvAD^Wkmc3Bp- zWvSdlvnkLK+X8rge?7x|{?3OrjBSg`RB>^i6ZP223bop`xa#L1d-|}ig*(BcENnvx z|5=$3(T|MVPQu;o{78I%R?nsX7)SYCZN9iiF6@ksAX)e> zWs4ijcYN@o)2D?=8O{0fW8;g?WK>g08+u*bSk`=?N_9@(f?&*+zA?Jgpx@cG@NDXv zf`=?~ig~CRLqcfEwL7w2zxys+DC}-NMpltbf8h!Oz}yY-n~~lkyB{nf^oqpGDhhKy zxSPgpC?^J6=XG*=;-1`jYA41%h-TMTO*4o0kB{C$$mY;h62s8mi+a3x6wmHA87nTJ zsn-C=#2^_^%pM3Zzu%c3RreHE`$0dhXLK+y@08Ppw+*LHWr7ro9ko&pz7-UdbJiot zVf!2s`q)cXof%}JU-Yb+xIA)}Xs!r=%n%Gu9$bwz=q+r!GSWAfUh`%5ztMIn^4;2# zsoE+#|LR6mgCyy{{`!Pigi2iYS(m;WX%!ZKb=n*{(P_O|54_F81P0GX5VzBSMEl>j z1bXYg+G^zhfhv0P7%$MUg5 zBu&$2LHcLpxM7o5J@6q$0Zu`U&j}}OI6hlqqah!W7xw4xDcFp+^@{TL%-;(@` zC};>KwIs*sbCB#aP(J?*>yx_nfg0UvMS*-GU&)@*zMCU&j-Y~Tfbod(op%NPf)_@9 z@NV^pH2DX`)^IN*_LbiAh6eJ`nZ?l< zk3SmhK&=*wECdiTX*|2%Z8ClD#bMG}D6h)h_k?A_^ z>qo2JR=E@${bF~FT+5gcz?2#TNn1a+5seMwZqLMI2t?4wPYORFJX!&y>vM${aNA|D zDLUC~SZHk{6GW0Mh5YjYCcg4wFpqKiqn&&<8f zq~9TvYHKLi-_(uQXcFM64}qp4ZhO@Cri7d7STZXb@ETBFKkKSK7rlWVxE4Q!%VOzU za({)Zc0jEC+^CF~jkUDm{=zbhegOjqZ3clQD=v`9bjM%rY$wwB?9CL`MU-JxG4jMsjv47F7>WN-!Q68+ztZf%4 z$0~LE3wh7KiZZL&t7n|Te`T*JBZh=d zd@J!wul6lHttlYwi(2iLuU^(t#8_DAJlMP`!AtIRR#@4*$cAg5H$Y|7H<}Bs#Gk4s ziScq!v^@o{pNi^A5kDkI+j9t!c1wpptCvNI z`Xnl%0o0XVr5P;pzbqSFVDtFItJ{)M)@NA%l`8*1JpKM6!}U{1AWniRvWdY5m#pJ! zvRy}(9D=a}S~I^|W*lc&!HyZ2P*O31?+&@}5_7S=i`kBJDk z^k^n7R6;YH@ry6roBi`nNH2Rc`{ob38AGZLuFci99ItbK8+NMX=Jd&S(?%@~I#4Cs zb5D_PQ)R=>5)}-onh)@Qp~`-6fsC%T2_y=HLVGV}sks7iflKxzK#Ps&4D(*An&t8{^o1p+j37p0U~LbHy|BY z`e0`)7U6hUa+s<_EfW5E1*PEHLks$Ud1j7 z9C;8Hf!0->5XUc}m_~7+oBodH*o8s)8};hXRBJ{7_7BdPRO6lF-I>kNZD(y za}8#MR{Y<$V9acC#r{k=^u#~m(@{1|u|hjImZ}IWWCrU?5|cDY2H${z6%?)okE=oS zdm11JUKAymrTs0@{Dv2c;*jJZUol;*x{d2;VLp)$29N!03BrjYR`3UQN}F1SWK*ia zA<)ONaIdBkwXCG7v~ay5ELQ0(Qdb+lm;DBH;wobV_^#i+&W<-3bucFvyU4t{=HL-7 zY%-virdoM1gGnoh&r${?7W;b>P9_>fdutW1N%lGylw~Qzhw?NqSmx`~(<*wO`|v}h zGeN%{n5jiDHK%tu4+5faEGgvxJ`bT~?_$b=V&YHsr=@OvIb3gwud(N4WcUu$d`zXh zXqM2FAob;CpT34l4^6!&FtBJ~H;Bs}O7>^TEuFjS0g%C~y&74PwK zg)hG)P(v^b&g#OIq|T{uD>You9WEp@!sdL*1UOpmxT#@ zgt`&LUT@N$y8IscApLImmqM_)>Y$df1j;~sXm_|5V53J*4)=xZT_vZRRC1CKwlVq) zR!%ecQy4YMgw_}e3|W|dlY7Vly+Zn?v`u^j*;lpnme%BQvL=qoAwA6uB= zCjQR$CNk7f0B@{pIvn`{^_p<8L^FO~`Gyf0ebUx_T30ibX;yH!NsUhhOzjgpcAPqt z?eaR*{XUyY_x$M;sx3WrJqlNNN_z=CBMp{Fij-G+?+1UOKQ<_wGe;h1d#oy)SL>7X zjO^4cZ2BBTPwPII^dr2x)191#B@^p66PxNT}h$Qwis( z>$pEzjk@J`w)$gh1|KGS?ET3{)n3c88AhqTWqV7=q+Dh&F0KTQ)h);$V>K=5mmX7> zC69F|0GR{VjBh(Q_D(U`m(42b@QyrdWU^-lSIZ?Fu4&U-s~O7*k0y<|qv@`xMHQx7 z#l~-prqyu@x)wAmw{G^Q z-I3R^`$giP6h7h@E7E4~e~z|_E*-SXG?=jk$mmSC+nX|e=?teVk>MYs(mW|xK72POvv z;?SI&G5G;t9E&@GV1Mx*Dvm$Qz@;@#0_8S7M;o7`Ffv5a_`%A9vY@(;!S(q z{n6JDO}SBvv(N=@9mruXZ+CRca=@MihN?51wTD-T*?&qjxC%u>FEFV`&Sk)tWVzpA zMvjR?Bp%v;nP6*x7t6cSFD?vn@hF~7!*92aL(U1$`L*;WA+`4Y&u0rl>k;qsKMm9* z4c=X(`SF?T)+Z?4t(^8e`)NJAppzzg$5qg;tqIYK>GCFTo6cj#nAQCN)U*bfcqvLqu;c^4(QuONq|A8qR}pQi^Lb6de;jplgAN7144T z7mtCJ-a3mg9vzw=2NhX#6rNjiHp%|oM zdC(e6H@iD2a4TmZHpGs*E5f2$0;k)TXkX|ZZITyWU2$)^0ws$E1uj4oXyG^5e-sf% z`r>S~2aTm@v|zx4&p>em#Yw%~4x#?@+GPDB+svIe++UC)=!_m}> ze7E|p61tJzC;Nwq#|`*o`i@|GEQr#mdY>5Ov<7=^PslxQug~Spq;3)a1!@2Wgr6&r z1p*rgH)Qke9dhW!D-o6Wf#i^1ygVxPc-#yX-l`eC`0d+CQJ*HAUp@{0Nj{PE% zUg#Mb&{$T)Y0Hhi5B&oqHy^j#v~5~xd>wrl;v*$cQ+yk@%>WhAX)0xprNfswdpeo~ zNH`&vr5vIRHX!>wt)|M~nG+B63z-j`oJZl~T-lPh`FNSBX|63Qo!5-urfa;4IPhXU z!-^Glo#$3hh=&XPFI8-l0Fj6lJQj^C!4cF4o+R1&oVf%BrAq486u^b5(c74V(Ak{dO&$v)?-B`T z9j~aYOg_oSAwMh?cqi!si5enr3UG1 z)P*=XRKEz=dwMLG=}ky`H0Gke@dBmtPkqtQfA~{;peqyVk!>^T6)}OvqECyf6)8S| zjj}{MB?uKTu;Cg2M`Fg#(kFhCT91g{$?k7dhys!@8*>&)R=7oIEt2j7OPzl0z~s3s z7>jvAM6;i~5FjUCQ%ym@jZoLeb|2{j;3TDpKC zwm?!I&SS_9ImPSF^x81_Q6DBDg$Zd>?Zo(^j|)W8GM|d+-4kgkR|4x>cZ*vHb&Kc? zsi?l4bH?b1$SKJ#V;-!hNERs$H^kXE7eC2@nFq@E-%>bz)HZ=Q*cdS35MyyET~OZK zAv#F-Fb96B51mMs+)iPz29!daZDShH4FP!&^1+JB3H}4l{QeuoWnS4xZhJ}8agQtc z$`sYEWE)(HDcIO+>_a^{rfb_TK(1r`Q?VH>TZ4y@s70I3Gf&h*Jc!1**kaZfMq}=R zkhh4|NM6N+&B@w}LYcxAn?6KS1W{8BF9r;E{oW(}x^iD5V`Q>9Mj9cZBWgji1hS|Y z`6#d=s<}wtC|H2~;u9WnMV-WwiFn|Hu{&==tJefd9SgN2nFBk%aMs{3L*)-5M#juu zWdH$;33aa2CR11NQo*Fh0`8RLlv87)Ett}x&fxGvd60^Mt=#k0$?F0Nu<+^oatMF^ zF!(nv-@c{&c3<`l?RWHnTvA#Apy=F68cU*2S)?PTFss=tjy=wnq)B97Fy_fVhHfs1 zUNg^Nt@%ON<=JvYL#&85WwkBSujbuW?n&RtDOP9lPKZww=h~>dC`1*}y5wC7;ofRR z&}4BNf?9WV>kwTD$(!qg2NBh|C{;dT1umZ6K=LFNQ|t$1J#^M=3j_!iFx)e+RRDPt znQwh6<^Ot6^cYLpigOO*Mu$e*>iA5i5X-Fx`l@TU66w;3&2YN~_L<6dxsZ25$|fuJFz&?xS%^I*ap7$DuKE+q=bJt;mBb(;ALoOHx)k&0#SNR5lfVd-v~osOq$xR25RA$(t$yQ`hC#VaThE4IWhP13t8}*+*n> zS*Wd_4Co6QlAf1qrD8d0!qcr$N-7Y-EUhTvX=}q6&!P$X_-ws^A8<5zlYXHcb}!oI zS?A{WZxCzw3|y7B9A|nYhtB5_w=XomUTAV<*|4dTyi53+ z6*YH3Dk;Z2^@?- zo*Ng%BAk##M@#wjaaw0qV~Mfd%F-HBs02HO40JuQc4yh zVixOXQz$zF0o3wdt~=;}R?O7XkU(>iFPAE^~3Pxf4>0^yp30C=% zDG-m`+b$8`0Cs1w8#oMd@qBdR>3#EZ%aIgq)E-;Gb0H5ND6YO&6X&CU@c;6@2;>b1 z%mN6L1t(dE_$Rdc%AdWosU0f1&4LMh1)fc*&q8L&Juk1v;x@5FLaRmjt{iJ#9cHyd z_m+STeFV`7Z;58Kh@|eK$p458kDkaX7CPtShYBG5_}Cu?zy95)=8I)UAOc#- zvLnIhEEtX?Xy=)lD7ZoI+)rc*Y2K;VLYo!*eu^puUSq0ON0ukVeiiFhEpHtMFFA5? ztQHjJf8;4lNWAVA=82%uC@<=i1rq%>wYD$OAf%6QKCA5udK z5LWFwhAa=(KfFvbp4{=P&n=IMSFEFUD-jxS3M1Eoxz}&ctJSYo+g%vduI#x3J6=m< zC4O#^X=0lIoxVdk9YbW-!3b3yPoxt=`&`U$RptHrr(!hq6skBRq_Z-@IF4$B9=Ndi z>udL&3xJtmp&knnwS-UGS3Xu>bdH;Z)fT5Yj^pP`WVo6i1lLZNf^n)q?cns*B=0DC zB8zDHQuHH=cDhmTf!!ch1{wl%GP`tD)ik&pAF)y0A)=6ju47Ww;1^C@X1%Ix4!l5?A3r7gBfIV#DmBVW#dkgY0-iFtq+;$W!t>U?n3}7Ih<~sQY^m>ME_*v7b2}n? z%jETUm4jbzK26ozh4oj@HoaZ!%z+z&pgeI|=U-ZWyftnS?Em!2L=8vL4h1)B@n*sHZ` zh3*SY=JQwQhHS`Hc!C)^$s!7&JD>2ol4#rGy;O%^_8XIJ^qmufo8;J=hS0Q(Q&fm6 znLvfGJg|ck7g7zMelKa=cLGG3NotY3!^Ay>bP)2< zH>~EBabh3E?mP0RT2l}~19*`;hDte;J^yS>kL(5y)#$Cx}eE8=B7#>5u3_FKQ&xbuyp;m_dfZb?FhYT2Pm&{F2Oi(Jr1;$xl z7iLknC+h29^1K7>8y2IZH!elG6O~?C{79RJ@CI=kLjdJdq*7$wE8#!CWmGD##S=15 zUOPHftGbpUMB-+y5s*ay3tmF;HjqLGZ*f_Eg3r7eicKjW6J!|Cj$m=zcf1Yhp_Wl0sBD;6aRt$CN!xIgafoiLvv4RI zCIWC+-?*nvwy_)%gN?jTcjku$S0H3OsKHOK?&*VG4Vu(fb6Vozi^Gz07l|ur6&2e) z0GOBZy#MhxZ;ANcwe%k3IfqoR^|KO789Ap9D` z23pdfXQd7tK{nK)gimDChV%Pr@rM)>`FK;2qv&Wsenh|hLu#XgBH!J4J*eHF%wy@2 zYsnl%cT){Cp(r1uf2!Enr(}95Y>TB%3LKSVb%vcVsg790LspT~@bEK*DR{%YRlG2@ z4yItcQccNP>d90S#^X@rBhAHa>#Ape6AZfD+Z_#B2Cerd@&Ey9Yj~oYWb3}_&qZdT z4NdX8wgzFVLxvTNsEaRgcf_c@tc^ss_TLm!scPWZlLmIsm8xO{9sim>R7G;-0oF*g z5EkF9=VtP(nJaFML8Y0N)%zkud4*GFVs;4dPm|>!#W`PWkh~5bn-Q_f`G+5=(M;l6 zTbuQatEMe4w`86~Akt)11LxD2I97ff5P2?$d@J&A&-*1G|0|KciXunZ&C zOO+*s=7=oB2O$RNkHpKwHzD)HfQXxL|MpYR>kt9d$znYn zIi_)?T<%mB6+eDOuU>pxHT_eGpS>`KZu_3EvO|X->{*+qQcAsZ*D*S{vE)VZ<;>E? z+Ra`8U+NwnpD;91#<)dCM*%a8al6s@=oKt68i3f~)N#+OEa zAA9HS80v>x16|{$m^iPZbih6&jIq|#K^xH9(;|v0lXH-}Ti(^Yl|YJF)mABdRMsvs zs=pbCE&D_K{q_cOx9A!heDa8APQAZ|V@Ja@XNyy~REn>FWOt_!9a|)?%AhQl#c?@! z_nca2XmwLcRz&FybbP$as$TDmesVEkD{THi@9S@)nl)su5M-uKc+$bUMk44A%!fQ! zp`6wUyTeus#&NmwF<~pY&=btOZ|9#$dpg5Ox(v0$EA_>uSf-5axB z@77Jhy(-~{bSh`^l4H8DHd^WS2>*fSsZ%9XWfyH(tVplWRIJZTpUCaR)6{`$J4>NwmFlWtFR+*2L7L3R+ zZ0yAzr@t50*Dp?GS`wnAs?2!Uj=b_On=w~@3#2x=ENX?F6>3JP$dN`HBn}vc7UA& zS`qDC_;8RNZMQ)leH+2pOO4W?<0LRFXeKRw>D9&&e0RIjR^x!t4H#C92Ei{k3A zbJ-@r5y6UR;y2`dU|YAWD5o?u_VUg^rkKtXzk zP`QA%$g*ocdbnEdsQhMFgKQ$-khNQXwB$K{#*^jkzt*$9u5md)&UWS?rO+s<|d(<)zge@{4eoo?QfUXjb(g7|Hd2E%u~$1FD9ky zRQ~0%+@wt9@`G02YH9>ZRk_O?zTXr(C#*bAB0RoWTvG6?fUz^COU-W5 zi$$5iR`xrf&V8$AEaV{*u{PEjR{yvt=)Sqtcf!shdKG+*McwZXfMF{TQb;66pg{l9 zw(!plNMnacL{Bt}brb;>V$Yh3tHRrugC z{m4807{4EE=LH0L^)hwza(47Gcl5sO=;iI`W$Wk_?dYZN0D|{|1rU;yRJqb!IanDD zKJ7CEb}SV0dHi_|i=7pkdubU`^)CTIh+40Vb=3%i>i^aV8| z+%{vcEvom$U5ai9z<)-Ju_=k3=w1$afJLTPVOO2?1$F){DOmG`&Dlxc<0oQQ-j#vN zNn0=pr^)!a17_ZYI|1Yxv(D!4;sdkJ;!Xuj{x=^>2Kh#2HgK*5J|czX4~#+^6um36 zZ0&-A2H!x9Tq?3|&-*?J#(R zc2na`%-rfM>1BL62Xi|T%zi-UFCKJu3Z zMi~D-4noB6*_zRQVN|!-Onf4qc((dmIPnd8?Z!#2a@sBF7&bv1f3U#4U(W%qKi;7Y z?*c+8Ui`dqVK0CiK3s-V)lcmXjd}?m@>*I0$&&Lf-h1mM>$ZhNpPh^WqhGSYUH<}A zxp=sw<;wO?k4EA4txQ#NWG*(+am07=MS!^JI`SlLCo=Azta~F+mAQgq1H*>5+IOBX z-j|!1&fY(N*07TFemiH2@eE>LUKGPMtSNu}6M;v!O9&WU7Va~rED~fR! ziOOm#YQVCjguhV8@lcQj?T-w?N`G_*!Nc~PSjQ%wx)UiysHm!(_Ej9=6ID1vh(0}w zIeixGcuv@VI^7o&dtLZ2{MFG*Jse2*+N?VHD16HRPB)+Y;XEevxh;;0N%V}IL>_q% z#1+e)&)DwBN7-&VRFXsY3yXQ3S!BYKYCTuYWu@%vZq<7v)274Bd5w9^F? zqA_!yod4K6vbzvEPDkokec`i8*ztcWU;+_!eBpY0p-13eF&+JRcw5x=1-mHV=+5lT zdJR^O+t_BBBcGkZj#STr+haPEHAk!w+l|{d<$&iewM;_rjYjazK)C&ly`~MTi`h3f zTm>Sbtz^L;p^K!!sZf2=;4o+}=N}=68`mE$2w;1sj`YqK8 z+8dwJrkwh>-nf-Wh_6N0q5&7ubf0yIVwJ1Itw;D{Wsbe1#n3UwIa$%$V(rR4PI&mQ)S4St&0-E#8=i19+>IK}z$kGhB zz(;{XC%kUxxG!uY_y#g+M&|d4WE8^KH|5uKf9p`%MmIP4gH|vF-vNF#M%qXPTV7v~ zk@Qj3M@`zVDb4o%$Yz#RW#{d!uL3>2{*qh=EK3sNRZyc|EdH*e|LMJ#7(U_DBY~*m z6-aEBDK|$ZT=&5ItZ)6Kue(3wffeO+9L+>EsnwUIHMMc~_r~i(tZxRn(OQro_C*#Z zC9K=`*d_@Bs@-3V0H;P02Ky;@0LF4G*lXraP`x7gb?WI*dQxmMu}r8nDb?3=4zN6D zAS(p+dA#1rPXH1|O7;C57aWNn%M`)AQ|vB`)y@5}E5#0tDa6a1Wj2RYjUidF!oo_z zhf}W-`i9OBC8VXE4W;L$$XNX#svE&9GBGJ$F=Qd@{57B@LpiJ_Uq5W7G`_hI@+RSQ z`*x(a<1$bnY#8DFDsuaRt9%oX1896ZqqvO zLqHAei2>$0)g5GxK#{+NlZL|DV=EX@&;a#?g`}xL@~cUjff0O^R^F~%!UBKii-F!wK-e`a zP2z5UES>^4TAhq+ZilzzgqQ65=f#iZpQ@&f{^p3kyYu!NIO;1_u#v?`f>$a>O@fh= z1k*ILvq+NFJ%Z&8qCVt?2Z#Sz$i!#fp#6+e3h*TFons}RB=vJ|z^Pe-uC2b71_zuU zP$K=VSL2BPRZ#fgriB$JRZ=-RT71#n*~q0E_hWz5G{?#-SKbTo^?Kgkf6AQ@ePmtN zZaiVICdi09kJwcF3EQn5&ABk9KXb4GA0$J)3%NxuP6&P!d*uR{g-F-?k> zB+&*SEsj~-C3BGv36ZfrDv43Ibkrp102-%Nx`V;$@Kw}_)o3P8BwXa;aD?y2%i?Hm zLVJ%W$20rXmQY9Gt*cDt!vwS0iXQp;u{=Vcp}U4fNXGF@y7L@BRtdkb$2+Lr2Jhlc6YN!J$xbjz1g_99W^m{-+XT zHs6&W`0qHO4BsHT;_Aim*GwS&)|CCFa&!d}pD#LAoqC6x&yrw0V`_{u zklB7l%2+5;#a($?BXj&LA)`=YdIBr%G48swi>_T=%hxz8tJmO{y+6mR2^fw}OMo3`JK3$@eRXFX!!D zZGX2BEoe}?(J!@7p&>D^YMU$*CbV_d}4jjz}Pzz!}>*K#0$Zj ziqN|xL;A$zV1T{ot0E+IO@l6a zcf@k&Om4E5WPOupeFTGHgJWl1Gsv?Mc*UyNy=cHPZ~vtsY$%TJ$sIW~`cxbo$u;rG z;SHb-=CHM1XLyluyUed8s#gS^l(_mOap;=GE5+og-gg3`^dh`wb>;nHK!P&)Lp@>V zY4M9p<+OD=fBQt~xOsy27B)d!X7w`GM@KJ}LNk~f!ML@Xg?-hsF4GNi`+d`&`iEta zBM=$#jnwShIXYOMb8W&M1?G>tzHJME&I6dfT!A1+940^aA0(K2?rPN*0WHDI`|3^( zDdRR#=V-y1cwBD4`Jr%&C3CtY)~7;^PcjgTV+_|RH$WC@pc`I-JJBRRfbe6>zuXgFVa0rnT~8<0SIoF zQAt1BSpSNpbHP#FIBmp}%JQ~Gb=x5h6o%+?2J%A0ZSIWz(hxTI%;pXRc7qkcfMF%Q zrkLgv=c<^%XDBsCAQ^<8I}ih+&lN}s*|fVu2iGx?uA-{{UT(l6mUl=1rBzN2a>tkN=4xrFr+kE(&-PK2KqQtuQV-NaL(Jj25bZIN~%d06u?3{OiFA^#rNN zQD;FeKe&cpIA=n0SC{YtlJxqdUfNex7EDId>BIfP;ma7lcrkq5Lz<>7eM|a_C-O+L zQ*L^Wul%cV&*oUXQ~7Sq2o4O@?=2xe{WApz#uj%Q^pt8C{v6A*^h^NU&oHlz4)TWc zk1yEV@~#f^%<2vSY;JqU1~#|8a{fF&WH2q3VEWU9Y8 z$=Cf$RPPTbLq+k`CZlk~exoG`x5y8$aMiPs-XN=i2X3fswjz#`6Q5&Kv5xhJ`L zT&%I%FKG;PT=Zy@0$97T*xoIPirMuB;YNymfQF$BfAPvqDOrvFphZ44aBsk-%w>Ea zLHC|j-A|bQ*Qax%R5k|6dN+?N*KQ1|Gf-F%hA=S~SpOdQ@l!WZoT3XMdVpxPbxGGC z?o__HHLk+IujA}psyutag+y-8a)X*|T||Z9xMmz{Vt4}2m;G;P_!|LsACD)slIh>d zdwivZjBtr0Td+FqDI0c17_cxobuuG3aYrizR^DI892<<~1Nn`(npi9iqi+mVHYJ@b zvq&#Cre6A_ug7>wxz-MLt7+ zBU)2>6{O523!&P6V;92yiL9i5m7fA&#$OL6%mz$=$iaEsOv?|TD_v~nQjjh5Ym z>@H>-@78&JU3P*dLWCV*PIi^Sa4Xl^0085eDzss(UL&Q)6B)0Hj8?X5BgQ#3nC3hr zz8&S=ol5kMU%TQUfF$&J#GDgZpe?MB-_T4X%B~TNxLK9GRTlSso2NEfX6`gdk>R`k zz*6{do$~-ofN|I4@xE8JIa>?BCs+2PZ?SBV_gs^pZkQ%!wYx+)Ft{lHXpb8l;*_y^Cu0Gl+y%v+o>2 zOX$v>pvwb5NW7h4gobXBzHAF^CY*Sgn@_hZ-{X5JY!SykyAGl$F|G>GBY1|ML|b-R zIbQkH!BAP%mof*po&NCCXTBgH^m3xU@l6*2GlhR+3Xk+TeuFvECG#&@4r8m+L1PjR z4mE*VlBbu|ey0Q=v^l0Xr6fqr*Rp{!D_Uc0uHp&YwA;5hb+PBv)a!Y~>*Aap3EWtd zQMq-8un72+gDKgHq-s;vlKhj;dLhA{9uK0JDcKBb&zxW~=#;$NvL+2E78UIPnMz<; z)c7_dEcV0;x8x+|#+f2_Dh!^N=Gj%)C?Y8jS@N6|cb!%bC_I!GVb|xjXsDmjc!zKF ztjJ3*35BC4y2Miwr`^GEx(iI>k__`j;~LC(jg7fqI6zDK#&emx-TFN((paLKJUlxuisyH=bYV{y?b_NcV?fn zI|Z-Bi7}WGrYBcmV^KbrEWF+=ytYXkY-9Hi*6;+KJi!;9V1Os6;@Men5&$8D9%mk? zUXdz*9C3p^&aLdF+`4;cfydJeLTb*m#+i=MQJx(M|Cf6N2P}Ivc40At=r0MvfT9R1yK05X!`TSev zNR1ikCuIwj6?cg%lvKePD_hjTQ7e%vM%2Mz;)?7)s~y6Xyj#KRGTy3c_wicvn^MkV z$vJ<+>`{3l^7SrMC;aCr^F=fhy~6baJlr>t%T8hn^e-j2xVzTFtHbtjc{6NsBHm>h zZ;c;3YfOsn4}2SE|Ff@)@CU-ley1&(A>tfSR|svU3R$Z6zqZ?dl&SxBx-ePo9sd~U zwI0cC?C>%PUlSv-fQc0&@VB}OcPvF0zbO8Y*U@g7ukaPW#-ujYoql4O#=cpGgtaTf z8~JW+N?IW5@aVCYGJsZC{bu&jf zM!&F{Z=4f?lAS!?>Lm!?w31+M2d@Qd$Ahg;1#RLk98WcJmKaCm6m_jX@$Y=F#(Ek* z8l>DVvRRxcmHOf7`l;mNBJTKa;o5L9_8(H? z@xHpy3_X%M@)Xxj#+$BWUg?k#;ICm8D61zbm+vD!X6`|mjl7Fs`56|4jmx5#yE4Tj z5*PNhXCB1~qXB28rmw=NtG6xm=KbGSpZ|ljh85MV+Qwhmq^IlB>K9g>_GE6p7ch#e zc7}An*?d-O%3|B;;@&VQSk_e&=YO(UB04UKmAhhZUwMKU?ycQ?a2QTaZ!~L-BGpv* zIOMK}hNuYmxz;lh_B*EZ_<}6VSwdEAx?`%<$pO!M^vgfbs_sI3%A^xp07V`wcl*N% zbre(k%w7dulbxjNobnstD{_ibN`Zfybj(zo(RTB#1zy-sGeI}ab5_MoV;##x95lvp z95MRH?NzZMR}=9mRiejSHY+&Ww$F%t>p3P8ET1v2#IDg!B}^q+im?)_&ZU!_+=z3; zX&W)uncsC3ZUw(bOq2ZxKt5Ef2=%K$I}ak5?}UI?2k1P$J)d*Vn%QNpM6pflTw-JR zEgGM2O{b}q@qpX@778_HN$$6)4W=v~N#YB!%N8FbQKt4LBJmxROnzk`ZBI^Y#I}Suz4=~FXA7q z7`E5qne*6uE~;RF+(p=$q7&yG$~gI~wT|Hi0!>S<)8I-ArXU`S=9DY@oX;(y&P)uc z$`}!o(3l;YpdojTXNM3fI;6TH)p*Gr_EYB@X&m>UNiRC%_xuvv+$kvDK}x$v8bVWX zgj9Tg9We7|GH=Bk`RTj>y}ECX26LYk+NxhH6?f(JS~lNAw0DQJcD$oa=;vJb<;s}& z9osMV5WLR#8>x6KH1V+;7vB{@ZP>O<@N$=5*VR&Pjkg1L#h7Zeso%*f%wZvu64BtL z_$W+ay%g_odjv1@;hhgnV%OK#=3@R!k#D&S3g?N%pGrF0$1OTEWzjXgFlnka^evgf zVI`C??a9YfL>(>uHodQT8>Y-_sYem`z&Lh=hz0bOn9W3KhuaO)(xAwK&D}wOl`e4X#zwU+bep3|5}Pi|^L|s0bSrVh-*=aH+LwhxwvrCec%l zy9F@n(f4hAG?__qOGj!Gy;MRLM<+_#OoVKA$Tj_rNR>Ia@>R{hR#bsvJ|Blvj2}|@ zKW|d5u}zYafT#e~P*~Ms4_%Y2YF$R(-1$G(RD`6x7&G+F)w5u@&YS9ytFV89=2+fz zKr-67N|eZ?@AW7&XSr>oEwHi+A($CxXGZ!BDy|0h$b`JINJ8)2rX*rrEM z#`VfsF<%eyw|+Y@y*PrRh|_)d@F(F3)=lXvYt#^qq741R^o>-ZROZS!h^KAUl)U1A zH)`c8)AdRilYfvHFX5$F?utOTwxzEK6yEZv!tY@r-3a9QW$t0c)3#}fUh#t%(EWIv z@Y0v7=L0p5-GySfwyp02sC=c9FV2u`7q%~ZVbNLjK?1|F8X4Fd_FU>TR$@F-7 zlsdf~um?FJ7?!%@u06y4Om2}5*-bp|mhAM_o7&)5C3$hac_J!0Av#;e2fB)w?d5~M z4VlNhKDuR>pl4tAQ_r~G^-Ho?=uiryN%9@sYtrg9lZJ-F%$(1=_J{{gO>;dyLejB~ zrdBm>R8d%^`MD6U0om?>-qqKt>~e-qs_zN6mYIHH+{WdMNVyZ2W_GZ6|0bB795{2_ z5|ZZcICvFoxVk`N)$gQ#_Xl~GJ#y;`qsPL2Lvi8_J|q0I$pA%N|FJ*#6IG?`_SNENJv04+Br3}5l8nd&Rn^thNeAvWr(^XWM!ASBYuVRpC6Qyx+8qWiMk`x zveHLHy_X=B%HQl)CuB|H*)SUiV!CL z_c5O@ska;unQz--m%QFpesnyQIY#_G`96K}8$5pqd&Mv|)mr;b=#C^tZ!al=$ksz! zwFuSTvG4flZFScsfANlIu&-EHFfvo-O>L`V88UAeq`6Oxg|I}XJ$?-CG}6SM z+k8%Q`cV5)hlY_utonWy`>ZD;{^%f3a)*$&En$27knqMclK~$@nY6CCzg&<1c{;DO z2O7o6bfF;`se-dt*r9*4J5u;I*B~`DoOBF71LWZ_E8Rrut?+?aip@!PG!Ysiw}RXVrWhU~dKvV7-EYmPaOh5cVQgvg30L53+@ znR{VfqPvt#`4_gWiM74?R)Y1+#+^x_uV>wD8p zM5druDvqc7RjjR30@=zgj(*yOjS0yd+GTFnEX!>E{bYFkIUTQpsN-c%3VG&sXY?LxMN4 zazJ=$bHpKYIHdptZ?Fna<1_7n(A8deyfzm?;ZSkBa3j99*ney3@2+V70Uw$YS17`v z81zR}D$xz^^~kt4(g=E)b?f4~W&C52G|c{VEDBT%xPdPoFNRsKCE9@rVnp8GU#d~M zF}>X;=2k#3#B^t2k@Bh`YDH)95=!YVxiUk(aVi7uo-3 zs34uq<4wqKGsKV6DjXhdh2M;?7Ds5H&NQ&we%6L@!$u+{^ncnNqc)< zwR+*0@N3NY;_4-*70|HI?!*|Hryv0J|9M0phscrYFAkN#z24W~(|4!?QL|*U%vB#I z^kc{SAyCOlEI!K-69k*cTVt%DOFna@csc77ZT8yuBcl4&^@57T_RxD1<7M{SktO=? z{~KoewZ#9>HUpB;cLN*TJ>T8$!GNDAkClesqJS90=)`2S92bU)#N@btL&=k^Kub z9@A1};LjSkn(haqym%=fpLQ}NUGE*7R`EA57%fm=nIx)82j}U+sNU8tl&4 z)BraQvUjNZOziS-<@e1vG$A$c?lkBU@u*66#Rvjnr|e^;Q51wjVS6u|k4Yb%Rcps5+$)|~mP@DbgI=-Oufa@wid3?!-@;1n2eCeG0*6gb_eLWgzhjaa& zUS-UZ_KcyftGSDhNk)>ChYpWkwx^f7XGzIUES9ce7QKIyYdFjDa%<+IeM`c7KuoXs zNC?Z~VOmVLC84SO#h0)&PE#@63C?W#HXU~hpTpnbMNgFp79Tgelr9JT?4o_Qa!c0c z?#?^Z8g`-VmIJ@Hc9mI5H_u13rUM zg=vy&f21nh%TT6O%A@-o1Lw|QG9><8n*o-)bM`7_^${vYXL&G@8RDR9Jq`UBS(JJ- zCH77G&7m!?`6{g{U7K&|-;HA@n8&DVrIr_7w|3h5HN5To+jn(pPj2z7L69GvJSXV| zSB#3J)y768z1pDbL>gnCyMX>1@d3*0RTYBcQvb*g@?xK{SMNW&NJ+=||7_nRtp+;kA-V0)y{c;p{bEa8VfLl%>kw%Nyi;czxHbBr{wl+v!;(M^O4# zJ>%76jcnPV^tkGy$RyFXMf8S`c?mx{^>r2y=j#tnXcBXrc+F?wmBVhOd;=(bkLL95 znJf}-K+0RQh~OOak6(~w&mC#FzSnPkc^x!h^z37THqr4jy&pBfI;uzK?5kVPETFW3>XF60 zb^gucJK@6*ZPB1y;>}|z&JS;d?+ER;T=|2mqvr`H`v!Oe$2c90tJJ$%y>S-nbq^c( z&b}T|%=s(z(7u&?3Tiie!wFwXHM18zer_H=7VvYLH|X-c? zN>mUlLE^X>Z`F=pTREEs9a$>m^}YKv#1hBO%jlrsJhhQHW&_@;=(bPi6~eGx9!SBF z9ETO+nD2=%x6(~fXU!k+O%01TQ6OZ4io(~Rf^QJ#&;ATuetbaqb8x#59Oj&OlwFOK z8~yOTPo$OHB z`;tfJt{IMwm065#GAi~w&F_22hsB#Od>{BlLH6*)={ZQQ1TMX$+}e)i!*YQ%MLF}` zT=a-G&sBiq_|i{GGuiy*gK|e_E+2u7qu+MbA|UREvQIMnQTo?jQ%r5#7zd%gPyLQk zQ7$EpRv%WR`%nlc*3hq-gIdaL;+MleCh0|DqHTPNm)lhiVJlCO=b~YYs1n4durXSB zHn=&V1jukIG3FFSp%TMF5m<**pKL;jCx^46i&Ju6!1$JM7DKOOM=vfZ1Y8WpIHz~m zO*emqs$bd)ESYa|x=ChoW=LHHqb~LdIdsHuO3f$e)Pipa_8f92U(Jk-o*p6-s<)PHU^yUbdq|`+B`hfqjTf6}!6x1Kc`1 zvieMFarY{Jee+uq6}q70;kKTxx`D8y-n?)B9^Kqh)ANh0_D-d1*4sFUKXdYT_&^9GFwyHObfqjGf6z5^?_>D|}5@1)jbx zq1|-psSTygVRcbJcmzuT&v~{UX4gZ}*jpS@Y3uduUX{V-YBoY`;u#i?y2S}cLEj;% zPDk|M^2LKX_mJH2R=t=z^QwR2RD`-G>f;_Bd3_Xp;d62DLpwj5?QpNEJK&KH!^}(< z?Z(SJM1_&D4?MvWwjk537vBI%Z+M1U{KE5jI4oWeRHU(}B9cF!0wThGQeCWIo)x+{ zo`o1a@~w~@t@d3CjkalPDO<$qbMaYSQrbwtzEG{Mb@=y})G&>wxG*I}+{1)Z&Ax9u;+m%^e=vYze`%mj{V{1jNU%T;c`IMc8$BpB=wO-6iXYBCO&;QwiZcIO3**M=r2OungsHfu;DlC%(&Fm ze3bv}5ruZ&!F|o>lD7FxK#T6eD}m#StJKPt<|XyxMekwWa+}T#?&-GaOg}$2$#X*i zZ_Ff(lENK^Cq{edDibb0h6!AOzbM=r$6Do*Qajftsy=!jW;?L zD|{)sbx9ZTBG^7b@L~LMVEe$kn61|lNikdP8Rm6Hhdu_vw9vs?in4eTWM`3Qa`#+f z5Gco2Z<4g`eW8ggRs`uQ>d0R&qA%^R?+T-2v0NfRO;`@e3TxqO-ZIa_wEmP zb6#D?7IcnsT!Giw1)aQ)|Ctl``|&LL9X15daOI>3`Mm5ui779WSZ^a zub_TQte?N#kaB!XT^4gqD2igl>p$JSFB^}U+9YtpoxQKT+V@2)0Xzzpz*`wotkwT)rx zMmylSx?Y5Spe76{=w#%$x=t+U+@0i-|GT&@85po5D^4Ftid^Z5(a-yzPcdQ{Q<%ZSv)S|$7*yZkr_{P!60djgDiI6IW(73 ztf!^N)EMpETRBwC$vYH>9b3yA>83T2=V4UlR>MQZg?tzXD(t>nMa#DjF%C8fu9f4S zR=aTxg184gm1F6YdYK{61i)plH>RBTRPF^_1ZGB4CvN{_EH!T^j0X*x4`h(Kpkj>m zJ+}9s8qbbmt4@D=UVpa|a+J|HppEn$_#y0EfL?((=Y;!ALq6N(sDOu;vD^+%9CIyg z>afBIHqn{wcJu|Gm)aVA`5U$WFF@E$W))*)QVEoOaVWa7yw%$>3AX? zjxQ=qRKTlEOe6oiCyzV#PSao-d>!mlU0hJ{Mf1;VR{!zDpgP~XE7;9*Y2fS;{ZJG6 zw|j5(J0Fbu0Hx!?tFE|s^1R23Ss1+E>@Peqp?O3UeF1J?o0e-IaGCMyLfuxZeZb-J z`v-f%1I0WDrQd4qw?uYb;h#dno4gyKd&67v+f}B=gV4Nw#Wd1x{bv3(sB-K!;(_D+ zJ-&pk`o-fmJFSKnNY8G=?{_^1vTh6ZzeSfM z+8&Qq=+BFal(H}|`m*P$V0`ot$kIJeTZ)wV~*VlZgl-|-*x=O{(V!P za8A_E;(${=#7NxF7`X;gqxNX5`gXh*glsRepNq`#jTHS0W2@zReUZlvs~6l4PUO14 z&&y?;gL6@9{fY})F>4~L7h-OK?>_yUQ5Z=#Db0KM9BnNqt>*#34KW3{Df^#J`1ca?|A?CV5SA@eziYKW%2>0 z$KtCW76hB76mOkYyZJrw`ZSPm>c-Kait-r2B|W6)tzV#M;hofGiJOz`6`TLMp-=JU z%0A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 diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyprj b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyprj index 2a622b3..b52eef2 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyprj +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.cyprj @@ -2232,27 +2232,27 @@ - + - + - + - + @@ -2265,26 +2265,330 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.svd b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.svd index 510c132..9c0eed5 100644 --- a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.svd +++ b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/SCSI2SD.svd @@ -7,7 +7,7 @@ 32 - SCSI_Filtered + SCSI_Glitch_Ctl No description available 0x0 @@ -17,27 +17,48 @@ - SCSI_Filtered_STATUS_REG + SCSI_Glitch_Ctl_CONTROL_REG + No description available + 0x4000647D + 8 + read-write + 0 + 0 + + + + + SCSI_Parity_Error + No description available + 0x0 + + 0 + 0x0 + registers + + + + SCSI_Parity_Error_STATUS_REG No description available - 0x40006467 + 0x4000646B 8 read-write 0 0 - SCSI_Filtered_MASK_REG + SCSI_Parity_Error_MASK_REG No description available - 0x40006487 + 0x4000648B 8 read-write 0 0 - SCSI_Filtered_STATUS_AUX_CTL_REG + SCSI_Parity_Error_STATUS_AUX_CTL_REG No description available - 0x40006497 + 0x4000649B 8 read-write 0 @@ -162,7 +183,7 @@ - SCSI_Parity_Error + SCSI_Filtered No description available 0x0 @@ -172,27 +193,27 @@ - SCSI_Parity_Error_STATUS_REG + SCSI_Filtered_STATUS_REG No description available - 0x4000646E + 0x4000646F 8 read-write 0 0 - SCSI_Parity_Error_MASK_REG + SCSI_Filtered_MASK_REG No description available - 0x4000648E + 0x4000648F 8 read-write 0 0 - SCSI_Parity_Error_STATUS_AUX_CTL_REG + SCSI_Filtered_STATUS_AUX_CTL_REG No description available - 0x4000649E + 0x4000649F 8 read-write 0 @@ -317,7 +338,7 @@ - SCSI_Glitch_Ctl + NOR_CTL No description available 0x0 @@ -327,9 +348,9 @@ - SCSI_Glitch_Ctl_CONTROL_REG + NOR_CTL_CONTROL_REG No description available - 0x40006473 + 0x40006576 8 read-write 0 @@ -350,7 +371,7 @@ SCSI_CTL_PHASE_CONTROL_REG No description available - 0x4000647F + 0x4000647C 8 read-write 0 @@ -359,8 +380,8 @@ - Debug_Timer - No description available + USBFS + USBFS 0x0 0 @@ -369,166 +390,221 @@ - Debug_Timer_GLOBAL_ENABLE - PM.ACT.CFG - 0x400043A3 + CR0 + USB Control 0 Register + 0x40006008 8 read-write 0 0 - en_timer - Enable timer/counters. + DEVICE_ADDRESS + These bits specify the USB device address to which the SIE will respond. This address must be set by firmware and is specified by the USB Host with a SET ADDRESS command during USB enumeration. This value must be programmed by firmware when assigned during enumeration. It is not set automatically by the hardware. 0 - 3 + 6 + read-only + + + USB_ENABLE + This bit enables the device to respond to USB traffic. + 7 + 7 read-write + + + Disabled + Block responds to USB traffic. + 0 + + + Enabled + Block does not respond to USB traffic. + 1 + + - Debug_Timer_CONTROL - TMRx.CFG0 - 0x40004F00 + CR1 + USB Control 1 Register + 0x40006009 8 read-write 0 0 - EN - Enables timer/comparator. + REG_ENABLE + This bit controls the operation of the internal USB regulator. For applications with supply voltages in the 5V range this bit is set high to enable the internal regulator. For device supply voltage in the 3.3V range this bit is cleared to connect the transceiver directly to the supply. 0 0 - read-write - - - MODE - Mode. (0 = Timer; 1 = Comparator) - 1 - 1 - read-write + read-only - Timer - Timer mode. CNT/CMP register holds timer count value. + Disabled + Regulator for 5V is disabled. 0 - Comparator - Comparator mode. CNT/CMP register holds comparator threshold value. + Enabled + Regulator for 5V is enabled. 1 - ONESHOT - Timer stops upon reaching stop condition defined by TMR_CFG bits. Can be restarted by asserting TIMER RESET or disabling and re-enabling block. + ENABLE_LOCK + This bit is set to turn on the automatic frequency locking of the internal oscillator to USB traffic. Unless an external clock is being provided this bit should remain set for proper USB operation. + 1 + 1 + read-write + + + BUS_ACTIVITY + The Bus Activity bit is a stickybit that detects any non-idle USB event that has occurred on the USB bus. Once set to High by the SIE to indicate the bus activity this bit retains its logical High value until firmware clears it. 2 2 read-write - CMP_BUFF - Buffer compare register. Compare register updates only on timer terminal count. + TRIM_OFFSET_MSB + This bit enables trim bit[7]. + 3 + 3 + read-write + + + + + SIE_EP_INT_EN + USB SIE Data Endpoints Interrupt Enable Register + 0x4000600A + 8 + read-write + 0 + 0 + + + EP1_INTR_EN + Enables interrupt for EP1. + 0 + 0 + read-write + + + EP2_INTR_EN + Enables interrupt for EP2. + 1 + 1 + read-write + + + EP3_INTR_EN + Enables interrupt for EP3. + 2 + 2 + read-write + + + EP4_INTR_EN + Enables interrupt for EP4. 3 3 read-write - INV - Invert sense of TIMEREN signal + EP5_INTR_EN + Enables interrupt for EP5. 4 4 read-write - DB - Deadband mode--Deadband phases phi1 and phi2 are outputted on CMP and TC output pins respectively. + EP6_INTR_EN + Enables interrupt for EP6. 5 5 read-write - - - Timer - CMP and TC are output. - 0 - - - Deadband - PHI1 (instead of CMP) and PHI2 (instead of TC) are output. - 1 - - - DEADBAND_PERIOD - Deadband Period + EP7_INTR_EN + Enables interrupt for EP7. 6 + 6 + read-write + + + EP8_INTR_EN + Enables interrupt for EP8. + 7 7 read-write - Debug_Timer_CONTROL2 - TMRx.CFG1 - 0x40004F01 + SIE_EP_INT_SR + SIE Data Endpoint Interrupt Status Register + 0x4000600B 8 read-write 0 0 - IRQ_SEL - Irq selection. (0 = raw interrupts; 1 = status register interrupts) + EP1_INTR + Interrupt status for EP1. 0 0 read-write - FTC - First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled. + EP2_INTR + Interrupt status for EP2. 1 1 read-write - - - Disable_FTC - Disable the single cycle pulse, which signifies the timer is starting. - 0 - - - Enable_FTC - Enable the single cycle pulse, which signifies the timer is starting. - 1 - - - DCOR - Disable Clear on Read (DCOR) of Status Register SR0. + EP3_INTR + Interrupt status for EP3. 2 2 read-write - DBMODE - Deadband mode (asynchronous/synchronous). CMP output pin is also affected when not in deadband mode (CFG0.DEADBAND). + EP4_INTR + Interrupt status for EP4. 3 3 read-write - CLK_BUS_EN_SEL - Digital Global Clock selection. + EP5_INTR + Interrupt status for EP5. 4 + 4 + read-write + + + EP6_INTR + Interrupt status for EP6. + 5 + 5 + read-write + + + EP7_INTR + Interrupt status for EP7. + 6 6 read-write - BUS_CLK_SEL - Bus Clock selection. + EP8_INTR + Interrupt status for EP8. 7 7 read-write @@ -536,408 +612,19 @@ - Debug_Timer_CONTROL3_ - TMRx.CFG2 - 0x40004F02 + SIE_EP1_CNT0 + SIE Endpoint 1 Count0 Register + 0x4000600C 8 read-write 0 0 - TMR_CFG - Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ + DATA_COUNT_MSB + These bits are the 3 MSb bits of an 11-bit counter. The LSb are the Data Count[7:0] bits of the CNT1 register. Refer to the CNT1 register for more information. 0 - 1 - read-write - - - Continuous - Timer runs while EN bit of CFG0 register is set to '1'. - 0 - - - Pulsewidth - Timer runs from positive to negative edge of TIMEREN. - 1 - - - Period - Timer runs from positive to positive edge of TIMEREN. - 2 - - - Irq - Timer runs until IRQ. - 3 - - - - - COD - Clear On Disable (COD). Clears or gates outputs to zero. - 2 - 2 - read-write - - - ROD - Reset On Disable (ROD). Resets internal state of output logic - 3 - 3 - read-write - - - CMP_CFG - Comparator configurations - 4 - 6 - read-write - - - Equal - Compare Equal - 0 - - - Less_than - Compare Less Than - 1 - - - Less_than_or_equal - Compare Less Than or Equal . - 2 - - - Greater - Compare Greater Than . - 3 - - - Greater_than_or_equal - Compare Greater Than or Equal - 4 - - - - - HW_EN - When set Timer Enable controls counting. - 7 - 7 - read-write - - - - - Debug_Timer_PERIOD - TMRx.PER0 - Assigned Period - 0x40004F04 - 16 - read-write - 0 - 0 - - - Debug_Timer_COUNTER - TMRx.CNT_CMP0 - Current Down Counter Value - 0x40004F06 - 16 - read-write - 0 - 0 - - - - - SCSI_Out_Ctl - No description available - 0x0 - - 0 - 0x0 - registers - - - - SCSI_Out_Ctl_CONTROL_REG - No description available - 0x40006476 - 8 - read-write - 0 - 0 - - - - - SCSI_Out_Bits - No description available - 0x0 - - 0 - 0x0 - registers - - - - SCSI_Out_Bits_CONTROL_REG - No description available - 0x4000647D - 8 - read-write - 0 - 0 - - - - - USBFS - USBFS - 0x0 - - 0 - 0x0 - registers - - - - CR0 - USB Control 0 Register - 0x40006008 - 8 - read-write - 0 - 0 - - - DEVICE_ADDRESS - These bits specify the USB device address to which the SIE will respond. This address must be set by firmware and is specified by the USB Host with a SET ADDRESS command during USB enumeration. This value must be programmed by firmware when assigned during enumeration. It is not set automatically by the hardware. - 0 - 6 - read-only - - - USB_ENABLE - This bit enables the device to respond to USB traffic. - 7 - 7 - read-write - - - Disabled - Block responds to USB traffic. - 0 - - - Enabled - Block does not respond to USB traffic. - 1 - - - - - - - CR1 - USB Control 1 Register - 0x40006009 - 8 - read-write - 0 - 0 - - - REG_ENABLE - This bit controls the operation of the internal USB regulator. For applications with supply voltages in the 5V range this bit is set high to enable the internal regulator. For device supply voltage in the 3.3V range this bit is cleared to connect the transceiver directly to the supply. - 0 - 0 - read-only - - - Disabled - Regulator for 5V is disabled. - 0 - - - Enabled - Regulator for 5V is enabled. - 1 - - - - - ENABLE_LOCK - This bit is set to turn on the automatic frequency locking of the internal oscillator to USB traffic. Unless an external clock is being provided this bit should remain set for proper USB operation. - 1 - 1 - read-write - - - BUS_ACTIVITY - The Bus Activity bit is a stickybit that detects any non-idle USB event that has occurred on the USB bus. Once set to High by the SIE to indicate the bus activity this bit retains its logical High value until firmware clears it. - 2 - 2 - read-write - - - TRIM_OFFSET_MSB - This bit enables trim bit[7]. - 3 - 3 - read-write - - - - - SIE_EP_INT_EN - USB SIE Data Endpoints Interrupt Enable Register - 0x4000600A - 8 - read-write - 0 - 0 - - - EP1_INTR_EN - Enables interrupt for EP1. - 0 - 0 - read-write - - - EP2_INTR_EN - Enables interrupt for EP2. - 1 - 1 - read-write - - - EP3_INTR_EN - Enables interrupt for EP3. - 2 - 2 - read-write - - - EP4_INTR_EN - Enables interrupt for EP4. - 3 - 3 - read-write - - - EP5_INTR_EN - Enables interrupt for EP5. - 4 - 4 - read-write - - - EP6_INTR_EN - Enables interrupt for EP6. - 5 - 5 - read-write - - - EP7_INTR_EN - Enables interrupt for EP7. - 6 - 6 - read-write - - - EP8_INTR_EN - Enables interrupt for EP8. - 7 - 7 - read-write - - - - - SIE_EP_INT_SR - SIE Data Endpoint Interrupt Status Register - 0x4000600B - 8 - read-write - 0 - 0 - - - EP1_INTR - Interrupt status for EP1. - 0 - 0 - read-write - - - EP2_INTR - Interrupt status for EP2. - 1 - 1 - read-write - - - EP3_INTR - Interrupt status for EP3. - 2 - 2 - read-write - - - EP4_INTR - Interrupt status for EP4. - 3 - 3 - read-write - - - EP5_INTR - Interrupt status for EP5. - 4 - 4 - read-write - - - EP6_INTR - Interrupt status for EP6. - 5 - 5 - read-write - - - EP7_INTR - Interrupt status for EP7. - 6 - 6 - read-write - - - EP8_INTR - Interrupt status for EP8. - 7 - 7 - read-write - - - - - SIE_EP1_CNT0 - SIE Endpoint 1 Count0 Register - 0x4000600C - 8 - read-write - 0 - 0 - - - DATA_COUNT_MSB - These bits are the 3 MSb bits of an 11-bit counter. The LSb are the Data Count[7:0] bits of the CNT1 register. Refer to the CNT1 register for more information. - 0 - 2 + 2 read-write @@ -2751,182 +2438,516 @@ - ARB_EP4_INT_EN - Arbiter Endpoint 1 Interrupt Enable Register - 0x400060B1 + ARB_EP4_INT_EN + Arbiter Endpoint 1 Interrupt Enable Register + 0x400060B1 + 8 + read-write + 0 + 0 + + + IN_BUF_FULL_EN + IN Endpoint Local Buffer Full + 0 + 0 + read-write + + + DMA_GNT_EN + Endpoint DMA Grant + 1 + 1 + read-write + + + BUF_OVER_EN + Endpoint Buffer Overflow + 2 + 2 + read-write + + + BUF_UNDER_EN + Endpoint Buffer Underflow + 3 + 3 + read-write + + + ERR_INT_EN + Endpoint Error in Transaction Interrupt + 4 + 4 + read-write + + + DMA_TERMIN_EN + Endpoint DMA Terminated Enable + 5 + 5 + read-write + + + + + ARB_EP4_INT_SR + Arbiter Endpoint 1 Interrupt Status Register + 0x400060B2 + 8 + read-write + 0 + 0 + + + IN_BUF_FULL_EN + IN Endpoint Local Buffer Full + 0 + 0 + read-write + + + DMA_GNT_EN + Endpoint DMA Grant + 1 + 1 + read-write + + + BUF_OVER_EN + Endpoint Buffer Overflow + 2 + 2 + read-write + + + BUF_UNDER_EN + Endpoint Buffer Underflow + 3 + 3 + read-write + + + ERR_INT_EN + Endpoint Error in Transaction Interrupt + 4 + 4 + read-write + + + DMA_TERMIN_EN + Endpoint DMA Terminated Enable + 5 + 5 + read-write + + + + + ARB_RW4_WA + Arbiter Endpoint 1 Write Address LSB Register + 0x400060B4 + 8 + read-write + 0 + 0 + + + WA8 + Write Address for EP. + 0 + 7 + read-write + + + + + ARB_RW4_WA_MSB + Arbiter Endpoint 1 Write Address MSB Register + 0x400060B5 + 8 + read-write + 0 + 0 + + + WA9 + Write Address for EP MSB. + 0 + 0 + read-write + + + + + ARB_RW4_RA + Arbiter Endpoint 1 Read Address LSB Register + 0x400060B6 + 8 + read-write + 0 + 0 + + + RA8 + Read Address for EP MSB. + 0 + 7 + read-write + + + + + ARB_RW4_RA_MSB + Arbiter Endpoint 1 Read Address MSB Register + 0x400060B7 + 8 + read-write + 0 + 0 + + + RA9 + Read Address for EP MSB. + 0 + 0 + read-write + + + + + + + SCSI_Out_Ctl + No description available + 0x0 + + 0 + 0x0 + registers + + + + SCSI_Out_Ctl_CONTROL_REG + No description available + 0x40006473 + 8 + read-write + 0 + 0 + + + + + Debug_Timer + No description available + 0x0 + + 0 + 0x0 + registers + + + + Debug_Timer_GLOBAL_ENABLE + PM.ACT.CFG + 0x400043A3 + 8 + read-write + 0 + 0 + + + en_timer + Enable timer/counters. + 0 + 3 + read-write + + + + + Debug_Timer_CONTROL + TMRx.CFG0 + 0x40004F00 8 read-write 0 0 - IN_BUF_FULL_EN - IN Endpoint Local Buffer Full + EN + Enables timer/comparator. 0 0 read-write - DMA_GNT_EN - Endpoint DMA Grant + MODE + Mode. (0 = Timer; 1 = Comparator) 1 1 read-write + + + Timer + Timer mode. CNT/CMP register holds timer count value. + 0 + + + Comparator + Comparator mode. CNT/CMP register holds comparator threshold value. + 1 + + - BUF_OVER_EN - Endpoint Buffer Overflow + ONESHOT + Timer stops upon reaching stop condition defined by TMR_CFG bits. Can be restarted by asserting TIMER RESET or disabling and re-enabling block. 2 2 read-write - BUF_UNDER_EN - Endpoint Buffer Underflow + CMP_BUFF + Buffer compare register. Compare register updates only on timer terminal count. 3 3 read-write - ERR_INT_EN - Endpoint Error in Transaction Interrupt + INV + Invert sense of TIMEREN signal 4 4 read-write - DMA_TERMIN_EN - Endpoint DMA Terminated Enable + DB + Deadband mode--Deadband phases phi1 and phi2 are outputted on CMP and TC output pins respectively. 5 5 read-write + + + Timer + CMP and TC are output. + 0 + + + Deadband + PHI1 (instead of CMP) and PHI2 (instead of TC) are output. + 1 + + + + + DEADBAND_PERIOD + Deadband Period + 6 + 7 + read-write - ARB_EP4_INT_SR - Arbiter Endpoint 1 Interrupt Status Register - 0x400060B2 + Debug_Timer_CONTROL2 + TMRx.CFG1 + 0x40004F01 8 read-write 0 0 - IN_BUF_FULL_EN - IN Endpoint Local Buffer Full + IRQ_SEL + Irq selection. (0 = raw interrupts; 1 = status register interrupts) 0 0 read-write - DMA_GNT_EN - Endpoint DMA Grant + FTC + First Terminal Count (FTC). Setting this bit forces a single pulse on the TC pin when first enabled. 1 1 read-write + + + Disable_FTC + Disable the single cycle pulse, which signifies the timer is starting. + 0 + + + Enable_FTC + Enable the single cycle pulse, which signifies the timer is starting. + 1 + + - BUF_OVER_EN - Endpoint Buffer Overflow + DCOR + Disable Clear on Read (DCOR) of Status Register SR0. 2 2 read-write - BUF_UNDER_EN - Endpoint Buffer Underflow + DBMODE + Deadband mode (asynchronous/synchronous). CMP output pin is also affected when not in deadband mode (CFG0.DEADBAND). 3 3 read-write - ERR_INT_EN - Endpoint Error in Transaction Interrupt + CLK_BUS_EN_SEL + Digital Global Clock selection. 4 - 4 + 6 read-write - DMA_TERMIN_EN - Endpoint DMA Terminated Enable - 5 - 5 + BUS_CLK_SEL + Bus Clock selection. + 7 + 7 read-write - ARB_RW4_WA - Arbiter Endpoint 1 Write Address LSB Register - 0x400060B4 + Debug_Timer_CONTROL3_ + TMRx.CFG2 + 0x40004F02 8 read-write 0 0 - WA8 - Write Address for EP. + TMR_CFG + Timer configuration (MODE = 0): 000 = Continuous; 001 = Pulsewidth; 010 = Period; 011 = Stop on IRQ 0 + 1 + read-write + + + Continuous + Timer runs while EN bit of CFG0 register is set to '1'. + 0 + + + Pulsewidth + Timer runs from positive to negative edge of TIMEREN. + 1 + + + Period + Timer runs from positive to positive edge of TIMEREN. + 2 + + + Irq + Timer runs until IRQ. + 3 + + + + + COD + Clear On Disable (COD). Clears or gates outputs to zero. + 2 + 2 + read-write + + + ROD + Reset On Disable (ROD). Resets internal state of output logic + 3 + 3 + read-write + + + CMP_CFG + Comparator configurations + 4 + 6 + read-write + + + Equal + Compare Equal + 0 + + + Less_than + Compare Less Than + 1 + + + Less_than_or_equal + Compare Less Than or Equal . + 2 + + + Greater + Compare Greater Than . + 3 + + + Greater_than_or_equal + Compare Greater Than or Equal + 4 + + + + + HW_EN + When set Timer Enable controls counting. + 7 7 read-write - ARB_RW4_WA_MSB - Arbiter Endpoint 1 Write Address MSB Register - 0x400060B5 - 8 + Debug_Timer_PERIOD + TMRx.PER0 - Assigned Period + 0x40004F04 + 16 read-write 0 0 - - - WA9 - Write Address for EP MSB. - 0 - 0 - read-write - - - ARB_RW4_RA - Arbiter Endpoint 1 Read Address LSB Register - 0x400060B6 - 8 + Debug_Timer_COUNTER + TMRx.CNT_CMP0 - Current Down Counter Value + 0x40004F06 + 16 read-write 0 0 - - - RA8 - Read Address for EP MSB. - 0 - 7 - read-write - - + + + + SCSI_Out_Bits + No description available + 0x0 + + 0 + 0x0 + registers + + - ARB_RW4_RA_MSB - Arbiter Endpoint 1 Read Address MSB Register - 0x400060B7 + SCSI_Out_Bits_CONTROL_REG + No description available + 0x40006479 8 read-write 0 0 - - - RA9 - Read Address for EP MSB. - 0 - 0 - read-write - - diff --git a/software/SCSI2SD/v5.2/SCSI2SD.cydsn/TopDesign/TopDesign.cysch b/software/SCSI2SD/v5.2/SCSI2SD.cydsn/TopDesign/TopDesign.cysch index fbbca47b8bf1b59574a88728b7dd15b7103061c7..e4871d03ad2e11a13e192ef43e78d6cde392a69e 100644 GIT binary patch literal 339357 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 B;Hdxr literal 325059 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%0AK)hr7yF);Rt+xK3S}%SxF}Aq>l3K5 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