Home | History | Annotate | Line # | Download | only in acpi
      1 /* $NetBSD: qcomgpioreg.h,v 1.3 2024/12/17 22:05:11 riastradh Exp $ */
      2 /*
      3  * Copyright (c) 2022 Mark Kettenis <kettenis (at) openbsd.org>
      4  *
      5  * Permission to use, copy, modify, and distribute this software for any
      6  * purpose with or without fee is hereby granted, provided that the above
      7  * copyright notice and this permission notice appear in all copies.
      8  *
      9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     16  */
     17 
     18 #ifndef QCOMGPIOREG_H
     19 #define QCOMGPIOREG_H
     20 
     21 #include <sys/cdefs.h>
     22 
     23 #define _TLMM_GPIO_PIN_OFFSET(pin, reg)	((pin) * 0x1000 + (reg))
     24 
     25 #define TLMM_GPIO_CTL(pin)		_TLMM_GPIO_PIN_OFFSET(pin, 0x0)
     26 #define  TLMM_GPIO_CTL_OE			__BIT(9)
     27 #define  TLMM_GPIO_CTL_MUX			__BITS(5,2)
     28 #define   TLMM_GPIO_CTL_MUX_GPIO			0
     29 
     30 #define TLMM_GPIO_IN_OUT(pin)		_TLMM_GPIO_PIN_OFFSET(pin, 0x4)
     31 #define  TLMM_GPIO_IN_OUT_GPIO_IN		__BIT(0)
     32 #define  TLMM_GPIO_IN_OUT_GPIO_OUT		__BIT(1)
     33 
     34 #define TLMM_GPIO_INTR_CFG(pin)		_TLMM_GPIO_PIN_OFFSET(pin, 0x8)
     35 #define  TLMM_GPIO_INTR_CFG_TARGET_PROC_MASK	__BITS(7,5)
     36 #define   TLMM_GPIO_INTR_CFG_TARGET_PROC_RPM		3
     37 #define  TLMM_GPIO_INTR_CFG_INTR_RAW_STATUS_EN	__BIT(4)
     38 #define  TLMM_GPIO_INTR_CFG_INTR_DECT_CTL_MASK	__BITS(3,2)
     39 #define   TLMM_GPIO_INTR_CFG_INTR_DECT_CTL_LEVEL	0
     40 #define   TLMM_GPIO_INTR_CFG_INTR_DECT_CTL_EDGE_POS	1
     41 #define   TLMM_GPIO_INTR_CFG_INTR_DECT_CTL_EDGE_NEG	2
     42 #define   TLMM_GPIO_INTR_CFG_INTR_DECT_CTL_EDGE_BOTH	3
     43 #define  TLMM_GPIO_INTR_CFG_INTR_POL_CTL	__BIT(1)
     44 #define  TLMM_GPIO_INTR_CFG_INTR_ENABLE		__BIT(0)
     45 
     46 #define TLMM_GPIO_INTR_STATUS(pin)	_TLMM_GPIO_PIN_OFFSET(pin, 0xc)
     47 #define  TLMM_GPIO_INTR_STATUS_INTR_STATUS	__BIT(0)
     48 
     49 #endif /* !QCOMGPIOREG_H */
     50