1 /*
2  * Copyright (C) Cvitek Co., Ltd. 2019-2020. All rights reserved.
3  *
4  * File Name: pinctrl.h
5  * Description:
6  */
7 
8 #ifndef __PINCTRL_CV181X_H__
9 #define __PINCTRL_CV181X_H__
10 
11 #include "cv181x_pinlist_swconfig.h"
12 #include "cv181x_reg_fmux_gpio.h"
13 #include "drv_ioremap.h"
14 
15 #define  PAD_MIPI_TXM4__MIPI_TXM4 0
16 #define  PAD_MIPI_TXP4__MIPI_TXP4 0
17 #define  PAD_MIPI_TXM3__MIPI_TXM3 0
18 #define  PAD_MIPI_TXP3__MIPI_TXP3 0
19 #define  PAD_MIPI_TXM2__MIPI_TXM2 0
20 #define  PAD_MIPI_TXP2__MIPI_TXP2 0
21 #define  PAD_MIPI_TXM1__MIPI_TXM1 0
22 #define  PAD_MIPI_TXP1__MIPI_TXP1 0
23 #define  PAD_MIPI_TXM0__MIPI_TXM0 0
24 #define  PAD_MIPI_TXP0__MIPI_TXP0 0
25 
26 #define PINMUX_BASE (uintptr_t)DRV_IOREMAP((void *)0x3001000, 0x1000)
27 
28 #define PINMUX_MASK(PIN_NAME) FMUX_GPIO_FUNCSEL_##PIN_NAME##_MASK
29 #define PINMUX_OFFSET(PIN_NAME) FMUX_GPIO_FUNCSEL_##PIN_NAME##_OFFSET
30 #define PINMUX_VALUE(PIN_NAME, FUNC_NAME) PIN_NAME##__##FUNC_NAME
31 #define PINMUX_CONFIG(PIN_NAME, FUNC_NAME) \
32         mmio_clrsetbits_32(PINMUX_BASE + FMUX_GPIO_FUNCSEL_##PIN_NAME, \
33         PINMUX_MASK(PIN_NAME) << PINMUX_OFFSET(PIN_NAME), \
34         PINMUX_VALUE(PIN_NAME, FUNC_NAME))
35 
36 #endif /* __PINCTRL_CV181X_H__ */
37