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