| /****************************************************************************** |
| * Filename: hw_aux_spim_h |
| * Revised: 2018-05-14 12:24:52 +0200 (Mon, 14 May 2018) |
| * Revision: 51990 |
| * |
| * Copyright (c) 2015 - 2017, Texas Instruments Incorporated |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * |
| * 1) Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * |
| * 2) Redistributions in binary form must reproduce the above copyright notice, |
| * this list of conditions and the following disclaimer in the documentation |
| * and/or other materials provided with the distribution. |
| * |
| * 3) Neither the name of the ORGANIZATION nor the names of its contributors may |
| * be used to endorse or promote products derived from this software without |
| * specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGE. |
| * |
| ******************************************************************************/ |
| |
| #ifndef __HW_AUX_SPIM_H__ |
| #define __HW_AUX_SPIM_H__ |
| |
| //***************************************************************************** |
| // |
| // This section defines the register offsets of |
| // AUX_SPIM component |
| // |
| //***************************************************************************** |
| // SPI Master Configuration |
| #define AUX_SPIM_O_SPIMCFG 0x00000000 |
| |
| // MISO Configuration |
| #define AUX_SPIM_O_MISOCFG 0x00000004 |
| |
| // MOSI Control |
| #define AUX_SPIM_O_MOSICTL 0x00000008 |
| |
| // Transmit 8 Bit |
| #define AUX_SPIM_O_TX8 0x0000000C |
| |
| // Transmit 16 Bit |
| #define AUX_SPIM_O_TX16 0x00000010 |
| |
| // Receive 8 Bit |
| #define AUX_SPIM_O_RX8 0x00000014 |
| |
| // Receive 16 Bit |
| #define AUX_SPIM_O_RX16 0x00000018 |
| |
| // SCLK Idle |
| #define AUX_SPIM_O_SCLKIDLE 0x0000001C |
| |
| // Data Idle |
| #define AUX_SPIM_O_DATAIDLE 0x00000020 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_SPIMCFG |
| // |
| //***************************************************************************** |
| // Field: [7:2] DIV |
| // |
| // SCLK divider. |
| // |
| // Peripheral clock frequency division gives the SCLK clock frequency. The |
| // division factor equals (2 * (DIV+1)): |
| // |
| // 0x00: Divide by 2. |
| // 0x01: Divide by 4. |
| // 0x02: Divide by 6. |
| // ... |
| // 0x3F: Divide by 128. |
| #define AUX_SPIM_SPIMCFG_DIV_W 6 |
| #define AUX_SPIM_SPIMCFG_DIV_M 0x000000FC |
| #define AUX_SPIM_SPIMCFG_DIV_S 2 |
| |
| // Field: [1] PHA |
| // |
| // Phase of the MOSI and MISO data signals. |
| // |
| // 0: Sample MISO at leading (odd) edges and shift MOSI at trailing (even) |
| // edges of SCLK. |
| // 1: Sample MISO at trailing (even) edges and shift MOSI at leading (odd) |
| // edges of SCLK. |
| #define AUX_SPIM_SPIMCFG_PHA 0x00000002 |
| #define AUX_SPIM_SPIMCFG_PHA_BITN 1 |
| #define AUX_SPIM_SPIMCFG_PHA_M 0x00000002 |
| #define AUX_SPIM_SPIMCFG_PHA_S 1 |
| |
| // Field: [0] POL |
| // |
| // Polarity of the SCLK signal. |
| // |
| // 0: SCLK is low when idle, first clock edge rises. |
| // 1: SCLK is high when idle, first clock edge falls. |
| #define AUX_SPIM_SPIMCFG_POL 0x00000001 |
| #define AUX_SPIM_SPIMCFG_POL_BITN 0 |
| #define AUX_SPIM_SPIMCFG_POL_M 0x00000001 |
| #define AUX_SPIM_SPIMCFG_POL_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_MISOCFG |
| // |
| //***************************************************************************** |
| // Field: [4:0] AUXIO |
| // |
| // AUXIO to MISO mux. |
| // |
| // Select the AUXIO pin that connects to MISO. |
| #define AUX_SPIM_MISOCFG_AUXIO_W 5 |
| #define AUX_SPIM_MISOCFG_AUXIO_M 0x0000001F |
| #define AUX_SPIM_MISOCFG_AUXIO_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_MOSICTL |
| // |
| //***************************************************************************** |
| // Field: [0] VALUE |
| // |
| // MOSI level control. |
| // |
| // 0: Set MOSI low. |
| // 1: Set MOSI high. |
| #define AUX_SPIM_MOSICTL_VALUE 0x00000001 |
| #define AUX_SPIM_MOSICTL_VALUE_BITN 0 |
| #define AUX_SPIM_MOSICTL_VALUE_M 0x00000001 |
| #define AUX_SPIM_MOSICTL_VALUE_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_TX8 |
| // |
| //***************************************************************************** |
| // Field: [7:0] DATA |
| // |
| // 8 bit data transfer. |
| // |
| // Write DATA to start transfer, MSB first. When transfer completes, MOSI stays |
| // at the value of LSB. |
| #define AUX_SPIM_TX8_DATA_W 8 |
| #define AUX_SPIM_TX8_DATA_M 0x000000FF |
| #define AUX_SPIM_TX8_DATA_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_TX16 |
| // |
| //***************************************************************************** |
| // Field: [15:0] DATA |
| // |
| // 16 bit data transfer. |
| // |
| // Write DATA to start transfer, MSB first. When transfer completes, MOSI stays |
| // at the value of LSB. |
| #define AUX_SPIM_TX16_DATA_W 16 |
| #define AUX_SPIM_TX16_DATA_M 0x0000FFFF |
| #define AUX_SPIM_TX16_DATA_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_RX8 |
| // |
| //***************************************************************************** |
| // Field: [7:0] DATA |
| // |
| // Latest 8 bits received on MISO. |
| #define AUX_SPIM_RX8_DATA_W 8 |
| #define AUX_SPIM_RX8_DATA_M 0x000000FF |
| #define AUX_SPIM_RX8_DATA_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_RX16 |
| // |
| //***************************************************************************** |
| // Field: [15:0] DATA |
| // |
| // Latest 16 bits received on MISO. |
| #define AUX_SPIM_RX16_DATA_W 16 |
| #define AUX_SPIM_RX16_DATA_M 0x0000FFFF |
| #define AUX_SPIM_RX16_DATA_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_SCLKIDLE |
| // |
| //***************************************************************************** |
| // Field: [0] STAT |
| // |
| // Wait for SCLK idle. |
| // |
| // Read operation stalls until SCLK is idle with no remaining clock edges. Read |
| // then returns 1. |
| // |
| // AUX_SCE can use this to control CS deassertion. |
| #define AUX_SPIM_SCLKIDLE_STAT 0x00000001 |
| #define AUX_SPIM_SCLKIDLE_STAT_BITN 0 |
| #define AUX_SPIM_SCLKIDLE_STAT_M 0x00000001 |
| #define AUX_SPIM_SCLKIDLE_STAT_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AUX_SPIM_O_DATAIDLE |
| // |
| //***************************************************************************** |
| // Field: [0] STAT |
| // |
| // Wait for data idle. |
| // |
| // Read operation stalls until the SCLK period associated with LSB transmission |
| // completes. Read then returns 1. |
| // |
| // AUX_SCE can use this to control CS deassertion. |
| #define AUX_SPIM_DATAIDLE_STAT 0x00000001 |
| #define AUX_SPIM_DATAIDLE_STAT_BITN 0 |
| #define AUX_SPIM_DATAIDLE_STAT_M 0x00000001 |
| #define AUX_SPIM_DATAIDLE_STAT_S 0 |
| |
| |
| #endif // __AUX_SPIM__ |