tegra: clean up board include hell
PATCH v2 1/2 tegra: clean up board include hell
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
---
v2: remove wrong paragraph about how to move ahead in the commit message
--- arch/arm/cpu/arm720t/tegra-common/board.h | 25 --------------------- arch/arm/cpu/arm720t/tegra-common/spl.c | 2 +- arch/arm/cpu/tegra-common/board.c | 1 + arch/arm/include/asm/arch-tegra/board.h | 19 +++++++++++++++- board/nvidia/common/board.c | 1 - board/nvidia/common/board.h | 37 ------------------------------- board/nvidia/common/uart-spi-switch.c | 2 +- 7 Dateien ge?ndert, 21 Zeilen hinzugef?gt(+), 66 Zeilen entfernt(-) delete mode 100644 arch/arm/cpu/arm720t/tegra-common/board.h delete mode 100644 board/nvidia/common/board.h
arch/arm/cpu/arm720t/tegra-common/board.h deleted +0 -25
@@ -1,25 +0,0 @@ -/* -* (C) Copyright 2010-2011 -* 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 -*/ - -void board_init_uart_f (void ); -void gpio_early_init_uart (void );
arch/arm/cpu/arm720t/tegra-common/spl.c +1 -1
@@ -33,13 +33,13 @@#include <image.h> #include <malloc.h> #include <linux/compiler.h> -#include "board.h" #include "cpu.h" #include <asm/io.h> #include <asm/arch/clock.h> #include <asm/arch/pinmux.h> #include <asm/arch/tegra.h> +#include <asm/arch-tegra/board.h> #include <asm/arch-tegra/clk_rst.h> #include <asm/arch-tegra/pmc.h> #include <asm/arch-tegra/scu.h>
arch/arm/cpu/tegra-common/board.c +1 -0
@@ -26,6 +26,7 @@#include <asm/arch/clock.h> #include <asm/arch/funcmux.h> #include <asm/arch/tegra.h> +#include <asm/arch-tegra/board.h> #include <asm/arch-tegra/pmc.h> #include <asm/arch-tegra/sys_proto.h> #include <asm/arch-tegra/warmboot.h>
arch/arm/include/asm/arch-tegra/board.h +18 -1
@@ -24,7 +24,24 @@#ifndef _TEGRA_BOARD_H_#define _TEGRA_BOARD_H_ -/* Setup UARTs for the board according to the selected config */ +/* Set up pinmux to make UART usable */ +void gpio_config_uart (void );/* CONFIG_SPI_UART_SWITCH */ +void gpio_early_init_uart (void );/*!CONFIG_SPI_UART_SWITCH */ + +/* Set up early UART output */ void board_init_uart_f (void ); +/* Set up any early GPIOs the board might need for proper operation */ +void gpio_early_init (void );/* overrideable GPIO config */ + +/* +* Hooks to allow boards to set up the pinmux for a specific function. +* Has to be implemented in the board files as we don't yet support pinmux +* setup from FTD. If a board file does not implement one of those functions +* an empty stub function will be called. +*/ + +void pin_mux_usb (void );/* overrideable USB pinmux setup */ +void pin_mux_spi (void );/* overrideable SPI pinmux setup */ +#endif
board/nvidia/common/board.c +0 -1
@@ -39,7 +39,6 @@#include <asm/arch-tegra/warmboot.h> #include <spi.h> #include <i2c.h> -#include "board.h" #include "emc.h" DECLARE_GLOBAL_DATA_PTR ;
board/nvidia/common/board.h deleted +0 -37
@@ -1,37 +0,0 @@ -/* -* (C) Copyright 2010,2011 -* 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 -*/ - -#ifndef _BOARD_H_ -#define _BOARD_H_ - -void gpio_config_uart (void ); -void gpio_early_init (void ); -void gpio_early_init_uart (void ); - -/* -* Set up any pin muxing needed for USB (for now, since fdt doesn't support -* it). Boards can overwrite the default fucction which does nothing. -*/ -void pin_mux_usb (void ); - -#endif /* BOARD_H */
board/nvidia/common/uart-spi-switch.c +1 -1
@@ -26,7 +26,7 @@#include <asm/arch/uart-spi-switch.h> #include <asm/arch/tegra.h> #include <asm/arch-tegra/tegra_spi.h> - +#include <asm/arch-tegra/board.h> /* position of the UART/SPI select switch */ enum spi_uart_switch {
Signature · 1 line
1.7.11.4
PATCH v2 2/2 tegra: nand: add board pinmux
Boards may require a different pinmux setup for NAND than the default one. Add a way to call into board specific code to set this up.
---
v2: move pinmux setup to common Tegra board code
--- arch/arm/include/asm/arch-tegra/board.h | 1 + board/nvidia/common/board.c | 12 ++++++++++++ drivers/mtd/nand/tegra_nand.c | 1 -
3 Dateien ge?ndert, 13 Zeilen hinzugef?gt(+), 1 Zeile entfernt(-)
arch/arm/include/asm/arch-tegra/board.h +1 -0
@@ -43,5 +43,6 @@ void gpio_early_init(void); /* overrideable GPIO config */void pin_mux_usb (void );/* overrideable USB pinmux setup */ void pin_mux_spi (void );/* overrideable SPI pinmux setup */ +void pin_mux_nand (void );/* overrideable NAND pinmux setup */ #endif
board/nvidia/common/board.c +12 -0
@@ -27,6 +27,7 @@#include <asm/io.h> #include <asm/arch/clock.h> #include <asm/arch/emc.h> +#include <asm/arch/funcmux.h> #include <asm/arch/pinmux.h> #include <asm/arch/pmu.h> #include <asm/arch/tegra.h>
@@ -77,6 +78,13 @@ void __gpio_early_init_uart(void)void gpio_early_init_uart (void ) __attribute__((weak,alias ("__gpio_early_init_uart" ))); +void __pin_mux_nand (void ) +{ +funcmux_select (PERIPH_ID_NDFLASH ,FUNCMUX_DEFAULT ); +} + +void pin_mux_nand (void ) __attribute__((weak,alias ("__pin_mux_nand" ))); +/* * Routine: power_det_init * Description: turn off power detects
@@ -137,6 +145,10 @@ int board_init(void)board_usb_init (gd->fdt_blob);#endif +#ifdef CONFIG_TEGRA_NAND +pin_mux_nand (); +#endif +#ifdef CONFIG_TEGRA_LP0 /* save Sdram params to PMC 2, 4, and 24 for WB0 */ warmboot_save_sdram_params ();
drivers/mtd/nand/tegra_nand.c +0 -1
@@ -992,7 +992,6 @@ int tegra_nand_init(struct nand_chip *nand, int devnum)/* Adjust timing for NAND device */ setup_timing (config->timing, info->reg); -funcmux_select (PERIPH_ID_NDFLASH ,FUNCMUX_DEFAULT );fdtdec_setup_gpio (&config->wp_gpio);gpio_direction_output (config->wp_gpio.gpio,1 );
Signature · 1 line
1.7.11.4
PATCH v2 2/2 tegra: nand: add board pinmux
Hi,
Quoted 4 lines · Lucas Stach
Boards may require a different pinmux setup for NAND than the default one. Add a way to call into board specific code to set this up.
Signed-off-by Lucas Stach <[email protected]>
I think this is reasonable as is.
Regards,
Simon
Quoted 71 lines
---
v2: move pinmux setup to common Tegra board code--- arch/arm/include/asm/arch-tegra/board.h | 1 + board/nvidia/common/board.c | 12 ++++++++++++ drivers/mtd/nand/tegra_nand.c | 1 -3 Dateien ge?ndert, 13 Zeilen hinzugef?gt(+), 1 Zeile entfernt(-)
arch/arm/include/asm/arch-tegra/board.h +1
-0@@ -43,5 +43,6 @@ void gpio_early_init(void); /* overrideable GPIO config */void pin_mux_usb (void );/* overrideable USB pinmux setup */ void pin_mux_spi (void );/* overrideable SPI pinmux setup */ +void pin_mux_nand (void );/* overrideable NAND pinmux setup */ #endif board/nvidia/common/board.c +12
-0@@ -27,6 +27,7 @@#include <asm/io.h> #include <asm/arch/clock.h> #include <asm/arch/emc.h> +#include <asm/arch/funcmux.h> #include <asm/arch/pinmux.h> #include <asm/arch/pmu.h> #include <asm/arch/tegra.h> @@ -77,6 +78,13 @@ void __gpio_early_init_uart(void)void gpio_early_init_uart (void ) __attribute__((weak,alias ("__gpio_early_init_uart" ))); +void __pin_mux_nand (void ) +{ +funcmux_select (PERIPH_ID_NDFLASH ,FUNCMUX_DEFAULT ); +} + +void pin_mux_nand (void ) __attribute__((weak,alias ("__pin_mux_nand" ))); +/* * Routine: power_det_init * Description: turn off power detects @@ -137,6 +145,10 @@ int board_init(void)board_usb_init (gd->fdt_blob);#endif +#ifdef CONFIG_TEGRA_NAND +pin_mux_nand (); +#endif +#ifdef CONFIG_TEGRA_LP0 /* save Sdram params to PMC 2, 4, and 24 for WB0 */ warmboot_save_sdram_params ();drivers/mtd/nand/tegra_nand.c +0
-2@@ -992,7 +992,6 @@ int tegra_nand_init(struct nand_chip *nand, int devnum)/* Adjust timing for NAND device */ setup_timing (config->timing, info->reg); -funcmux_select (PERIPH_ID_NDFLASH ,FUNCMUX_DEFAULT );fdtdec_setup_gpio (&config->wp_gpio);gpio_direction_output (config->wp_gpio.gpio,1 ); --1.7.11.4
PATCH v2 1/2 tegra: clean up board include hell
In reply to Lucas StachQuoted 3 lines · Lucas Stach
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
Seems reasonable enough to me. This series or anything similar that's also OK with Tom is:
PATCH v2 1/2 tegra: clean up board include hell
Lucas,
Quoted 9 lines · Stephen Warren
Quoted 3 lines · Lucas Stach
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
Seems reasonable enough to me. This series or anything similar that's also OK with Tom is:
Acked-by Stephen Warren <[email protected]>
I don't think this hurts anything. I'll see if it applies cleanly to u-boot-tegra/next and let you know.
Tom
PATCH v2 1/2 tegra: clean up board include hell
Lucas, Stephen, et al.
Quoted 13 lines · Tom Warren
Lucas,
Quoted 9 lines · Stephen Warren
Quoted 3 lines · Lucas Stach
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
Seems reasonable enough to me. This series or anything similar that's also OK with Tom is:
Acked-by Stephen Warren <[email protected]>
Quoted 4 lines
I don't think this hurts anything. I'll see if it applies cleanly to u-boot-tegra/next and let you know.
Tom
I've applied Lucas' include file cleanup patches, and done a .MAKEALL -s tegra20 and a checkpatch run w/o error, so I've pushed a new u-boot-tegra/next to denx.de.
Here are the latest commits in that repo since Albert's last ARM update:
0edfb9c tegra: nand: add board pinmux
a05feff tegra: clean up board include hell
9c53038 tegra: add funcmux entry for NAND attached to KBC
08eb412 tegra20: rework UART GPIO handling
55da8d1 tegra20: add clock_set_pllout function
20e825f tegra20: complete periph_id enum
b1ae54d tegra: enable CONFIG_CMD_PART
0e1b95c Tegra20: Move some include files to arch-tegra for sharing with Tegra30 bfba961 Tegra20: Move some code files to common directories for upcoming Tegra30 4910a5c tegra: Rename Medcom to Medcom-Wide
81637cd tegra: Update Avionic Design vendor prefix
This is what I'm going to base my imminent T30 patches on. Hope to have something for review in a day or two.
Tom
PATCH v2 1/2 tegra: clean up board include hell
Hi Tom,
Am Montag, den 01.10.2012, 10:12 -0700 schrieb Tom Warren:
Quoted 39 lines
Lucas, Stephen, et al.
Quoted 13 lines · Tom Warren
Lucas,
Quoted 9 lines · Stephen Warren
Quoted 3 lines · Lucas Stach
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
Seems reasonable enough to me. This series or anything similar that's also OK with Tom is:
Acked-by Stephen Warren <[email protected]>Quoted 4 lines
I don't think this hurts anything. I'll see if it applies cleanly to u-boot-tegra/next and let you know.
Tom
I've applied Lucas' include file cleanup patches, and done a .MAKEALL -s tegra20 and a checkpatch run w/o error, so I've pushed a new u-boot-tegra/next to denx.de.
Here are the latest commits in that repo since Albert's last ARM update:
0edfb9c tegra: nand: add board pinmux
a05feff tegra: clean up board include hell
9c53038 tegra: add funcmux entry for NAND attached to KBC
08eb412 tegra20: rework UART GPIO handling
55da8d1 tegra20: addclock_set_plloutfunction
20e825f tegra20: completeperiph_idenum
b1ae54d tegra: enableCONFIG_CMD_PART
0e1b95c Tegra20: Move some include files to arch-tegra for sharing with Tegra30 bfba961 Tegra20: Move some code files to common directories for upcoming Tegra30 4910a5c tegra: Rename Medcom to Medcom-Wide
81637cd tegra: Update Avionic Design vendor prefix
Quoted 3 lines
This is what I'm going to base my imminent T30 patches on. Hope to have something for review in a day or two.
Can you do a P-R to Albert to include this in the u-boot-arm/next tree?
The reason I'm prodding is that we need the following two patches to propagate to the u-boot-usb/next tree, to make the the USB driver move feasible.
0e1b95c Tegra20: Move some include files to arch-tegra for sharing with Tegra30 bfba961 Tegra20: Move some code files to common directories for upcoming Tegra30
As the u-boot/next tree is already open for merging I think the best way to achieve this is to let it trickle upstream, so that Marek can just base his next tree on an updated version of u-boot/next. There is no reason to to wait for the Tegra 3 work to land, except if you plan to rework the two mentioned commits along the way.
Thanks,
Lucas
PATCH v2 1/2 tegra: clean up board include hell
Lucas,
Quoted 53 lines · Lucas Stach
Hi Tom,
Am Montag, den 01.10.2012, 10:12 -0700 schrieb Tom Warren:
Quoted 39 lines
Lucas, Stephen, et al.
Quoted 13 lines · Tom Warren
Lucas,
Quoted 9 lines · Stephen Warren
Quoted 3 lines · Lucas Stach
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
Seems reasonable enough to me. This series or anything similar that's also OK with Tom is:
Acked-by Stephen Warren <[email protected]>Quoted 4 lines
I don't think this hurts anything. I'll see if it applies cleanly to u-boot-tegra/next and let you know.
Tom
I've applied Lucas' include file cleanup patches, and done a .MAKEALL -s tegra20 and a checkpatch run w/o error, so I've pushed a new u-boot-tegra/next to denx.de.
Here are the latest commits in that repo since Albert's last ARM update:
0edfb9c tegra: nand: add board pinmux
a05feff tegra: clean up board include hell
9c53038 tegra: add funcmux entry for NAND attached to KBC
08eb412 tegra20: rework UART GPIO handling
55da8d1 tegra20: addclock_set_plloutfunction
20e825f tegra20: completeperiph_idenum
b1ae54d tegra: enableCONFIG_CMD_PART
0e1b95c Tegra20: Move some include files to arch-tegra for sharing with Tegra30 bfba961 Tegra20: Move some code files to common directories for upcoming Tegra30 4910a5c tegra: Rename Medcom to Medcom-Wide
81637cd tegra: Update Avionic Design vendor prefixQuoted 3 lines
This is what I'm going to base my imminent T30 patches on. Hope to have something for review in a day or two.
Can you do a P-R to Albert to include this in the u-boot-arm/next tree?
The reason I'm prodding is that we need the following two patches to propagate to the u-boot-usb/next tree, to make the the USB driver move feasible.
0e1b95c Tegra20: Move some include files to arch-tegra for sharing with Tegra30 bfba961 Tegra20: Move some code files to common directories for upcoming Tegra30
Quoted 9 lines
As the u-boot/next tree is already open for merging I think the best way to achieve this is to let it trickle upstream, so that Marek can just base his next tree on an updated version of u-boot/next. There is no reason to to wait for the Tegra 3 work to land, except if you plan to rework the two mentioned commits along the way.
Thanks,
Lucas
I usually issue pull requests for u-boot-tegra/master to ARM master. I'll do one for u-boot-tegra/next to ARM next and see what Albert says.
Tom
PATCH v2 1/2 tegra: clean up board include hell
In reply to Lucas StachQuoted 7 lines · Lucas Stach
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
Signed-off-by Lucas Stach <[email protected]>---
v2: remove wrong paragraph about how to move ahead in the commit message
Quoted 11 lines
--- arch/arm/cpu/arm720t/tegra-common/board.h | 25 --------------------- arch/arm/cpu/arm720t/tegra-common/spl.c | 2 +- arch/arm/cpu/tegra-common/board.c | 1 + arch/arm/include/asm/arch-tegra/board.h | 19 +++++++++++++++- board/nvidia/common/board.c | 1 - board/nvidia/common/board.h | 37 ------------------------------- board/nvidia/common/uart-spi-switch.c | 2 +- 7 Dateien ge?ndert, 21 Zeilen hinzugef?gt(+), 66 Zeilen entfernt(-) delete mode 100644 arch/arm/cpu/arm720t/tegra-common/board.h delete mode 100644 board/nvidia/common/board.h
Quoted 164 lines
arch/arm/cpu/arm720t/tegra-common/board.h deleted +0
-25@@ -1,25 +0,0 @@ -/* -* (C) Copyright 2010-2011 -* 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 -*/ - -void board_init_uart_f (void ); -void gpio_early_init_uart (void );arch/arm/cpu/arm720t/tegra-common/spl.c +1
-1@@ -33,13 +33,13 @@#include <image.h> #include <malloc.h> #include <linux/compiler.h> -#include "board.h" #include "cpu.h" #include <asm/io.h> #include <asm/arch/clock.h> #include <asm/arch/pinmux.h> #include <asm/arch/tegra.h> +#include <asm/arch-tegra/board.h> #include <asm/arch-tegra/clk_rst.h> #include <asm/arch-tegra/pmc.h> #include <asm/arch-tegra/scu.h> arch/arm/cpu/tegra-common/board.c +1
-0@@ -26,6 +26,7 @@#include <asm/arch/clock.h> #include <asm/arch/funcmux.h> #include <asm/arch/tegra.h> +#include <asm/arch-tegra/board.h> #include <asm/arch-tegra/pmc.h> #include <asm/arch-tegra/sys_proto.h> #include <asm/arch-tegra/warmboot.h> arch/arm/include/asm/arch-tegra/board.h +18
-1@@ -24,7 +24,24 @@#ifndef _TEGRA_BOARD_H_#define _TEGRA_BOARD_H_ -/* Setup UARTs for the board according to the selected config */ +/* Set up pinmux to make UART usable */ +void gpio_config_uart (void );/* CONFIG_SPI_UART_SWITCH */ +void gpio_early_init_uart (void );/*!CONFIG_SPI_UART_SWITCH */ + +/* Set up early UART output */ void board_init_uart_f (void ); +/* Set up any early GPIOs the board might need for proper operation */ +void gpio_early_init (void );/* overrideable GPIO config */ + +/* +* Hooks to allow boards to set up the pinmux for a specific function. +* Has to be implemented in the board files as we don't yet support pinmux +* setup from FTD. If a board file does not implement one of those functions +* an empty stub function will be called. +*/ + +void pin_mux_usb (void );/* overrideable USB pinmux setup */ +void pin_mux_spi (void );/* overrideable SPI pinmux setup */ +#endif board/nvidia/common/board.c +0
-1@@ -39,7 +39,6 @@#include <asm/arch-tegra/warmboot.h> #include <spi.h> #include <i2c.h> -#include "board.h" #include "emc.h" DECLARE_GLOBAL_DATA_PTR ;board/nvidia/common/board.h deleted +0
-37@@ -1,37 +0,0 @@ -/* -* (C) Copyright 2010,2011 -* 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 -*/ - -#ifndef _BOARD_H_ -#define _BOARD_H_ - -void gpio_config_uart (void ); -void gpio_early_init (void ); -void gpio_early_init_uart (void ); - -/* -* Set up any pin muxing needed for USB (for now, since fdt doesn't support -* it). Boards can overwrite the default fucction which does nothing. -*/ -void pin_mux_usb (void ); - -#endif /* BOARD_H */ board/nvidia/common/uart-spi-switch.c +1
-2@@ -26,7 +26,7 @@#include <asm/arch/uart-spi-switch.h> #include <asm/arch/tegra.h> #include <asm/arch-tegra/tegra_spi.h> - +#include <asm/arch-tegra/board.h> /* position of the UART/SPI select switch */ enum spi_uart_switch { --1.7.11.4