Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
Hi, On Tue, Apr 10, 2012 at 12:56 AM, Marc Dietrich wrote: > Am Montag, 9. April 2012, 21:51:32 schrieb Stephen Warren: >> On 04/09/2012 05:07 PM, Simon Glass wrote: >> > Hi Stephen, >> > >> > On Mon, Apr 9, 2012 at 3:03 PM, Olof Johansson wrote: >> >> On Mon, Apr 9, 2012 at 2:59 PM, Stephen Warren > wrote: >> >>> On 04/09/2012 03:40 PM, Simon Glass wrote: >> +Olof >> >> Hi Stephen, >> >> On Mon, Apr 9, 2012 at 2:27 PM, Stephen Warren > wrote: >> > On 04/05/2012 03:55 PM, Simon Glass wrote: >> >> From: Jimmy Zhang >> >> >> >> Set Seaboard to optimal memory settings based on the SOC in use (T20 >> >> or T25). >> >> >> >> Signed-off-by: Simon Glass >> >> --- >> >> Changes in v2: >> >> - Move EMC tables to device tree >> >> - Removed check for nominal voltage (not needed as it is done just >> >> before) >> >> >> >> Changes in v3: >> >> - Add better error reporting when EMC setup fails >> >> >> >> Changes in v4: >> >> - Remove support for T20 memory timings >> >> >> >> diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c >> >> >> >> +/* This rate is hard-coded for now, until fdt provides them */ >> >> +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) >> >> + >> >> +int board_emc_init(void) >> >> +{ >> >> + unsigned rate; >> >> + >> >> + switch (tegra_get_chip_type()) { >> >> + default: >> >> + case TEGRA_SOC_T20: >> >> + debug("%s: EMC timings not supported for T20 >> >> Seaboard\n", >> >> + __func__); >> > >> > This isn't Seaboard-specific code, so the string shouldn't say >> > "Seaboard" there. >> > >> > Why not support Tegra20? Many/all of the other Tegra boards U-Boot >> > supports are Tegra20 not Tegra25. >> > >> > Presumably this code doesn't blow up if the EMC tables aren't in the >> > .dts file; the code should use the tables if they're present, >> > otherwise >> > be a no-op. >> >> I don't mind, we can either go with v3 (with T20) or v4 (without). >> Both sets of patches are on the list and the removable of T20 support >> is the only change in v4. Please can you discuss this with Olof? >> >>> >> >>> IIRC, Olof objected to the incorrect Seaboard .dts file (which contained >> >>> two unrelated sets of EMC tables for different board variants), not the >> >>> ability for the EMC driver itself to function on either Tegra20 or >> >>> Tegra25. >> >> >> >> Correct. I objected to the one device tree describing 50% inaccurate >> >> contents without a documented way to tell the accurate from inaccurate >> >> (unlike the case with bootid straps). >> >> >> >> What we do on the kernel side is that if the existing programming, >> >> i.e. what's setup by BCT/u-boot is not matching the clocks in the >> >> table, then we report it but continue with the existing settings. If >> >> someone passes in bogus (matching) data in both BCT and the device >> >> tree then all bets are off. >> > >> > OK, that's different from what I understood (remove support for T20 >> > Seaboard as was apparently done in the kernel). So I think this means >> > that this patch should revert back to the original version, right? >> >> In the kernel, the Seaboard .dts file only supports Tegra25 since the >> EMC tables we put into that .dts file are for Tegra25. There is no >> Seaboard-with-Tegra20 .dts file. >> >> I don't believe the EMC driver has any code that cares about >> Tegra20-vs-Tegra25, so should work just fine for either. >> >> In practice, we don't have any .dts files for boards with Tegra20 that >> contain EMC tables though. > > well, that may change in the future. In fact, I have a EMC table here for > paz00, but only for 333 MHz. I like to submit them once I got 166 MHz values. OK, I am going to put the T20 code back in and send an updated patch. Regards, Simon > > Marc > > > > > ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
Am Montag, 9. April 2012, 21:51:32 schrieb Stephen Warren: > On 04/09/2012 05:07 PM, Simon Glass wrote: > > Hi Stephen, > > > > On Mon, Apr 9, 2012 at 3:03 PM, Olof Johansson wrote: > >> On Mon, Apr 9, 2012 at 2:59 PM, Stephen Warren wrote: > >>> On 04/09/2012 03:40 PM, Simon Glass wrote: > +Olof > > Hi Stephen, > > On Mon, Apr 9, 2012 at 2:27 PM, Stephen Warren wrote: > > On 04/05/2012 03:55 PM, Simon Glass wrote: > >> From: Jimmy Zhang > >> > >> Set Seaboard to optimal memory settings based on the SOC in use (T20 > >> or T25). > >> > >> Signed-off-by: Simon Glass > >> --- > >> Changes in v2: > >> - Move EMC tables to device tree > >> - Removed check for nominal voltage (not needed as it is done just > >> before) > >> > >> Changes in v3: > >> - Add better error reporting when EMC setup fails > >> > >> Changes in v4: > >> - Remove support for T20 memory timings > >> > >> diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c > >> > >> +/* This rate is hard-coded for now, until fdt provides them */ > >> +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) > >> + > >> +int board_emc_init(void) > >> +{ > >> + unsigned rate; > >> + > >> + switch (tegra_get_chip_type()) { > >> + default: > >> + case TEGRA_SOC_T20: > >> + debug("%s: EMC timings not supported for T20 > >> Seaboard\n", > >> + __func__); > > > > This isn't Seaboard-specific code, so the string shouldn't say > > "Seaboard" there. > > > > Why not support Tegra20? Many/all of the other Tegra boards U-Boot > > supports are Tegra20 not Tegra25. > > > > Presumably this code doesn't blow up if the EMC tables aren't in the > > .dts file; the code should use the tables if they're present, > > otherwise > > be a no-op. > > I don't mind, we can either go with v3 (with T20) or v4 (without). > Both sets of patches are on the list and the removable of T20 support > is the only change in v4. Please can you discuss this with Olof? > >>> > >>> IIRC, Olof objected to the incorrect Seaboard .dts file (which contained > >>> two unrelated sets of EMC tables for different board variants), not the > >>> ability for the EMC driver itself to function on either Tegra20 or > >>> Tegra25. > >> > >> Correct. I objected to the one device tree describing 50% inaccurate > >> contents without a documented way to tell the accurate from inaccurate > >> (unlike the case with bootid straps). > >> > >> What we do on the kernel side is that if the existing programming, > >> i.e. what's setup by BCT/u-boot is not matching the clocks in the > >> table, then we report it but continue with the existing settings. If > >> someone passes in bogus (matching) data in both BCT and the device > >> tree then all bets are off. > > > > OK, that's different from what I understood (remove support for T20 > > Seaboard as was apparently done in the kernel). So I think this means > > that this patch should revert back to the original version, right? > > In the kernel, the Seaboard .dts file only supports Tegra25 since the > EMC tables we put into that .dts file are for Tegra25. There is no > Seaboard-with-Tegra20 .dts file. > > I don't believe the EMC driver has any code that cares about > Tegra20-vs-Tegra25, so should work just fine for either. > > In practice, we don't have any .dts files for boards with Tegra20 that > contain EMC tables though. well, that may change in the future. In fact, I have a EMC table here for paz00, but only for 333 MHz. I like to submit them once I got 166 MHz values. Marc ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
On 04/09/2012 05:07 PM, Simon Glass wrote: > Hi Stephen, > > On Mon, Apr 9, 2012 at 3:03 PM, Olof Johansson wrote: >> On Mon, Apr 9, 2012 at 2:59 PM, Stephen Warren wrote: >>> On 04/09/2012 03:40 PM, Simon Glass wrote: +Olof Hi Stephen, On Mon, Apr 9, 2012 at 2:27 PM, Stephen Warren wrote: > On 04/05/2012 03:55 PM, Simon Glass wrote: >> From: Jimmy Zhang >> >> Set Seaboard to optimal memory settings based on the SOC in use (T20 or >> T25). >> >> Signed-off-by: Simon Glass >> --- >> Changes in v2: >> - Move EMC tables to device tree >> - Removed check for nominal voltage (not needed as it is done just >> before) >> >> Changes in v3: >> - Add better error reporting when EMC setup fails >> >> Changes in v4: >> - Remove support for T20 memory timings > >> diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c > >> +/* This rate is hard-coded for now, until fdt provides them */ >> +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) >> + >> +int board_emc_init(void) >> +{ >> + unsigned rate; >> + >> + switch (tegra_get_chip_type()) { >> + default: >> + case TEGRA_SOC_T20: >> + debug("%s: EMC timings not supported for T20 Seaboard\n", >> + __func__); > > This isn't Seaboard-specific code, so the string shouldn't say > "Seaboard" there. > > Why not support Tegra20? Many/all of the other Tegra boards U-Boot > supports are Tegra20 not Tegra25. > > Presumably this code doesn't blow up if the EMC tables aren't in the > .dts file; the code should use the tables if they're present, otherwise > be a no-op. I don't mind, we can either go with v3 (with T20) or v4 (without). Both sets of patches are on the list and the removable of T20 support is the only change in v4. Please can you discuss this with Olof? >>> >>> IIRC, Olof objected to the incorrect Seaboard .dts file (which contained >>> two unrelated sets of EMC tables for different board variants), not the >>> ability for the EMC driver itself to function on either Tegra20 or Tegra25. >> >> Correct. I objected to the one device tree describing 50% inaccurate >> contents without a documented way to tell the accurate from inaccurate >> (unlike the case with bootid straps). >> >> What we do on the kernel side is that if the existing programming, >> i.e. what's setup by BCT/u-boot is not matching the clocks in the >> table, then we report it but continue with the existing settings. If >> someone passes in bogus (matching) data in both BCT and the device >> tree then all bets are off. > > OK, that's different from what I understood (remove support for T20 > Seaboard as was apparently done in the kernel). So I think this means > that this patch should revert back to the original version, right? In the kernel, the Seaboard .dts file only supports Tegra25 since the EMC tables we put into that .dts file are for Tegra25. There is no Seaboard-with-Tegra20 .dts file. I don't believe the EMC driver has any code that cares about Tegra20-vs-Tegra25, so should work just fine for either. In practice, we don't have any .dts files for boards with Tegra20 that contain EMC tables though. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
Hi Stephen, On Mon, Apr 9, 2012 at 3:03 PM, Olof Johansson wrote: > On Mon, Apr 9, 2012 at 2:59 PM, Stephen Warren wrote: >> On 04/09/2012 03:40 PM, Simon Glass wrote: >>> +Olof >>> >>> Hi Stephen, >>> >>> On Mon, Apr 9, 2012 at 2:27 PM, Stephen Warren >>> wrote: On 04/05/2012 03:55 PM, Simon Glass wrote: > From: Jimmy Zhang > > Set Seaboard to optimal memory settings based on the SOC in use (T20 or > T25). > > Signed-off-by: Simon Glass > --- > Changes in v2: > - Move EMC tables to device tree > - Removed check for nominal voltage (not needed as it is done just before) > > Changes in v3: > - Add better error reporting when EMC setup fails > > Changes in v4: > - Remove support for T20 memory timings > diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c > +/* This rate is hard-coded for now, until fdt provides them */ > +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) > + > +int board_emc_init(void) > +{ > + unsigned rate; > + > + switch (tegra_get_chip_type()) { > + default: > + case TEGRA_SOC_T20: > + debug("%s: EMC timings not supported for T20 Seaboard\n", > + __func__); This isn't Seaboard-specific code, so the string shouldn't say "Seaboard" there. Why not support Tegra20? Many/all of the other Tegra boards U-Boot supports are Tegra20 not Tegra25. Presumably this code doesn't blow up if the EMC tables aren't in the .dts file; the code should use the tables if they're present, otherwise be a no-op. >>> >>> I don't mind, we can either go with v3 (with T20) or v4 (without). >>> Both sets of patches are on the list and the removable of T20 support >>> is the only change in v4. Please can you discuss this with Olof? >> >> IIRC, Olof objected to the incorrect Seaboard .dts file (which contained >> two unrelated sets of EMC tables for different board variants), not the >> ability for the EMC driver itself to function on either Tegra20 or Tegra25. > > Correct. I objected to the one device tree describing 50% inaccurate > contents without a documented way to tell the accurate from inaccurate > (unlike the case with bootid straps). > > What we do on the kernel side is that if the existing programming, > i.e. what's setup by BCT/u-boot is not matching the clocks in the > table, then we report it but continue with the existing settings. If > someone passes in bogus (matching) data in both BCT and the device > tree then all bets are off. OK, that's different from what I understood (remove support for T20 Seaboard as was apparently done in the kernel). So I think this means that this patch should revert back to the original version, right? > > > -Olof Regards, Simon ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
On Mon, Apr 9, 2012 at 2:59 PM, Stephen Warren wrote: > On 04/09/2012 03:40 PM, Simon Glass wrote: >> +Olof >> >> Hi Stephen, >> >> On Mon, Apr 9, 2012 at 2:27 PM, Stephen Warren wrote: >>> On 04/05/2012 03:55 PM, Simon Glass wrote: From: Jimmy Zhang Set Seaboard to optimal memory settings based on the SOC in use (T20 or T25). Signed-off-by: Simon Glass --- Changes in v2: - Move EMC tables to device tree - Removed check for nominal voltage (not needed as it is done just before) Changes in v3: - Add better error reporting when EMC setup fails Changes in v4: - Remove support for T20 memory timings >>> diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c >>> +/* This rate is hard-coded for now, until fdt provides them */ +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) + +int board_emc_init(void) +{ + unsigned rate; + + switch (tegra_get_chip_type()) { + default: + case TEGRA_SOC_T20: + debug("%s: EMC timings not supported for T20 Seaboard\n", + __func__); >>> >>> This isn't Seaboard-specific code, so the string shouldn't say >>> "Seaboard" there. >>> >>> Why not support Tegra20? Many/all of the other Tegra boards U-Boot >>> supports are Tegra20 not Tegra25. >>> >>> Presumably this code doesn't blow up if the EMC tables aren't in the >>> .dts file; the code should use the tables if they're present, otherwise >>> be a no-op. >> >> I don't mind, we can either go with v3 (with T20) or v4 (without). >> Both sets of patches are on the list and the removable of T20 support >> is the only change in v4. Please can you discuss this with Olof? > > IIRC, Olof objected to the incorrect Seaboard .dts file (which contained > two unrelated sets of EMC tables for different board variants), not the > ability for the EMC driver itself to function on either Tegra20 or Tegra25. Correct. I objected to the one device tree describing 50% inaccurate contents without a documented way to tell the accurate from inaccurate (unlike the case with bootid straps). What we do on the kernel side is that if the existing programming, i.e. what's setup by BCT/u-boot is not matching the clocks in the table, then we report it but continue with the existing settings. If someone passes in bogus (matching) data in both BCT and the device tree then all bets are off. -Olof ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
On 04/09/2012 03:40 PM, Simon Glass wrote: > +Olof > > Hi Stephen, > > On Mon, Apr 9, 2012 at 2:27 PM, Stephen Warren wrote: >> On 04/05/2012 03:55 PM, Simon Glass wrote: >>> From: Jimmy Zhang >>> >>> Set Seaboard to optimal memory settings based on the SOC in use (T20 or >>> T25). >>> >>> Signed-off-by: Simon Glass >>> --- >>> Changes in v2: >>> - Move EMC tables to device tree >>> - Removed check for nominal voltage (not needed as it is done just before) >>> >>> Changes in v3: >>> - Add better error reporting when EMC setup fails >>> >>> Changes in v4: >>> - Remove support for T20 memory timings >> >>> diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c >> >>> +/* This rate is hard-coded for now, until fdt provides them */ >>> +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) >>> + >>> +int board_emc_init(void) >>> +{ >>> + unsigned rate; >>> + >>> + switch (tegra_get_chip_type()) { >>> + default: >>> + case TEGRA_SOC_T20: >>> + debug("%s: EMC timings not supported for T20 Seaboard\n", >>> + __func__); >> >> This isn't Seaboard-specific code, so the string shouldn't say >> "Seaboard" there. >> >> Why not support Tegra20? Many/all of the other Tegra boards U-Boot >> supports are Tegra20 not Tegra25. >> >> Presumably this code doesn't blow up if the EMC tables aren't in the >> .dts file; the code should use the tables if they're present, otherwise >> be a no-op. > > I don't mind, we can either go with v3 (with T20) or v4 (without). > Both sets of patches are on the list and the removable of T20 support > is the only change in v4. Please can you discuss this with Olof? IIRC, Olof objected to the incorrect Seaboard .dts file (which contained two unrelated sets of EMC tables for different board variants), not the ability for the EMC driver itself to function on either Tegra20 or Tegra25. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
+Olof Hi Stephen, On Mon, Apr 9, 2012 at 2:27 PM, Stephen Warren wrote: > On 04/05/2012 03:55 PM, Simon Glass wrote: >> From: Jimmy Zhang >> >> Set Seaboard to optimal memory settings based on the SOC in use (T20 or T25). >> >> Signed-off-by: Simon Glass >> --- >> Changes in v2: >> - Move EMC tables to device tree >> - Removed check for nominal voltage (not needed as it is done just before) >> >> Changes in v3: >> - Add better error reporting when EMC setup fails >> >> Changes in v4: >> - Remove support for T20 memory timings > >> diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c > >> +/* This rate is hard-coded for now, until fdt provides them */ >> +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) >> + >> +int board_emc_init(void) >> +{ >> + unsigned rate; >> + >> + switch (tegra_get_chip_type()) { >> + default: >> + case TEGRA_SOC_T20: >> + debug("%s: EMC timings not supported for T20 Seaboard\n", >> + __func__); > > This isn't Seaboard-specific code, so the string shouldn't say > "Seaboard" there. > > Why not support Tegra20? Many/all of the other Tegra boards U-Boot > supports are Tegra20 not Tegra25. > > Presumably this code doesn't blow up if the EMC tables aren't in the > .dts file; the code should use the tables if they're present, otherwise > be a no-op. I don't mind, we can either go with v3 (with T20) or v4 (without). Both sets of patches are on the list and the removable of T20 support is the only change in v4. Please can you discuss this with Olof? > >> + return -1; >> + case TEGRA_SOC_T25: >> + rate = EMC_SDRAM_RATE_T25; >> + break; >> + } >> + return tegra_set_emc(gd->fdt_blob, rate); >> +} Regards, Simon ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
On 04/05/2012 03:55 PM, Simon Glass wrote: > From: Jimmy Zhang > > Set Seaboard to optimal memory settings based on the SOC in use (T20 or T25). > > Signed-off-by: Simon Glass > --- > Changes in v2: > - Move EMC tables to device tree > - Removed check for nominal voltage (not needed as it is done just before) > > Changes in v3: > - Add better error reporting when EMC setup fails > > Changes in v4: > - Remove support for T20 memory timings > diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c > +/* This rate is hard-coded for now, until fdt provides them */ > +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) > + > +int board_emc_init(void) > +{ > + unsigned rate; > + > + switch (tegra_get_chip_type()) { > + default: > + case TEGRA_SOC_T20: > + debug("%s: EMC timings not supported for T20 Seaboard\n", > + __func__); This isn't Seaboard-specific code, so the string shouldn't say "Seaboard" there. Why not support Tegra20? Many/all of the other Tegra boards U-Boot supports are Tegra20 not Tegra25. Presumably this code doesn't blow up if the EMC tables aren't in the .dts file; the code should use the tables if they're present, otherwise be a no-op. > + return -1; > + case TEGRA_SOC_T25: > + rate = EMC_SDRAM_RATE_T25; > + break; > + } > + return tegra_set_emc(gd->fdt_blob, rate); > +} ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH v4 19/23] tegra: Add EMC settings for Seaboard
From: Jimmy Zhang Set Seaboard to optimal memory settings based on the SOC in use (T20 or T25). Signed-off-by: Simon Glass --- Changes in v2: - Move EMC tables to device tree - Removed check for nominal voltage (not needed as it is done just before) Changes in v3: - Add better error reporting when EMC setup fails Changes in v4: - Remove support for T20 memory timings board/nvidia/common/Makefile |1 + board/nvidia/common/board.c | 13 - board/nvidia/common/emc.c| 53 ++ board/nvidia/common/emc.h| 29 +++ 4 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 board/nvidia/common/emc.c create mode 100644 board/nvidia/common/emc.h diff --git a/board/nvidia/common/Makefile b/board/nvidia/common/Makefile index 3e748fd..a93d458 100644 --- a/board/nvidia/common/Makefile +++ b/board/nvidia/common/Makefile @@ -27,6 +27,7 @@ LIB = $(obj)lib$(VENDOR).o COBJS-y += board.o COBJS-$(CONFIG_SPI_UART_SWITCH) += uart-spi-switch.o +COBJS-$(CONFIG_TEGRA_CLOCK_SCALING) += emc.o COBJS := $(COBJS-y) SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c index 1d6b002..e2cdb6e 100644 --- a/board/nvidia/common/board.c +++ b/board/nvidia/common/board.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,7 @@ #include #include #include "board.h" +#include "emc.h" DECLARE_GLOBAL_DATA_PTR; @@ -82,6 +84,8 @@ static void power_det_init(void) */ int board_init(void) { + int err; + /* Do clocks and UART first so that printf() works */ clock_init(); clock_verify(); @@ -105,8 +109,13 @@ int board_init(void) # ifdef CONFIG_TEGRA_PMU if (pmu_set_nominal()) debug("Failed to select nominal voltages\n"); -# endif -#endif +# ifdef CONFIG_TEGRA_CLOCK_SCALING + err = board_emc_init(); + if (err) + debug("Memory controller init failed: %d\n", err); +# endif +# endif /* CONFIG_TEGRA_PMU */ +#endif /* CONFIG_TEGRA_I2C */ #ifdef CONFIG_USB_EHCI_TEGRA pin_mux_usb(); diff --git a/board/nvidia/common/emc.c b/board/nvidia/common/emc.c new file mode 100644 index 000..e7f68a0 --- /dev/null +++ b/board/nvidia/common/emc.c @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2011 The Chromium OS Authors. + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +/* This rate is hard-coded for now, until fdt provides them */ +#define EMC_SDRAM_RATE_T25 (38 * 2 * 1000) + +int board_emc_init(void) +{ + unsigned rate; + + switch (tegra_get_chip_type()) { + default: + case TEGRA_SOC_T20: + debug("%s: EMC timings not supported for T20 Seaboard\n", + __func__); + return -1; + case TEGRA_SOC_T25: + rate = EMC_SDRAM_RATE_T25; + break; + } + return tegra_set_emc(gd->fdt_blob, rate); +} diff --git a/board/nvidia/common/emc.h b/board/nvidia/common/emc.h new file mode 100644 index 000..ec1b115 --- /dev/null +++ b/board/nvidia/common/emc.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2011 The Chromium OS Authors. + * (C) Copyright 2010,2011 NVIDIA Corporation + * + * 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-130