Re: [U-Boot] [PATCH 6/9] Tegra30: Add Cardhu board files
Hi Tom, On Wed, Sep 12, 2012 at 3:10 PM, Tom Warren twarren.nvi...@gmail.com wrote: Signed-off-by: Tom Warren twar...@nvidia.com --- board/nvidia/cardhu/Makefile | 48 board/nvidia/cardhu/cardhu.c | 87 +++ board/nvidia/cardhu/pinmux-config-common.h | 346 3 files changed, 481 insertions(+), 0 deletions(-) create mode 100644 board/nvidia/cardhu/Makefile create mode 100644 board/nvidia/cardhu/cardhu.c create mode 100644 board/nvidia/cardhu/pinmux-config-common.h diff --git a/board/nvidia/cardhu/Makefile b/board/nvidia/cardhu/Makefile new file mode 100644 index 000..a910577 --- /dev/null +++ b/board/nvidia/cardhu/Makefile @@ -0,0 +1,48 @@ +# +# (C) Copyright 2010-2012 +# NVIDIA Corporation www.nvidia.com +# +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +ifneq ($(OBJTREE),$(SRCTREE)) +$(shell mkdir -p $(obj)../common) +endif + +LIB= $(obj)lib$(BOARD).o + +COBJS := $(BOARD).o + +SRCS := $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) + +$(LIB):$(obj).depend $(OBJS) + $(call cmd_link_o_target, $(OBJS)) + +# + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +# diff --git a/board/nvidia/cardhu/cardhu.c b/board/nvidia/cardhu/cardhu.c new file mode 100644 index 000..f907906 --- /dev/null +++ b/board/nvidia/cardhu/cardhu.c @@ -0,0 +1,87 @@ +/* + * (C) Copyright 2010-2012 + * NVIDIA Corporation www.nvidia.com + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include common.h +#include asm/io.h +#include asm/arch/tegra30.h +#include asm/arch/clock.h +#include asm/arch/funcmux.h +#include asm/arch/pinmux.h +#include asm/arch/mmc.h +#include asm/gpio.h +#ifdef CONFIG_TEGRA_MMC +#include mmc.h +#endif + +/* + * Routine: gpio_config_uart + * Description: Does nothing on Cardhu - no conflict w/SPI. + */ +void gpio_config_uart(void) +{ +} + +#ifdef CONFIG_TEGRA_MMC +/* + * Routine: pin_mux_mmc + * Description: setup the pin muxes/tristate values for the SDMMC(s) + */ +static void pin_mux_mmc(void) +{ + funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_GME_8_BIT); + funcmux_select(PERIPH_ID_SDMMC3, FUNCMUX_SDMMC3_SDB_4BIT); + + /* For power GPIO PI6 */ + pinmux_tristate_disable(PINGRP_ATA); + /* For CD GPIO PI5 */ + pinmux_tristate_disable(PINGRP_ATC); +} + +/* this is a weak define that we are overriding */ +int board_mmc_init(bd_t *bd) +{ + debug(board_mmc_init called\n); + + /* Enable muxes, etc. for SDMMC controllers */ + pin_mux_mmc(); + + debug(board_mmc_init: init eMMC\n); + /* init dev 0, eMMC chip, with 4-bit bus */ + /* The board has an 8-bit bus, but 8-bit doesn't work yet */ + tegra_mmc_init(0, 4, -1, -1); + + debug(board_mmc_init: init SD slot\n); + /* init dev 1, SD slot, with 4-bit bus */ + tegra_mmc_init(1, 4, GPIO_PI6, GPIO_PI5); + + return 0; +} +#endif + +#ifdef CONFIG_USB_EHCI_TEGRA +void pin_mux_usb(void) +{ + /* For USB's GPIO PD0. For now, since we have no pinmux in fdt */ +
Re: [U-Boot] [PATCH 6/9] Tegra30: Add Cardhu board files
On 09/12/2012 04:10 PM, Tom Warren wrote: diff --git a/board/nvidia/cardhu/cardhu.c b/board/nvidia/cardhu/cardhu.c +/* + * Routine: gpio_config_uart + * Description: Does nothing on Cardhu - no conflict w/SPI. + */ +void gpio_config_uart(void) +{ +} For reference, personally, I'd expect to see the UART pinmux set up there (at least after Lucas's cleanup of GPIO/UART/pinmux functions patch). +#ifdef CONFIG_TEGRA_MMC +/* + * Routine: pin_mux_mmc + * Description: setup the pin muxes/tristate values for the SDMMC(s) + */ +static void pin_mux_mmc(void) +{ + funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_GME_8_BIT); + funcmux_select(PERIPH_ID_SDMMC3, FUNCMUX_SDMMC3_SDB_4BIT); ... +#ifdef CONFIG_USB_EHCI_TEGRA +void pin_mux_usb(void) +{ + /* For USB's GPIO PD0. For now, since we have no pinmux in fdt */ + pinmux_tristate_disable(PINGRP_SLXK); +} +#endif None of that would compile if the options were enabled. I'd definitely suggest removing since it needs to be completely re-written anyway. Otherwise, someone else isn't going to know and it'll seem like reference code. diff --git a/board/nvidia/cardhu/pinmux-config-common.h b/board/nvidia/cardhu/pinmux-config-common.h I don't think anything in this file is actually used? ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 6/9] Tegra30: Add Cardhu board files
Signed-off-by: Tom Warren twar...@nvidia.com --- board/nvidia/cardhu/Makefile | 48 board/nvidia/cardhu/cardhu.c | 87 +++ board/nvidia/cardhu/pinmux-config-common.h | 346 3 files changed, 481 insertions(+), 0 deletions(-) create mode 100644 board/nvidia/cardhu/Makefile create mode 100644 board/nvidia/cardhu/cardhu.c create mode 100644 board/nvidia/cardhu/pinmux-config-common.h diff --git a/board/nvidia/cardhu/Makefile b/board/nvidia/cardhu/Makefile new file mode 100644 index 000..a910577 --- /dev/null +++ b/board/nvidia/cardhu/Makefile @@ -0,0 +1,48 @@ +# +# (C) Copyright 2010-2012 +# NVIDIA Corporation www.nvidia.com +# +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +ifneq ($(OBJTREE),$(SRCTREE)) +$(shell mkdir -p $(obj)../common) +endif + +LIB= $(obj)lib$(BOARD).o + +COBJS := $(BOARD).o + +SRCS := $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) + +$(LIB):$(obj).depend $(OBJS) + $(call cmd_link_o_target, $(OBJS)) + +# + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +# diff --git a/board/nvidia/cardhu/cardhu.c b/board/nvidia/cardhu/cardhu.c new file mode 100644 index 000..f907906 --- /dev/null +++ b/board/nvidia/cardhu/cardhu.c @@ -0,0 +1,87 @@ +/* + * (C) Copyright 2010-2012 + * NVIDIA Corporation www.nvidia.com + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include common.h +#include asm/io.h +#include asm/arch/tegra30.h +#include asm/arch/clock.h +#include asm/arch/funcmux.h +#include asm/arch/pinmux.h +#include asm/arch/mmc.h +#include asm/gpio.h +#ifdef CONFIG_TEGRA_MMC +#include mmc.h +#endif + +/* + * Routine: gpio_config_uart + * Description: Does nothing on Cardhu - no conflict w/SPI. + */ +void gpio_config_uart(void) +{ +} + +#ifdef CONFIG_TEGRA_MMC +/* + * Routine: pin_mux_mmc + * Description: setup the pin muxes/tristate values for the SDMMC(s) + */ +static void pin_mux_mmc(void) +{ + funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_GME_8_BIT); + funcmux_select(PERIPH_ID_SDMMC3, FUNCMUX_SDMMC3_SDB_4BIT); + + /* For power GPIO PI6 */ + pinmux_tristate_disable(PINGRP_ATA); + /* For CD GPIO PI5 */ + pinmux_tristate_disable(PINGRP_ATC); +} + +/* this is a weak define that we are overriding */ +int board_mmc_init(bd_t *bd) +{ + debug(board_mmc_init called\n); + + /* Enable muxes, etc. for SDMMC controllers */ + pin_mux_mmc(); + + debug(board_mmc_init: init eMMC\n); + /* init dev 0, eMMC chip, with 4-bit bus */ + /* The board has an 8-bit bus, but 8-bit doesn't work yet */ + tegra_mmc_init(0, 4, -1, -1); + + debug(board_mmc_init: init SD slot\n); + /* init dev 1, SD slot, with 4-bit bus */ + tegra_mmc_init(1, 4, GPIO_PI6, GPIO_PI5); + + return 0; +} +#endif + +#ifdef CONFIG_USB_EHCI_TEGRA +void pin_mux_usb(void) +{ + /* For USB's GPIO PD0. For now, since we have no pinmux in fdt */ + pinmux_tristate_disable(PINGRP_SLXK); +} +#endif diff --git a/board/nvidia/cardhu/pinmux-config-common.h b/board/nvidia/cardhu/pinmux-config-common.h new file mode 100644 index 000..20583c9 --- /dev/null +++ b/board/nvidia/cardhu/pinmux-config-common.h @@