Home | History | Annotate | Line # | Download | only in ic
      1  1.1  brad /*	$NetBSD: sc16is7xxreg.h,v 1.1 2025/10/24 23:16:11 brad Exp $	*/
      2  1.1  brad 
      3  1.1  brad /*
      4  1.1  brad  * Copyright (c) 2025 Brad Spencer <brad (at) anduin.eldar.org>
      5  1.1  brad  *
      6  1.1  brad  * Permission to use, copy, modify, and distribute this software for any
      7  1.1  brad  * purpose with or without fee is hereby granted, provided that the above
      8  1.1  brad  * copyright notice and this permission notice appear in all copies.
      9  1.1  brad  *
     10  1.1  brad  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     11  1.1  brad  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     12  1.1  brad  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     13  1.1  brad  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     14  1.1  brad  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     15  1.1  brad  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     16  1.1  brad  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     17  1.1  brad  */
     18  1.1  brad 
     19  1.1  brad #ifndef _DEV_IC_SC16IS7XXREG_H_
     20  1.1  brad #define _DEV_IC_SC16IS7XXREG_H_
     21  1.1  brad 
     22  1.1  brad #define SC16IS7XX_LOW_I2C_ADDR	0x48
     23  1.1  brad #define SC16IS7XX_HIGH_I2C_ADDR	0x57
     24  1.1  brad 
     25  1.1  brad /* Available generally */
     26  1.1  brad #define SC16IS7XX_REGISTER_RHR	0x00
     27  1.1  brad #define SC16IS7XX_REGISTER_THR	0x00
     28  1.1  brad #define SC16IS7XX_REGISTER_IER	0x01
     29  1.1  brad #define SC16IS7XX_REGISTER_FCR	0x02
     30  1.1  brad #define SC16IS7XX_REGISTER_IIR	0x02
     31  1.1  brad #define SC16IS7XX_REGISTER_LCR	0x03
     32  1.1  brad #define SC16IS7XX_REGISTER_MCR	0x04
     33  1.1  brad #define SC16IS7XX_REGISTER_LSR	0x05
     34  1.1  brad #define SC16IS7XX_REGISTER_MSR	0x06
     35  1.1  brad #define SC16IS7XX_REGISTER_SPR	0x07
     36  1.1  brad #define SC16IS7XX_REGISTER_TCR	0x06	/* Accessable when MCR[2] = 1 and
     37  1.1  brad 					 * EFR[4] = 1 */
     38  1.1  brad #define SC16IS7XX_REGISTER_TLR	0x07	/* Accessable when MCR[2] = 1 and
     39  1.1  brad 					 * EFR[4] = 1 */
     40  1.1  brad #define SC16IS7XX_REGISTER_TXLVL	0x08
     41  1.1  brad #define SC16IS7XX_REGISTER_RXLVL	0x09
     42  1.1  brad #define SC16IS7XX_REGISTER_IODIR	0x0a	/* Only on
     43  1.1  brad 						 * SC16IS75[02]/SC16IS76[02] */
     44  1.1  brad #define SC16IS7XX_REGISTER_IOSTATE	0x0b	/* Only on
     45  1.1  brad 						 * SC16IS75[02]/SC16IS76[02] */
     46  1.1  brad #define SC16IS7XX_REGISTER_IOENA	0x0c	/* Only on
     47  1.1  brad 						 * SC16IS75[02]/SC16IS76[02] */
     48  1.1  brad #define SC16IS7XX_REGISTER_RESERVED	0x0d
     49  1.1  brad #define SC16IS7XX_REGISTER_IOCONTROL	0x0e	/* Only on
     50  1.1  brad 						 * SC16IS75[02]/SC16IS76[02],
     51  1.1  brad 						 * except for the SRESET bit */
     52  1.1  brad #define		SC16IS7XX_IOCONTROL_7_4		0x02
     53  1.1  brad #define		SC16IS7XX_IOCONTROL_3_0		0x04
     54  1.1  brad #define		SC16IS7XX_IOCONTROL_SRESET	0x08
     55  1.1  brad #define SC16IS7XX_REGISTER_EFCR		0x0f
     56  1.1  brad 
     57  1.1  brad /* IODIR, IOSTATE, IOENA, and IOCONTROL apply to both channels
     58  1.1  brad  * on the SCIS16752 and SCIS16762
     59  1.1  brad  */
     60  1.1  brad 
     61  1.1  brad /* Special register set.  Available when LCR[7] = 1 and not 0xBF */
     62  1.1  brad #define SC16IS7XX_REGISTER_DLL		0x00
     63  1.1  brad #define SC16IS7XX_REGISTER_DLH		0x01
     64  1.1  brad 
     65  1.1  brad /* Enhanced register set.  Available when LCR = 0xBF */
     66  1.1  brad #define SC16IS7XX_REGISTER_EFR		0x02
     67  1.1  brad #define SC16IS7XX_REGISTER_XON1		0x04
     68  1.1  brad #define SC16IS7XX_REGISTER_XON2		0x05
     69  1.1  brad #define SC16IS7XX_REGISTER_XOFF1	0x06
     70  1.1  brad #define SC16IS7XX_REGISTER_XOFF2	0x07
     71  1.1  brad 
     72  1.1  brad #endif
     73