1*aebd4dc8Smtk20895 /* 2*aebd4dc8Smtk20895 * Copyright (c) 2020, MediaTek Inc. All rights reserved. 3*aebd4dc8Smtk20895 * 4*aebd4dc8Smtk20895 * SPDX-License-Identifier: BSD-3-Clause 5*aebd4dc8Smtk20895 */ 6*aebd4dc8Smtk20895 7*aebd4dc8Smtk20895 #include <assert.h> 8*aebd4dc8Smtk20895 #include <mtgpio.h> 9*aebd4dc8Smtk20895 #include <platform_def.h> 10*aebd4dc8Smtk20895 mt_gpio_find_reg_addr(uint32_t pin)11*aebd4dc8Smtk20895uintptr_t mt_gpio_find_reg_addr(uint32_t pin) 12*aebd4dc8Smtk20895 { 13*aebd4dc8Smtk20895 uintptr_t reg_addr = 0U; 14*aebd4dc8Smtk20895 struct mt_pin_info gpio_info; 15*aebd4dc8Smtk20895 16*aebd4dc8Smtk20895 assert(pin < MAX_GPIO_PIN); 17*aebd4dc8Smtk20895 18*aebd4dc8Smtk20895 gpio_info = mt_pin_infos[pin]; 19*aebd4dc8Smtk20895 20*aebd4dc8Smtk20895 switch (gpio_info.base & 0x0f) { 21*aebd4dc8Smtk20895 case 0: 22*aebd4dc8Smtk20895 reg_addr = IOCFG_BM_BASE; 23*aebd4dc8Smtk20895 break; 24*aebd4dc8Smtk20895 case 1: 25*aebd4dc8Smtk20895 reg_addr = IOCFG_BL_BASE; 26*aebd4dc8Smtk20895 break; 27*aebd4dc8Smtk20895 case 2: 28*aebd4dc8Smtk20895 reg_addr = IOCFG_BR_BASE; 29*aebd4dc8Smtk20895 break; 30*aebd4dc8Smtk20895 case 3: 31*aebd4dc8Smtk20895 reg_addr = IOCFG_LM_BASE; 32*aebd4dc8Smtk20895 break; 33*aebd4dc8Smtk20895 case 4: 34*aebd4dc8Smtk20895 reg_addr = IOCFG_RB_BASE; 35*aebd4dc8Smtk20895 break; 36*aebd4dc8Smtk20895 case 5: 37*aebd4dc8Smtk20895 reg_addr = IOCFG_TL_BASE; 38*aebd4dc8Smtk20895 break; 39*aebd4dc8Smtk20895 default: 40*aebd4dc8Smtk20895 break; 41*aebd4dc8Smtk20895 } 42*aebd4dc8Smtk20895 43*aebd4dc8Smtk20895 return reg_addr; 44*aebd4dc8Smtk20895 } 45