1054af8f2SPo Xu /* 2054af8f2SPo Xu * Copyright (c) 2020, MediaTek Inc. All rights reserved. 3054af8f2SPo Xu * 4054af8f2SPo Xu * SPDX-License-Identifier: BSD-3-Clause 5054af8f2SPo Xu */ 6054af8f2SPo Xu 7054af8f2SPo Xu #include <assert.h> 8054af8f2SPo Xu #include <mtgpio.h> 9054af8f2SPo Xu #include <platform_def.h> 10054af8f2SPo Xu mt_gpio_find_reg_addr(uint32_t pin)11*aebd4dc8Smtk20895uintptr_t mt_gpio_find_reg_addr(uint32_t pin) 12054af8f2SPo Xu { 13054af8f2SPo Xu uintptr_t reg_addr = 0U; 14054af8f2SPo Xu struct mt_pin_info gpio_info; 15054af8f2SPo Xu 16*aebd4dc8Smtk20895 assert(pin < MAX_GPIO_PIN); 17*aebd4dc8Smtk20895 18*aebd4dc8Smtk20895 gpio_info = mt_pin_infos[pin]; 19054af8f2SPo Xu 20054af8f2SPo Xu switch (gpio_info.base & 0x0f) { 21054af8f2SPo Xu case 0: 22054af8f2SPo Xu reg_addr = IOCFG_RM_BASE; 23054af8f2SPo Xu break; 24054af8f2SPo Xu case 1: 25054af8f2SPo Xu reg_addr = IOCFG_BM_BASE; 26054af8f2SPo Xu break; 27054af8f2SPo Xu case 2: 28054af8f2SPo Xu reg_addr = IOCFG_BL_BASE; 29054af8f2SPo Xu break; 30054af8f2SPo Xu case 3: 31054af8f2SPo Xu reg_addr = IOCFG_BR_BASE; 32054af8f2SPo Xu break; 33054af8f2SPo Xu case 4: 34054af8f2SPo Xu reg_addr = IOCFG_LM_BASE; 35054af8f2SPo Xu break; 36054af8f2SPo Xu case 5: 37054af8f2SPo Xu reg_addr = IOCFG_LB_BASE; 38054af8f2SPo Xu break; 39054af8f2SPo Xu case 6: 40054af8f2SPo Xu reg_addr = IOCFG_RT_BASE; 41054af8f2SPo Xu break; 42054af8f2SPo Xu case 7: 43054af8f2SPo Xu reg_addr = IOCFG_LT_BASE; 44054af8f2SPo Xu break; 45054af8f2SPo Xu case 8: 46054af8f2SPo Xu reg_addr = IOCFG_TL_BASE; 47054af8f2SPo Xu break; 48054af8f2SPo Xu default: 49054af8f2SPo Xu break; 50054af8f2SPo Xu } 51054af8f2SPo Xu 52054af8f2SPo Xu return reg_addr; 53054af8f2SPo Xu } 54