mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	tegra: Add enum to select from available funcmux configs
We want to give a name to each available funcmux config. For now we just use the pin group names (even through it is verbose) since there seems to be nothing better. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Warren <twarren@nvidia.com>
This commit is contained in:
		
							parent
							
								
									d693969daa
								
							
						
					
					
						commit
						2faf1863de
					
				@ -120,7 +120,7 @@ static void setup_uarts(int uart_ids)
 | 
				
			|||||||
		if (uart_ids & (1 << i)) {
 | 
							if (uart_ids & (1 << i)) {
 | 
				
			||||||
			enum periph_id id = id_for_uart[i];
 | 
								enum periph_id id = id_for_uart[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			funcmux_select(id, 0);
 | 
								funcmux_select(id, FUNCMUX_DEFAULT);
 | 
				
			||||||
			clock_ll_start_uart(id);
 | 
								clock_ll_start_uart(id);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
@ -22,15 +22,16 @@
 | 
				
			|||||||
/* Tegra2 high-level function multiplexing */
 | 
					/* Tegra2 high-level function multiplexing */
 | 
				
			||||||
#include <common.h>
 | 
					#include <common.h>
 | 
				
			||||||
#include <asm/arch/clock.h>
 | 
					#include <asm/arch/clock.h>
 | 
				
			||||||
 | 
					#include <asm/arch/funcmux.h>
 | 
				
			||||||
#include <asm/arch/pinmux.h>
 | 
					#include <asm/arch/pinmux.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int funcmux_select(enum periph_id id, int config)
 | 
					int funcmux_select(enum periph_id id, int config)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int bad_config = config != 0;
 | 
						int bad_config = config != FUNCMUX_DEFAULT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch (id) {
 | 
						switch (id) {
 | 
				
			||||||
	case PERIPH_ID_UART1:
 | 
						case PERIPH_ID_UART1:
 | 
				
			||||||
		if (config == 0) {
 | 
							if (config == FUNCMUX_UART1_IRRX_IRTX) {
 | 
				
			||||||
			pinmux_set_func(PINGRP_IRRX, PMUX_FUNC_UARTA);
 | 
								pinmux_set_func(PINGRP_IRRX, PMUX_FUNC_UARTA);
 | 
				
			||||||
			pinmux_set_func(PINGRP_IRTX, PMUX_FUNC_UARTA);
 | 
								pinmux_set_func(PINGRP_IRTX, PMUX_FUNC_UARTA);
 | 
				
			||||||
			pinmux_tristate_disable(PINGRP_IRRX);
 | 
								pinmux_tristate_disable(PINGRP_IRRX);
 | 
				
			||||||
@ -52,14 +53,14 @@ int funcmux_select(enum periph_id id, int config)
 | 
				
			|||||||
		break;
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	case PERIPH_ID_UART2:
 | 
						case PERIPH_ID_UART2:
 | 
				
			||||||
		if (config == 0) {
 | 
							if (config == FUNCMUX_UART2_IRDA) {
 | 
				
			||||||
			pinmux_set_func(PINGRP_UAD, PMUX_FUNC_IRDA);
 | 
								pinmux_set_func(PINGRP_UAD, PMUX_FUNC_IRDA);
 | 
				
			||||||
			pinmux_tristate_disable(PINGRP_UAD);
 | 
								pinmux_tristate_disable(PINGRP_UAD);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	case PERIPH_ID_UART4:
 | 
						case PERIPH_ID_UART4:
 | 
				
			||||||
		if (config == 0) {
 | 
							if (config == FUNCMUX_UART4_GMC) {
 | 
				
			||||||
			pinmux_set_func(PINGRP_GMC, PMUX_FUNC_UARTD);
 | 
								pinmux_set_func(PINGRP_GMC, PMUX_FUNC_UARTD);
 | 
				
			||||||
			pinmux_tristate_disable(PINGRP_GMC);
 | 
								pinmux_tristate_disable(PINGRP_GMC);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
				
			|||||||
@ -24,6 +24,16 @@
 | 
				
			|||||||
#ifndef __FUNCMUX_H
 | 
					#ifndef __FUNCMUX_H
 | 
				
			||||||
#define __FUNCMUX_H
 | 
					#define __FUNCMUX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Configs supported by the func mux */
 | 
				
			||||||
 | 
					enum {
 | 
				
			||||||
 | 
						FUNCMUX_DEFAULT = 0,	/* default config */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* UART configs */
 | 
				
			||||||
 | 
						FUNCMUX_UART1_IRRX_IRTX = 0,
 | 
				
			||||||
 | 
						FUNCMUX_UART2_IRDA = 0,
 | 
				
			||||||
 | 
						FUNCMUX_UART4_GMC = 0,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Select a config for a particular peripheral.
 | 
					 * Select a config for a particular peripheral.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@ -36,7 +46,7 @@
 | 
				
			|||||||
 * so that they operate in normal mode.
 | 
					 * so that they operate in normal mode.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @param id		Peripheral id
 | 
					 * @param id		Peripheral id
 | 
				
			||||||
 * @param config	Configuration to use (generally 0)
 | 
					 * @param config	Configuration to use (FUNCMUX_...), 0 for default
 | 
				
			||||||
 * @return 0 if ok, -1 on error (e.g. incorrect id or config)
 | 
					 * @return 0 if ok, -1 on error (e.g. incorrect id or config)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
int funcmux_select(enum periph_id id, int config);
 | 
					int funcmux_select(enum periph_id id, int config);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user