1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * (C) Copyright 2013-2015 3*4882a593Smuzhiyun * NVIDIA Corporation <www.nvidia.com> 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun /* Tegra210 high-level function multiplexing */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #include <common.h> 11*4882a593Smuzhiyun #include <asm/arch/clock.h> 12*4882a593Smuzhiyun #include <asm/arch/funcmux.h> 13*4882a593Smuzhiyun #include <asm/arch/pinmux.h> 14*4882a593Smuzhiyun funcmux_select(enum periph_id id,int config)15*4882a593Smuzhiyunint funcmux_select(enum periph_id id, int config) 16*4882a593Smuzhiyun { 17*4882a593Smuzhiyun int bad_config = config != FUNCMUX_DEFAULT; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun switch (id) { 20*4882a593Smuzhiyun /* 21*4882a593Smuzhiyun * Add other periph IDs here as needed. 22*4882a593Smuzhiyun * Note that all pinmux/pads should have already 23*4882a593Smuzhiyun * been set up in the board pinmux table in 24*4882a593Smuzhiyun * pinmux-config-<board>.h for all periphs. 25*4882a593Smuzhiyun * Leave this in for the odd case where a mux 26*4882a593Smuzhiyun * needs to be changed on-the-fly. 27*4882a593Smuzhiyun */ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun default: 30*4882a593Smuzhiyun debug("%s: invalid periph_id %d", __func__, id); 31*4882a593Smuzhiyun return -1; 32*4882a593Smuzhiyun } 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun if (bad_config) { 35*4882a593Smuzhiyun debug("%s: invalid config %d for periph_id %d", __func__, 36*4882a593Smuzhiyun config, id); 37*4882a593Smuzhiyun return -1; 38*4882a593Smuzhiyun } 39*4882a593Smuzhiyun return 0; 40*4882a593Smuzhiyun } 41