Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/powerpc/include/booke Added SPI register definitions.



details:   https://anonhg.NetBSD.org/src/rev/6d9430f53ef9
branches:  trunk
changeset: 805286:6d9430f53ef9
user:      nonaka <nonaka%NetBSD.org@localhost>
date:      Sat Dec 27 17:58:21 2014 +0000

description:
Added SPI register definitions.

diffstat:

 sys/arch/powerpc/include/booke/e500reg.h |  57 +++++++++++++++++++++++++++++++-
 1 files changed, 56 insertions(+), 1 deletions(-)

diffs (71 lines):

diff -r fb04e8575e3b -r 6d9430f53ef9 sys/arch/powerpc/include/booke/e500reg.h
--- a/sys/arch/powerpc/include/booke/e500reg.h  Sat Dec 27 17:55:05 2014 +0000
+++ b/sys/arch/powerpc/include/booke/e500reg.h  Sat Dec 27 17:58:21 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: e500reg.h,v 1.15 2014/12/27 16:19:33 nonaka Exp $      */
+/*     $NetBSD: e500reg.h,v 1.16 2014/12/27 17:58:21 nonaka Exp $      */
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -313,6 +313,61 @@
 #define        SPI_BASE        0x7000  /* MPC8536 */
 #define        SPI_SIZE        0x1000
 
+#ifdef SPI_PRIVATE
+#define        SPMODE          0x000   /* mode register */
+#define        SPMODE_EN       __PPCBIT(0)     /* Enable eSPI: 0=disabled, 1=enabled */
+#define        SPMODE_LOOP     __PPCBIT(1)     /* Loop mode: 0=normal, 1=loopback */
+#define        SPMODE_OD       __PPCBIT(2)     /* P1023: Open drain mode: 0=actively driven, 1=open drain */
+#define        SPMODE_HO_ADJ   __PPCBITS(13,15) /* Data output hold adjustment */
+#define        SPMODE_TXTHR    __PPCBITS(18,23) /* Tx FIFO Threshold: 1-32 */
+#define        SPMODE_RXTHR    __PPCBITS(27,31) /* Rx FIFO threshold: 0-31 */
+#define        SPIE            0x004   /* event register */
+#define        SPIE_RXCNT      __PPCBITS(2,7)  /* current number of full Rx FIFO bytes */
+#define        SPIE_TXCNT      __PPCBITS(10,15) /* current number of full Tx FIFO bytes */
+#define        SPIE_TXE        __PPCBIT(16)    /* Tx FIFO is empty */
+#define        SPIE_DON        __PPCBIT(17)    /* Last character was transmitted */
+#define        SPIE_RXT        __PPCBIT(18)    /* Rx FIFO has more than RXTHR bytes */
+#define        SPIE_RXF        __PPCBIT(19)    /* Rx FIFO is full */
+#define        SPIE_TXT        __PPCBIT(20)    /* Tx FIFO has less than TXTHR bytes */
+#define        SPIE_RNE        __PPCBIT(22)    /* Not empty: 0=empty, 1=not empty */
+#define        SPIE_TNF        __PPCBIT(23)    /* Tx FIFO not full: 0=full, 1=not full */
+#define        SPIM            0x008   /* mask register */
+#define        SPIM_TXE        __PPCBIT(16)
+#define        SPIM_DON        __PPCBIT(17)
+#define        SPIM_RXT        __PPCBIT(18)
+#define        SPIM_RXF        __PPCBIT(19)
+#define        SPIM_TXT        __PPCBIT(20)
+#define        SPIM_RNE        __PPCBIT(22)
+#define        SPIM_TNF        __PPCBIT(23)
+#define        SPCOM           0x00c   /* command register */
+#define        SPCOM_CS        __PPCBITS(0,1)  /* Chip select: 0=CS0, 1=CS1, 2=CS2(P1025), 3=CS3(P1025) */
+#define        SPCOM_RXDELAY   __PPCBIT(2)     /* 0=normal eSPI operation */
+#define        SPCOM_DO        __PPCBIT(3)     /* 0=normal eSPI operation, 1=Winbond dual output read */
+#define        SPCOM_TO        __PPCBIT(4)     /* Transmit only: 0=normal operation, 1=No reception is done for the frame */
+#define        SPCOM_HLD       __PPCBIT(5)     /* 0=normal operation, 1=Mask first generated SPI_CLK */
+#define        SPCOM_LS        __PPCBIT(6)     /* P1023: Late sample: 0=normal operation, 1=Late data sample */
+#define        SPCOM_RXSKIP    __PPCBITS(8,15) /* if RxSKIP != 0: Number of characters skipped for reception from frame start */
+#define        SPCOM_TRANLEN   __PPCBITS(16,31) /* Transaction length */
+#define        SPITF           0x010   /* transmit FIFO access register */
+#define        SPIRF           0x014   /* receive FIFO access register */
+#define        SPMODE0         0x020   /* CS0 mode register */
+#define        SPMODE1         0x024   /* CS1 mode register */
+#define        SPMODE2         0x028   /* CS2 mode register (P1025) */
+#define        SPMODE3         0x02c   /* CS3 mode register (P1025) */
+#define        SPMODEn(n)      (0x020+(n)*4)
+#define        SPMODEn_CI      __PPCBIT(0)     /* Clock invert: 0=inactive state of SPI_CLK is low, 1=high */
+#define        SPMODEn_CP      __PPCBIT(1)     /* Clock phase: SPI_CLK starts toggling at the middle of the data transfer, 1=beginning */
+#define        SPMODEn_REV     __PPCBIT(2)     /* Reverse data mode: 0=LSB of the character sent and received first, 1=MSB */
+#define        SPMODEn_DIV16   __PPCBIT(3)     /* Devide by 16: 0=System clock, 1=System clock/16 */
+#define        SPMODEn_PM      __PPCBITS(4,7)  /* Prescale modulus select */
+#define        SPMODEn_ODD     __PPCBIT(8)     /* 0=Even division, 1=Odd dividion */
+#define        SPMODEn_POL     __PPCBIT(11)    /* CS polarity: 0=Asserted high/Negated low, 1=Asserted low/Negated high */
+#define        SPMODEn_LEN     __PPCBITS(12,15) /* Character length in bits per character */
+#define        SPMODEn_CSBEF   __PPCBITS(16,19) /* CS assertion time in bits before frame start */
+#define        SPMODEn_CSAFT   __PPCBITS(20,23) /* CS assertion time in bits after frame end */
+#define        SPMODEn_CSCG    __PPCBITS(24,28) /* Clock gap */
+#endif
+
 #define        SATA1_BASE      0x18000 /* MPC8536 */
 #define        SATA2_BASE      0x19000 /* MPC8536 */
 #define        SATA_SIZE       0x01000



Home | Main Index | Thread Index | Old Index