]>
git.ipfire.org Git - thirdparty/u-boot.git/blob - drivers/gpio/mvmfp.c
1 // SPDX-License-Identifier: GPL-2.0+
4 * Marvell Semiconductor <www.marvell.com>
5 * Written-by: Prafulla Wadaskar <prafulla@marvell.com>,
11 #include <asm/arch/mfp.h>
16 * On most of Marvell SoCs (ex. ARMADA100) there is Multi-Funtion-Pin
17 * configuration registers to configure each GPIO/Function pin on the
20 * This function reads the array of values for
21 * MFPR_X registers and programms them into respective
22 * Multi-Function Pin registers.
23 * It supports - Alternate Function Selection programming.
26 * The Configureation value is constructed using MFP()
27 * array consists of 32bit values as defined in MFP(xx,xx..) macro
29 void mfp_config(u32
*mfp_cfgs
)
35 cfg_val
= *mfp_cfgs
++;
36 /* exit if End of configuration table detected */
37 if (cfg_val
== MFP_EOC
)
40 p_mfpr
= (u32
*)(MV_MFPR_BASE
41 + MFP_REG_GET_OFFSET(cfg_val
));
43 /* Write a mfg register as per configuration */
45 if (cfg_val
& MFP_VALUE_MASK
)
46 val
|= cfg_val
& MFP_VALUE_MASK
;
51 * perform a read-back of any MFPR register to make sure the
52 * previous writings are finished