summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/arch-tegra20
AgeCommit message (Collapse)Author
2025-04-12ARM: tegra20: add funcmux for exposing UART over uSD slot on Tegra 20Artur Kowalski
UART-A can be exposed through uSD, this was tested on Transformer T20 but should work on all Ventana-based boards. TX is exported on SDD pingroup corresponding to uSD CLK pin RX is exported on SDB which is CMD pin in uSD slot Signed-off-by: Artur Kowalski <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19pinctrl: tegra20: fix function naming mismatchesSvyatoslav Ryhel
The names used for displaya, displayb and i2c1 do not align with their corresponding Linux counterparts. This inconsistency can cause pins to be configured incorrectly, potentially breaking existing functionality. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dc: remove hardcoded Tegra 2 specific partsSvyatoslav Ryhel
Since pinmux driver now is available for Tegra 2, these parts may be removed from here and defined either in device tree or in the device board files. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: tegra20: consolidate DC headerSvyatoslav Ryhel
Consolidate HD headers and place the result into video/tegra20 since it is used only by devices from this directory. Tested-by: Agneli <[email protected]> # Toshiba AC100 T20 Tested-by: Robert Eckelmann <[email protected]> # ASUS TF101 Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS Grouper E1565 Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2023-12-19drivers: pinctrl: create Tegra DM pinctrl driverSvyatoslav Ryhel
The existing pinctrl driver available for Tegra SOC is well designed, but it lacks DM support. Let's add a DM compatible overlay, which allows use of the device tree, along with preserving backward compatibility with all existing setups and the ability to use it in SPL board configuration stage. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2022-01-19doc: replace @return by Return:Heinrich Schuchardt
Sphinx expects Return: and not @return to indicate a return value. find . -name '*.c' -exec \ sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \; find . -name '*.h' -exec \ sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \; Signed-off-by: Heinrich Schuchardt <[email protected]>
2019-06-05ARM: tegra: Use common header for PMU declarationsThierry Reding
There's no need to replicate the pmu.h header file for every Tegra SoC generation. Use a single header that is shared across generations. Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2016-05-31ARM: tegra: use DT bindings for GPIO namingStephen Warren
There are currently many places that define the list of all Tegra GPIOs; the DT binding header and custom Tegra-specific header file gpio.h. Fix the redundancy by replacing everything with the DT binding header file. Signed-off-by: Stephen Warren <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2016-02-16tegra: video: Move LCD enums into the driverSimon Glass
There is no need to have these in a separate file as they are not referenced from anywhere else. Signed-off-by: Simon Glass <[email protected]> Acked-by: Anatolij Gustschin <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2016-02-16tegra: video: Convert tegra20 LCD driver to driver modelSimon Glass
Move this driver over to use driver model. This involves rearranging the code somewhat. The effect is that everything is run from the probe() method. Boards which use this are fixed up, but only seaboard is tested. Signed-off-by: Simon Glass <[email protected]> Acked-by: Anatolij Gustschin <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2016-02-16tegra: video: Merge the two config structures togetherSimon Glass
We have a structure for the display panel and another for the controller. There is some overlap between them. Merge them to simplify the driver. Signed-off-by: Simon Glass <[email protected]> Acked-by: Anatolij Gustschin <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2016-02-16tegra: video: Merge the display driver into one fileSimon Glass
At present we have code in arch/arm and code in drivers/video. Move it all into drivers/video since it is a display driver and our current approach is to put all driver code in drivers/. Make a few functions static now that they are not used outside the file. Signed-off-by: Simon Glass <[email protected]> Acked-by: Anatolij Gustschin <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2015-09-16ARM: tegra: Implement clk_mThierry Reding
On currently supported SoCs, clk_m always runs at the same frequency as the oscillator input. However newer SoC generations such as Tegra210 no longer have that restriction. Prepare for that by separating clk_m from the oscillator clock and allow SoC code to override the clk_m rate. Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2015-05-13tegra: Move display controller header into commonSimon Glass
Allow this to be used by other Tegra SoCs. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2015-05-13tegra: Move the pwm into tegra-commonSimon Glass
This is needed for tegra124 also, so make it common and add a header file for tegra124. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2015-04-23ARM: ARM720t: remove empty asm/arch/hardware.hMasahiro Yamada
arch/arm/cpu/arm720t/start.S includes <asm/arch/hardware.h>, but the hardware.h headers of ARM720T boards are all empty. Signed-off-by: Masahiro Yamada <[email protected]> Cc: Linus Walleij <[email protected]> Cc: Stephen Warren <[email protected]> Cc: Tom Warren <[email protected]>
2015-03-04ARM: tegra: pinmux: account for different drivegroup base registersStephen Warren
Tegra210 starts its drive group registers at a different offset from the APB MISC register block that other SoCs. Update the code to handle this. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2015-01-29dm: tegra: video: Remove use of fdtdec GPIO supportSimon Glass
These functions are going away, so use the new uclass support instead. Signed-off-by: Simon Glass <[email protected]>
2014-12-18ARM: tegra: Implement powergate supportThierry Reding
Implement the powergate API that allows various power partitions to be power up and down. Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-12-18ARM: tegra: Provide PCIEXCLK reset IDThierry Reding
This reset is required for PCIe and the corresponding ID therefore needs to be defined. The enumeration value for this was properly defined on some SoCs but not on others. Similarly, some contained it in the mapping of peripheral IDs to clock IDs, other didn't. This patch defines it consistently for all supported SoC generations. Acked-by: Stephen Warren <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-12-18ARM: tegra: Implement tegra_plle_enable()Thierry Reding
This function is required by PCIe and SATA. This patch implements it on Tegra20, Tegra30 and Tegra124. It isn't implemented for Tegra114 because it doesn't support PCIe or SATA. Acked-by: Stephen Warren <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-10-23Merge branch 'master' of git://git.denx.de/u-boot-tegraTom Rini
2014-10-22dm: tegra: spi: Convert to driver modelSimon Glass
This converts the Tegra SPI drivers to use driver model. This is tested on: - Tegra20 - trimslice - Tegra30 - beaver - Tegra124 - dalmore (not tested on Tegra124) Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2014-10-22ARM: tegra: Use mem size from MC in combination with get_ram_size()Marcel Ziswiler
On popular request this now completes the Warren's work started for TK1: aeb3fcb35956461077804720b8a252d50758d7e0 ARM: tegra: Use mem size from MC rather than ODMDATA In addition to the move of using the Tegra memory controller (MC) register rather than ODMDATA for T20, T30 and T114 as well it further uses the generic get_ram_size() function (see "common/memsize.c") <supposed to be used in each and every U-Boot port>TM. Added benefit is that it should <catch 99% of hardware related (i. e. reliably reproducible) memory errors> as well. Thoroughly tested on the various Toradex line of Tegra modules available which unfortunately does not include T114 and T124 (yet at least) plus on the Jetson TK1. Based-on-work-by: Stephen Warren <[email protected]> Based-on-work-by: Tom Warren <[email protected]> Signed-off-by: Marcel Ziswiler <[email protected]> Acked-by: Stephen Warren <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-08-30tegra: kconfig: move board select menu and common settingsMasahiro Yamada
Becuase the board select menu in arch/arm/Kconfig is too big, move the Tegra board select menu to tegra/Kconfig. Insert the Tegra SoC select menu between the arch select and the board select. Architecture select |-- Tegra Platform (Tegra) |- Tegra SoC select (Tegra20 / 30 / 114 / 124) |- Board select Consolidate also common settings (CONFIG_SYS_CPU="armv7" and CONFIG_SYS_SOC="tegra*") and always "select" CONFIG_SPL as follows: config TEGRA bool select SPL Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Stephen Warren <[email protected]> Cc: Tom Warren <[email protected]>
2014-06-06spl: consolidate arch/arm/include/asm/arch-*/spl.hMasahiro Yamada
arch/arm/include/asm/spl.h requires all SoCs to have arch/arm/include/asm/arch-*/spl.h. But many of them just define BOOT_DEVICE_* macros. Those macros are used in the "switch (boot_device) { ... }" statement in common/spl/spl.c. So they should not be archtecture specific, but be described as a simpile enumeration. This commit merges most of arch/arm/include/asm/arch-*/spl.h into arch/arm/include/asm/spl.h. With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h will be merged, while I am not sure about OMAP and Exynos. Signed-off-by: Masahiro Yamada <[email protected]> Cc: Tom Rini <[email protected]> Cc: Michal Simek <[email protected]> Cc: Andreas Bießmann <[email protected]> Cc: Stephen Warren <[email protected]> Cc: Tom Warren <[email protected]> CC: Stefano Babic <[email protected]> CC: Minkyu Kang <[email protected]> Cc: Dinh Nguyen <[email protected]> Acked-by: Andreas Bießmann <[email protected]> Acked-by: Michal Simek <[email protected]> Acked-by: Stefano Babic <[email protected]> Acked-by: Stephen Warren <[email protected]> Acked-by: Tim Harvey <[email protected]> Tested-by: Bo Shen <[email protected]> [on sama5d3xek board for at91 part] Acked-by: Stephen Warren <[email protected]> Tested-by: Stefano Babic <[email protected]> [applying Tim's i.MX6 patches] Acked-by: Tom Rini <[email protected]>
2014-05-13ARM: tegra: allow pinmux mux option not to be set by init tablesStephen Warren
Define enum PMUX_FUNC_DEFAULT, which indicates that a table entry passed to pinmux_config_pingrp()/pinmux_config_pingrp_table() shouldn't change the mux option in HW. For pins that will be used as GPIOs, the mux option is irrelevant, so we simply don't want to define any mux option in the pinmux initialization table. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: pack pinmux data tables tighterStephen Warren
Use smaller fields in the Tegra pinmux structures in order to pack the data tables into a smaller space. This saves around 1-3KB for the SPL and around 3-8KB for the main build of U-Boot, depending on the board, which SoC it uses, and how many pinmux table entries there are. In order to pack PMUX_FUNC_* into a smaller space, don't hard-code the values of PMUX_FUNC_RSVD* to values which require 16 bits to store them, but instead let their values be assigned automatically, so they end up fitting into 8 bits. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17usb: tegra: combine header fileStefan Agner
Combine the Tegra USB header file into one header file for all SoCs. Use ifdef to account for the difference, especially Tegra20 is quite different from newer SoCs. This avoids duplication, mainly for Tegra30 and newer devices. Reviewed-by: Stephen Warren <[email protected]> Signed-off-by: Stefan Agner <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17usb: tegra: fix PHY configurationStefan Agner
On Tegra30 and later, the PTS (parallel transceiver select) and STS (serial transceiver select) are part of the HOSTPC1_DEVLC_0 register rather than PORTSC1_0 register. Since the reset configuration usually matches the intended configuration, this error did not show up on Tegra30 devices. Also use the slightly different bit fields of first USB, (USBD) on Tegra20 and move those definitions to the Tegra20 specific header file. Reviewed-by: Stephen Warren <[email protected]> Signed-off-by: Stefan Agner <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: Tegra20 pinmux cleanupStephen Warren
This renames all the Tegra20 pinmux pins and functions so they have a prefix which matches the type name. The entries in tegra20_pingroups[] are all updated to remove the columns which are no longer used. All affected code is updated to match. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: pinmux naming consistency fixesStephen Warren
Clean up the naming of pinmux-related objects: * Refer to drive groups rather than pad groups to match the Linux kernel. * Ensure all pinmux API types are prefixed with pmux_, values (defines) are prefixed with PMUX_, and functions prefixed with pinmux_. * Modify a few type names to make their content clearer. * Minimal changes to SoC-specific .h/.c files are made so the code still compiles. A separate per-SoC change will be made immediately following, in order to keep individual patch size down. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: pinctrl: remove duplicationStephen Warren
Much of arch/arm/cpu/tegra*-common/pinmux.c is identical. Remove the duplication by creating pinmux-common.c for all the identical code. This leaves: * arch/arm/include/asm/arch-tegra*/pinmux.h defining only the names of the various pins/pin groups, drive groups, and mux functions. * arch/arm/cpu/tegra*-common/pinmux.c containing only the lookup table stating which pin groups support which mux functions. The code in pinmux-common.c is semantically identical to that in the various original pinmux.c, but had some consistency and cleanup fixes applied during migration. I removed the definition of struct pmux_tri_ctlr, since this is different between SoCs (especially Tegra20 vs all others), and it's much simpler to deal with this via the new REG/MUX_REG/... defines. spl.c, warmboot.c, and warmboot_avp.c needed updates due to this, since they previously hijacked this struct to encode the location of some non-pinmux registers. Now, that code simply calculates these register addresses directly using simple and obvious math. I like this method better irrespective of the pinmux code cleanup anyway. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: use apb_misc.h in more placesStephen Warren
Tegra's "APB misc" register region contains various miscellaneous registers and the Tegra pinmux registers. Some code that touches the misc registers currently uses struct pmux_tri_ctlr, which is intended to be a definition of pinmux registers, rather than struct apb_misc_pp_ctrl, which is intended to be a definition of the miscellaneous registers. Convert all such code to use struct apb_misc_pp_ctrl, since struct pmux_tri_ctlr goes away in the next patch. This requires adding a missing field definition to struct apb_misc_pp_ctrl, and moving the header into a more common location. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: pinctrl: make pmux_func values consistent on Tegra20Stephen Warren
For consistency with other SoCs, modify Tegra20's enum pmux_func to: * Remove PMUX_FUNC values that aren't real * Use the same PMUX_FUNC_RSVD[1-4] values, and ensure (RSVD1 & 3)==0; this will be assumed by pinmux_set_func() in a future patch. Unfortunately, PMUX_FUNC_RSVD is still used in the pin macros. Use a private define inside the driver to prevent this from causing compilaton errors. This will be cleaned up when the pin tables are re-written in a later patch in this series. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: pinctrl: remove vddioStephen Warren
This field isn't used anywhere, so remove it. Note that PIN() macros are left unchanged for now, to avoid many diffs to them; later commits will completely rewrite them just one time. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-04-17ARM: tegra: pinctrl: remove func_safeStephen Warren
This field isn't used anywhere, so remove it. Note that PIN() macros are left unchanged for now, to avoid many diffs to them; later commits will completely rewrite them just one time. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2014-03-05ARM: tegra: move CONFIG_TEGRAnnStephen Warren
<asm/arch-tegra/tegra.h> needs to use CONFIG_TEGRA* to conditionalize some definitions, since some modules moved between generations. Move the definition of CONFIG_TEGRAnn to a header that's included earlier, so that it's set by the time tegra.h needs to use it. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2013-07-24Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <[email protected]>
2013-07-11ARM: Tegra: USB: EHCI: Add support for Tegra30/Tegra114Jim Lin
Tegra30 and Tegra114 are compatible except PLL parameters. Tested on Tegra30 Cardhu, and Tegra114 Dalmore platforms. All works well. Signed-off-by: Jim Lin <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2013-03-25spi: add common fdt SPI driver interfaceAllen Martin
Add a common interface to fdt based SPI drivers. Each driver is represented by a table entry in fdt_spi_drivers[]. If there are multiple SPI drivers in the table, the first driver to return success from spi_init() will be registered as the SPI driver. Signed-off-by: Allen Martin <[email protected]> Signed-off-by: Tom Warren <[email protected]> Reviewed-by: Stephen Warren <[email protected]>
2013-03-25tegra: spi: pull register structs out of headersAllen Martin
Move register structs from headers into .c files and use common name. This is in preparation of making common fdt front end for SPI drivers. Signed-off-by: Allen Martin <[email protected]> Signed-off-by: Tom Warren <[email protected]> Reviewed-by: Stephen Warren <[email protected]>
2013-03-25tegra: spi: rename tegra SPI driversAllen Martin
Rename tegra SPI drivers to tegra20_flash and tegra20_slink in preparation for commonization and addition of tegra114_spi. Signed-off-by: Allen Martin <[email protected]> Signed-off-by: Tom Warren <[email protected]> Reviewed-by: Stephen Warren <[email protected]>
2013-03-25tegra: remove support for UART SPI switchAllen Martin
This feature was only used for tegra20 seaboard that had a pinmux conflict on the SPI pins. These boards were never manufactured, so remove this support to clean up SPI driver. Signed-off-by: Allen Martin <[email protected]> Signed-off-by: Tom Warren <[email protected]> Reviewed-by: Stephen Warren <[email protected]>
2013-03-14tegra: usb: move implementation into right directoryLucas Stach
This moves the Tegra USB implementation into the drivers/usb/host directory. Note that this merges the old /arch/arm/cpu/armv7/tegra20/usb.c file into ehci-tegra.c. No code changes, just moving stuff around. v2: While at it also move some defines and the usb.h header file to make usb driver usable for Tegra30. NOTE: A lot more work is required to properly init the PHYs and PLL_U on Tegra30, this is just to make porting easier and it does no harm here. Signed-off-by: Lucas Stach <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2013-03-14tegra: usb: various small cleanupsLucas Stach
Remove unneeded headers, function prototype and stale comment, that doesn't match the actual codebase anymore. Signed-off-by: Lucas Stach <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2013-02-11tegra: rename FUNCMUX_UART2_UARTBStephen Warren
FUNCMUX_ defines should be named after the pin groups they affect, not after the module they're muxing onto those pin groups. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2013-02-11Tegra: Move common clock code to arch/arm/cpu/tegra-common/clock.cTom Warren
This 'commonizes' much of the clock/pll code. SoC-dependent code and tables are left in arch/cpu/tegraXXX-common/clock.c Some T30 tables needed whitespace fixes due to checkpatch complaints. Signed-off-by: Tom Warren <[email protected]>
2013-01-16tegra: remove IRDA pinmux synonymAllen Martin
IRDA is a synonym for UARTB in tegra pinmux, remove all usage of this synonym and replace with UARTB to disambiguate. Signed-off-by: Allen Martin <[email protected]> Reviewed-by: Stephen Warren <[email protected]> Signed-off-by: Tom Warren <[email protected]>