From e070311ce8073a4ca3a2cdf634da36963a9803cd Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 23 Apr 2019 21:56:23 -0600 Subject: sound: snow: Add the binding file for snow This file was missed when adding the sound driver to U-Boot. Bring it in from Linux 5.0. Signed-off-by: Simon Glass Signed-off-by: Tom Warren --- doc/device-tree-bindings/sound/snow.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 doc/device-tree-bindings/sound/snow.txt diff --git a/doc/device-tree-bindings/sound/snow.txt b/doc/device-tree-bindings/sound/snow.txt new file mode 100644 index 0000000000..80fd9a87bb --- /dev/null +++ b/doc/device-tree-bindings/sound/snow.txt @@ -0,0 +1,31 @@ +Audio Binding for Snow boards + +Required properties: +- compatible : Can be one of the following, + "google,snow-audio-max98090" or + "google,snow-audio-max98091" or + "google,snow-audio-max98095" +- samsung,i2s-controller (deprecated): The phandle of the Samsung I2S controller +- samsung,audio-codec (deprecated): The phandle of the audio codec + +Required sub-nodes: + + - 'cpu' subnode with a 'sound-dai' property containing the phandle of the I2S + controller + - 'codec' subnode with a 'sound-dai' property containing list of phandles + to the CODEC nodes, first entry must be the phandle of the MAX98090, + MAX98091 or MAX98095 CODEC (exact device type is indicated by the compatible + string) and the second entry must be the phandle of the HDMI IP block node + +Optional: +- samsung,model: The name of the sound-card + +Example: + +sound { + compatible = "google,snow-audio-max98095"; + + samsung,model = "Snow-I2S-MAX98095"; + samsung,i2s-controller = <&i2s0>; + samsung,audio-codec = <&max98095>; +}; -- cgit From 9944d753cbc616d7b1004a40a56146b8fb51544b Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 23 Apr 2019 21:56:24 -0600 Subject: sound: tegra: Add the binding file for tegra-audio This file was missed when adding the sound driver to U-Boot. Bring it in from Linux 5.0. Signed-off-by: Simon Glass Acked-by: Jon Hunter Signed-off-by: Tom Warren --- .../sound/nvidia,tegra-audio-max98090.txt | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt diff --git a/doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt b/doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt new file mode 100644 index 0000000000..c3495beba3 --- /dev/null +++ b/doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt @@ -0,0 +1,53 @@ +NVIDIA Tegra audio complex, with MAX98090 CODEC + +Required properties: +- compatible : "nvidia,tegra-audio-max98090" +- clocks : Must contain an entry for each entry in clock-names. + See ../clocks/clock-bindings.txt for details. +- clock-names : Must include the following entries: + - pll_a + - pll_a_out0 + - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) +- nvidia,model : The user-visible name of this sound complex. +- nvidia,audio-routing : A list of the connections between audio components. + Each entry is a pair of strings, the first being the connection's sink, + the second being the connection's source. Valid names for sources and + sinks are the MAX98090's pins (as documented in its binding), and the jacks + on the board: + + * Headphones + * Speakers + * Mic Jack + * Int Mic + +- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's + connected to the CODEC. +- nvidia,audio-codec : The phandle of the MAX98090 audio codec. + +Optional properties: +- nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in +- nvidia,mic-det-gpios : The GPIO that detect microphones are plugged in + +Example: + +sound { + compatible = "nvidia,tegra-audio-max98090-venice2", + "nvidia,tegra-audio-max98090"; + nvidia,model = "NVIDIA Tegra Venice2"; + + nvidia,audio-routing = + "Headphones", "HPR", + "Headphones", "HPL", + "Speakers", "SPKR", + "Speakers", "SPKL", + "Mic Jack", "MICBIAS", + "IN34", "Mic Jack"; + + nvidia,i2s-controller = <&tegra_i2s1>; + nvidia,audio-codec = <&acodec>; + + clocks = <&tegra_car TEGRA124_CLK_PLL_A>, + <&tegra_car TEGRA124_CLK_PLL_A_OUT0>, + <&tegra_car TEGRA124_CLK_EXTERN1>; + clock-names = "pll_a", "pll_a_out0", "mclk"; +}; -- cgit From b4bf71456da6d4f39af188ad1d70192890504417 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 23 Apr 2019 21:56:25 -0600 Subject: sound: Add codec enable to the sound bindings For U-Boot we allow a GPIO to be specified to enable the codec. Add this to the relevant binding files. Signed-off-by: Simon Glass Signed-off-by: Tom Warren --- doc/device-tree-bindings/sound/intel-hda.txt | 1 + doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt | 1 + doc/device-tree-bindings/sound/snow.txt | 1 + 3 files changed, 3 insertions(+) diff --git a/doc/device-tree-bindings/sound/intel-hda.txt b/doc/device-tree-bindings/sound/intel-hda.txt index fb2ce55006..aa96be06e9 100644 --- a/doc/device-tree-bindings/sound/intel-hda.txt +++ b/doc/device-tree-bindings/sound/intel-hda.txt @@ -12,6 +12,7 @@ Required properties: Optional properties - intel,beep-nid: Node ID to use for beep (will be detected if not provided) +- codec-enable-gpio : The GPIO used to enable the audio codec Required subnodes: - codecs: Contains a list of codec nodes diff --git a/doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt b/doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt index c3495beba3..25c63eac62 100644 --- a/doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt +++ b/doc/device-tree-bindings/sound/nvidia,tegra-audio-max98090.txt @@ -27,6 +27,7 @@ Required properties: Optional properties: - nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in - nvidia,mic-det-gpios : The GPIO that detect microphones are plugged in +- codec-enable-gpio : The GPIO used to enable the audio codec Example: diff --git a/doc/device-tree-bindings/sound/snow.txt b/doc/device-tree-bindings/sound/snow.txt index 80fd9a87bb..fa06956e77 100644 --- a/doc/device-tree-bindings/sound/snow.txt +++ b/doc/device-tree-bindings/sound/snow.txt @@ -19,6 +19,7 @@ Required sub-nodes: Optional: - samsung,model: The name of the sound-card +- codec-enable-gpio : The GPIO used to enable the audio codec Example: -- cgit From b78d97ea4979d3028237fb4880697423e1438a31 Mon Sep 17 00:00:00 2001 From: Trent Piepho Date: Mon, 1 Apr 2019 23:05:49 +0000 Subject: mmc: Move tegra loopback disable option to be under tegra This is a configuration option specific to the tegra controller. Doing it this way makes it show up directly under the tegra controller option, indented one level, as "Disable external clock loopback". The way it is now, it shows up at the end of the controller list, not indented, as if it's some kind of generic MMC configuration option. Cc: Marcel Ziswiler Cc: Simon Glass Cc: Jaehoon Chung Cc: Tom Warren Signed-off-by: Trent Piepho Reviewed-by: Simon Glass Acked-by: Marcel Ziswiler Signed-off-by: Tom Warren --- drivers/mmc/Kconfig | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index 66097ce0e7..c6812f6517 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -592,6 +592,17 @@ config MMC_SDHCI_TEGRA If unsure, say N. +config TEGRA124_MMC_DISABLE_EXT_LOOPBACK + bool "Disable external clock loopback" + depends on MMC_SDHCI_TEGRA && TEGRA124 + help + Disable the external clock loopback and use the internal one on SDMMC3 + as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits + being set to 0xfffd according to the TRM. + + TODO(marcel.ziswiler@toradex.com): Move to device tree controlled + approach once proper kernel integration made it mainline. + config MMC_SDHCI_ZYNQ bool "Arasan SDHCI controller support" depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL @@ -671,17 +682,6 @@ config MMC_MTK endif -config TEGRA124_MMC_DISABLE_EXT_LOOPBACK - bool "Disable external clock loopback" - depends on MMC_SDHCI_TEGRA && TEGRA124 - help - Disable the external clock loopback and use the internal one on SDMMC3 - as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits - being set to 0xfffd according to the TRM. - - TODO(marcel.ziswiler@toradex.com): Move to device tree controlled - approach once proper kernel integration made it mainline. - config FSL_ESDHC bool "Freescale/NXP eSDHC controller support" help -- cgit From f028c9f437b02fcafcb78b651876b7e58d62e54b Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Fri, 14 Jun 2019 10:59:10 +0300 Subject: colibri/apalis tegra: drop DFU support We never really added a sensible DFU configuration for platforms based on eMMC. Most of the things one might want to do can also be done with UMS or fastboot, so drop the DFU configuration. Signed-off-by: Igor Opaniuk Reviewed-by: Philippe Schenker Signed-off-by: Tom Warren --- configs/apalis-tk1_defconfig | 3 --- configs/apalis_t30_defconfig | 3 --- configs/colibri_t20_defconfig | 3 --- configs/colibri_t30_defconfig | 3 --- 4 files changed, 12 deletions(-) diff --git a/configs/apalis-tk1_defconfig b/configs/apalis-tk1_defconfig index 41f3aff149..25f926dda3 100644 --- a/configs/apalis-tk1_defconfig +++ b/configs/apalis-tk1_defconfig @@ -17,7 +17,6 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_SPL_TEXT_BASE=0x80108000 CONFIG_SYS_PROMPT="Apalis TK1 # " # CONFIG_CMD_IMI is not set -CONFIG_CMD_DFU=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y @@ -34,8 +33,6 @@ CONFIG_DEFAULT_DEVICE_TREE="tegra124-apalis" CONFIG_IP_DEFRAG=y CONFIG_TFTP_BLOCKSIZE=16352 CONFIG_SPL_DM=y -CONFIG_DFU_MMC=y -CONFIG_DFU_RAM=y CONFIG_SYS_I2C_TEGRA=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_TEGRA124_MMC_DISABLE_EXT_LOOPBACK=y diff --git a/configs/apalis_t30_defconfig b/configs/apalis_t30_defconfig index cf4d14434d..75b5a1dca3 100644 --- a/configs/apalis_t30_defconfig +++ b/configs/apalis_t30_defconfig @@ -14,7 +14,6 @@ CONFIG_ARCH_MISC_INIT=y CONFIG_SPL_TEXT_BASE=0x80108000 CONFIG_SYS_PROMPT="Apalis T30 # " # CONFIG_CMD_IMI is not set -CONFIG_CMD_DFU=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y @@ -31,8 +30,6 @@ CONFIG_DEFAULT_DEVICE_TREE="tegra30-apalis" CONFIG_IP_DEFRAG=y CONFIG_TFTP_BLOCKSIZE=16352 CONFIG_SPL_DM=y -CONFIG_DFU_MMC=y -CONFIG_DFU_RAM=y CONFIG_SYS_I2C_TEGRA=y CONFIG_E1000=y CONFIG_PCI=y diff --git a/configs/colibri_t20_defconfig b/configs/colibri_t20_defconfig index 170a1b0b27..73d13bbb06 100644 --- a/configs/colibri_t20_defconfig +++ b/configs/colibri_t20_defconfig @@ -13,7 +13,6 @@ CONFIG_ARCH_MISC_INIT=y CONFIG_SPL_TEXT_BASE=0x00108000 CONFIG_SYS_PROMPT="Colibri T20 # " # CONFIG_CMD_IMI is not set -CONFIG_CMD_DFU=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y @@ -39,8 +38,6 @@ CONFIG_ENV_IS_IN_NAND=y CONFIG_IP_DEFRAG=y CONFIG_TFTP_BLOCKSIZE=1536 CONFIG_SPL_DM=y -CONFIG_DFU_MMC=y -CONFIG_DFU_RAM=y CONFIG_SYS_I2C_TEGRA=y CONFIG_MTD=y CONFIG_MTD_UBI_FASTMAP=y diff --git a/configs/colibri_t30_defconfig b/configs/colibri_t30_defconfig index 769f6f3c9e..1e2268a105 100644 --- a/configs/colibri_t30_defconfig +++ b/configs/colibri_t30_defconfig @@ -14,7 +14,6 @@ CONFIG_ARCH_MISC_INIT=y CONFIG_SPL_TEXT_BASE=0x80108000 CONFIG_SYS_PROMPT="Colibri T30 # " # CONFIG_CMD_IMI is not set -CONFIG_CMD_DFU=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y @@ -30,8 +29,6 @@ CONFIG_DEFAULT_DEVICE_TREE="tegra30-colibri" CONFIG_IP_DEFRAG=y CONFIG_TFTP_BLOCKSIZE=16352 CONFIG_SPL_DM=y -CONFIG_DFU_MMC=y -CONFIG_DFU_RAM=y CONFIG_SYS_I2C_TEGRA=y CONFIG_SYS_NS16550=y CONFIG_USB=y -- cgit From 5b5de78b4a6ff8c2bbd71a6b51d6fdf32f420eef Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Thu, 1 Aug 2019 11:06:31 +0300 Subject: apalis-tk1: do not explicitly release reset_moci# By keeping RESET_MOCI_CTRL low we avoid explicitly releasing RESET_MOCI#. Please note that module hardware versions up to V1.1A will already release RESET_MOCI# in hardware coming out of reset. Please further note that with this change the USB hub on the Apalis Evaluation board is kept in reset in U-Boot and therefore none of its ports are operational in U-Boot. Reviewed-by: Oleksandr Suvorov Signed-off-by: Marcel Ziswiler Signed-off-by: Igor Opaniuk Signed-off-by: Tom Warren --- board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h b/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h index 1584d9b2d3..d2d24c4391 100644 --- a/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h +++ b/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h @@ -39,7 +39,7 @@ static const struct tegra_gpio_config apalis_tk1_gpio_inits[] = { GPIO_INIT(R, 1, OUT0), /* Shift_CTRL_Dir_In[1] */ GPIO_INIT(R, 2, OUT0), /* Shift_CTRL_OE[3] */ GPIO_INIT(S, 3, OUT0), /* Shift_CTRL_Dir_In[2] */ - GPIO_INIT(U, 4, OUT1), + GPIO_INIT(U, 4, OUT0), /* RESET_MOCI_CTRL */ GPIO_INIT(W, 3, IN), GPIO_INIT(W, 5, IN), GPIO_INIT(BB, 0, IN), -- cgit From 538ab6c0a1a51da0caf9525607499e8cd6ef12b7 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Thu, 1 Aug 2019 11:06:32 +0300 Subject: apalis-tk1: set apalis gpio 8 aka fan_en Make sure the Apalis GPIO 8 aka FAN_EN is on when using Apalis TK1 modules. Reviewed-by: Oleksandr Suvorov Signed-off-by: Igor Opaniuk Signed-off-by: Dominik Sliwa Signed-off-by: Tom Warren --- board/toradex/apalis-tk1/apalis-tk1.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/board/toradex/apalis-tk1/apalis-tk1.c b/board/toradex/apalis-tk1/apalis-tk1.c index b87e9e7a3e..d57c5042dd 100644 --- a/board/toradex/apalis-tk1/apalis-tk1.c +++ b/board/toradex/apalis-tk1/apalis-tk1.c @@ -19,6 +19,7 @@ #define LAN_DEV_OFF_N TEGRA_GPIO(O, 6) #define LAN_RESET_N TEGRA_GPIO(S, 2) +#define FAN_EN TEGRA_GPIO(DD, 2) #define LAN_WAKE_N TEGRA_GPIO(O, 5) #ifdef CONFIG_APALIS_TK1_PCIE_EVALBOARD_INIT #define PEX_PERST_N TEGRA_GPIO(DD, 1) /* Apalis GPIO7 */ @@ -241,6 +242,15 @@ void tegra_pcie_board_port_reset(struct tegra_pcie_port *port) } #endif /* CONFIG_PCI_TEGRA */ +/* + * Enable/start PWM CPU fan + */ +void start_cpu_fan(void) +{ + gpio_request(FAN_EN, "FAN_EN"); + gpio_direction_output(FAN_EN, 1); +} + /* * Backlight off before OS handover */ -- cgit From 8fd734c49cc3dd0c5bc57b4922120483688e3099 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Thu, 1 Aug 2019 11:06:33 +0300 Subject: apalis-tk1: provide proper USB vendor id Use unified values for USB Product/Vendor numbers when the config block is missing Reviewed-by: Oleksandr Suvorov Signed-off-by: Max Krummenacher Signed-off-by: Igor Opaniuk Signed-off-by: Tom Warren --- configs/apalis-tk1_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/apalis-tk1_defconfig b/configs/apalis-tk1_defconfig index 25f926dda3..67f7731a42 100644 --- a/configs/apalis-tk1_defconfig +++ b/configs/apalis-tk1_defconfig @@ -53,7 +53,7 @@ CONFIG_USB_EHCI_TEGRA=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_MANUFACTURER="Toradex" CONFIG_USB_GADGET_VENDOR_NUM=0x1b67 -CONFIG_USB_GADGET_PRODUCT_NUM=0xffff +CONFIG_USB_GADGET_PRODUCT_NUM=0x4000 CONFIG_CI_UDC=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_OF_LIBFDT_OVERLAY=y -- cgit From 11d96e122a29eab51242b6502dd7ff9cce533fef Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Thu, 1 Aug 2019 11:06:34 +0300 Subject: apalis-tk1: enable user debug by default Let the kernel print some debug messages when a user program crashes due to an exception. Signed-off-by: Stefan Agner Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov Signed-off-by: Tom Warren --- include/configs/apalis-tk1.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/configs/apalis-tk1.h b/include/configs/apalis-tk1.h index b4ddd1bdc6..efc52841d1 100644 --- a/include/configs/apalis-tk1.h +++ b/include/configs/apalis-tk1.h @@ -111,7 +111,8 @@ "boot_file=uImage\0" \ "console=ttyS0\0" \ "defargs=lp0_vec=2064@0xf46ff000 core_edp_mv=1150 core_edp_ma=4000 " \ - "usb_port_owner_info=2 lane_owner_info=6 emc_max_dvfs=0\0" \ + "usb_port_owner_info=2 lane_owner_info=6 emc_max_dvfs=0 " \ + "user_debug=30\0" \ "dfu_alt_info=" DFU_ALT_EMMC_INFO "\0" \ EMMC_BOOTCMD \ "fdt_board=eval\0" \ -- cgit From f7c668a4e8dce3975a7c07834c448584f768a44f Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Thu, 1 Aug 2019 11:06:35 +0300 Subject: apalis-tk1: add pcie_aspm=off to defargs Disabling ASPM fixes incompatibilities with some PCIe cards Reviewed-by: Oleksandr Suvorov Signed-off-by: Dominik Sliwa Signed-off-by: Igor Opaniuk Signed-off-by: Tom Warren --- include/configs/apalis-tk1.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/configs/apalis-tk1.h b/include/configs/apalis-tk1.h index efc52841d1..0bde1697bb 100644 --- a/include/configs/apalis-tk1.h +++ b/include/configs/apalis-tk1.h @@ -112,7 +112,7 @@ "console=ttyS0\0" \ "defargs=lp0_vec=2064@0xf46ff000 core_edp_mv=1150 core_edp_ma=4000 " \ "usb_port_owner_info=2 lane_owner_info=6 emc_max_dvfs=0 " \ - "user_debug=30\0" \ + "user_debug=30 pcie_aspm=off\0" \ "dfu_alt_info=" DFU_ALT_EMMC_INFO "\0" \ EMMC_BOOTCMD \ "fdt_board=eval\0" \ -- cgit From 8c57395d494b1a6fbddddacbc402ee40703c89c6 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Thu, 1 Aug 2019 11:06:36 +0300 Subject: apalis-tk1: switch to zImage Switch to the generic compressed Kernel image type (zImage) instead of the U-Boot specific uImage format. Reviewed-by: Oleksandr Suvorov Signed-off-by: Bhuvanchandra DV Signed-off-by: Igor Opaniuk Signed-off-by: Tom Warren --- include/configs/apalis-tk1.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/configs/apalis-tk1.h b/include/configs/apalis-tk1.h index 0bde1697bb..10f2948c62 100644 --- a/include/configs/apalis-tk1.h +++ b/include/configs/apalis-tk1.h @@ -42,7 +42,7 @@ #define DFU_ALT_EMMC_INFO "apalis-tk1.img raw 0x0 0x500 mmcpart 1; " \ "boot part 0 1 mmcpart 0; " \ "rootfs part 0 2 mmcpart 0; " \ - "uImage fat 0 1 mmcpart 0; " \ + "zImage fat 0 1 mmcpart 0; " \ "tegra124-apalis-eval.dtb fat 0 1 mmcpart 0" #define EMMC_BOOTCMD \ @@ -54,7 +54,7 @@ "run emmcdtbload; " \ "load mmc ${emmcdev}:${emmcbootpart} ${kernel_addr_r} " \ "${boot_file} && run fdt_fixup && " \ - "bootm ${kernel_addr_r} - ${dtbparam}\0" \ + "bootz ${kernel_addr_r} - ${dtbparam}\0" \ "emmcbootpart=1\0" \ "emmcdev=0\0" \ "emmcdtbload=setenv dtbparam; load mmc ${emmcdev}:${emmcbootpart} " \ @@ -68,7 +68,7 @@ "nfsboot=pci enum; run setup; setenv bootargs ${defargs} ${nfsargs} " \ "${setupargs} ${vidargs}; echo Booting via DHCP/TFTP/NFS...; " \ "run nfsdtbload; dhcp ${kernel_addr_r} " \ - "&& run fdt_fixup && bootm ${kernel_addr_r} - ${dtbparam}\0" \ + "&& run fdt_fixup && bootz ${kernel_addr_r} - ${dtbparam}\0" \ "nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} " \ "${soc}-apalis-${fdt_board}.dtb " \ "&& setenv dtbparam ${fdt_addr_r}\0" @@ -81,7 +81,7 @@ "${vidargs}; echo Booting from SD card in 8bit slot...; " \ "run sddtbload; load mmc ${sddev}:${sdbootpart} " \ "${kernel_addr_r} ${boot_file} && run fdt_fixup && " \ - "bootm ${kernel_addr_r} - ${dtbparam}\0" \ + "bootz ${kernel_addr_r} - ${dtbparam}\0" \ "sdbootpart=1\0" \ "sddev=1\0" \ "sddtbload=setenv dtbparam; load mmc ${sddev}:${sdbootpart} " \ @@ -98,7 +98,7 @@ "${usbargs} ${vidargs}; echo Booting from USB stick...; " \ "run usbdtbload; load usb ${usbdev}:${usbbootpart} " \ "${kernel_addr_r} ${boot_file} && run fdt_fixup && " \ - "bootm ${kernel_addr_r} - ${dtbparam}\0" \ + "bootz ${kernel_addr_r} - ${dtbparam}\0" \ "usbbootpart=1\0" \ "usbdev=0\0" \ "usbdtbload=setenv dtbparam; load usb ${usbdev}:${usbbootpart} " \ @@ -108,7 +108,7 @@ "usbrootpart=2\0" #define BOARD_EXTRA_ENV_SETTINGS \ - "boot_file=uImage\0" \ + "boot_file=zImage\0" \ "console=ttyS0\0" \ "defargs=lp0_vec=2064@0xf46ff000 core_edp_mv=1150 core_edp_ma=4000 " \ "usb_port_owner_info=2 lane_owner_info=6 emc_max_dvfs=0 " \ -- cgit From fbcb9256549453b6e81a9a01ef6475b452c9f1ed Mon Sep 17 00:00:00 2001 From: Dominik Sliwa Date: Thu, 1 Aug 2019 11:06:37 +0300 Subject: apalis-tk1/t30: colibri_t30: display reset reason Display proper reset reason after the SoC info. Signed-off-by: Dominik Sliwa Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov Signed-off-by: Tom Warren --- arch/arm/mach-tegra/sys_info.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-tegra/sys_info.c b/arch/arm/mach-tegra/sys_info.c index 9975f33e0b..5dc998a52b 100644 --- a/arch/arm/mach-tegra/sys_info.c +++ b/arch/arm/mach-tegra/sys_info.c @@ -6,24 +6,36 @@ #include #include +#if defined(CONFIG_TEGRA124) || defined(CONFIG_TEGRA30) +#include -static void upstring(char *s) +static char *get_reset_cause(void) { - while (*s) { - *s = toupper(*s); - s++; + struct pmc_ctlr *pmc = (struct pmc_ctlr *)NV_PA_PMC_BASE; + + switch (pmc->pmc_reset_status) { + case 0x00: + return "POR"; + case 0x01: + return "WATCHDOG"; + case 0x02: + return "SENSOR"; + case 0x03: + return "SW_MAIN"; + case 0x04: + return "LP0"; } + return "UNKNOWN"; } +#endif /* Print CPU information */ int print_cpuinfo(void) { - char soc_name[10]; - - strncpy(soc_name, CONFIG_SYS_SOC, 10); - upstring(soc_name); - puts(soc_name); - puts("\n"); + printf("SoC: %s\n", CONFIG_SYS_SOC); +#if defined(CONFIG_TEGRA124) || defined(CONFIG_TEGRA30) + printf("Reset cause: %s\n", get_reset_cause()); +#endif /* TBD: Add printf of major/minor rev info, stepping, etc. */ return 0; -- cgit From d415eab4f0abb3b9dd84c50c9ded0ff976a32a2f Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Thu, 1 Aug 2019 11:06:38 +0300 Subject: apalis-tk1: remove default vesa vga mode from vidargs Remove video=tegrafb0:640x480-16@60 aka VESA VGA mode from vidargs in order for the panel specification in the device tree to be used. This causes the default to be the 10.1" LVDS display which will be available in the Toradex webshop shortly. Reviewed-by: Oleksandr Suvorov Signed-off-by: Marcel Ziswiler Signed-off-by: Igor Opaniuk Signed-off-by: Tom Warren --- include/configs/apalis-tk1.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/configs/apalis-tk1.h b/include/configs/apalis-tk1.h index 10f2948c62..843e64e3cc 100644 --- a/include/configs/apalis-tk1.h +++ b/include/configs/apalis-tk1.h @@ -137,7 +137,7 @@ "load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ "source ${loadaddr}\0" \ USB_BOOTCMD \ - "vidargs=video=tegrafb0:640x480-16@60 fbcon=map:1\0" + "vidargs=fbcon=map:1\0" /* Increase console I/O buffer size */ #undef CONFIG_SYS_CBSIZE -- cgit From 5a20adf446bc248a8db02f6d262b43b14587812d Mon Sep 17 00:00:00 2001 From: Dominik Sliwa Date: Thu, 1 Aug 2019 11:06:39 +0300 Subject: apalis-tk1: remove non-essential power rails on boot When mainline kernels reboot TK1 they use SW_RESET, that reset mode does not reset PMIC. Some rails need to be off for RAM Re-repair to work correctly. Reviewed-by: Oleksandr Suvorov Signed-off-by: Dominik Sliwa Signed-off-by: Igor Opaniuk Signed-off-by: Tom Warren --- arch/arm/mach-tegra/tegra124/cpu.c | 45 ++++++++++++++++++++++++++++++++++ board/toradex/apalis-tk1/as3722_init.c | 23 +++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/arch/arm/mach-tegra/tegra124/cpu.c b/arch/arm/mach-tegra/tegra124/cpu.c index 992c0beb04..abc050c27b 100644 --- a/arch/arm/mach-tegra/tegra124/cpu.c +++ b/arch/arm/mach-tegra/tegra124/cpu.c @@ -238,6 +238,45 @@ static bool is_partition_powered(u32 partid) return !!(reg & (1 << partid)); } +static void unpower_partition(u32 partid) +{ + struct pmc_ctlr *pmc = (struct pmc_ctlr *)NV_PA_PMC_BASE; + + debug("%s: part ID = %08X\n", __func__, partid); + /* Is the partition on? */ + if (is_partition_powered(partid)) { + /* Yes, toggle the partition power state (ON -> OFF) */ + debug("power_partition, toggling state\n"); + writel(START_CP | partid, &pmc->pmc_pwrgate_toggle); + + /* Wait for the power to come down */ + while (is_partition_powered(partid)) + ; + + /* Give I/O signals time to stabilize */ + udelay(IO_STABILIZATION_DELAY); + } +} + +void unpower_cpus(void) +{ + debug("%s entry: G cluster\n", __func__); + + /* Power down the fast cluster rail partition */ + debug("%s: CRAIL\n", __func__); + unpower_partition(CRAIL); + + /* Power down the fast cluster non-CPU partition */ + debug("%s: C0NC\n", __func__); + unpower_partition(C0NC); + + /* Power down the fast cluster CPU0 partition */ + debug("%s: CE0\n", __func__); + unpower_partition(CE0); + + debug("%s: done\n", __func__); +} + static void power_partition(u32 partid) { struct pmc_ctlr *pmc = (struct pmc_ctlr *)NV_PA_PMC_BASE; @@ -284,6 +323,12 @@ void start_cpu(u32 reset_vector) debug("%s entry, reset_vector = %x\n", __func__, reset_vector); + /* + * High power clusters are on after software reset, + * it may interfere with tegra124_ram_repair. + * unpower them. + */ + unpower_cpus(); tegra124_init_clocks(); /* Set power-gating timer multiplier */ diff --git a/board/toradex/apalis-tk1/as3722_init.c b/board/toradex/apalis-tk1/as3722_init.c index bd754e5fcf..15f8dce2f1 100644 --- a/board/toradex/apalis-tk1/as3722_init.c +++ b/board/toradex/apalis-tk1/as3722_init.c @@ -43,6 +43,29 @@ void pmic_enable_cpu_vdd(void) udelay(10 * 1000); #endif + /* + * Make sure all non-fused regulators are down. + * That way we're in known state after software reboot from linux + */ + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0003, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0004, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x001b, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0014, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x001a, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0019, I2C_SEND_2_BYTES); + udelay(10 * 1000); + debug("%s: Setting VDD_CPU to 1.0V via AS3722 reg 0/4D\n", __func__); /* * Bring up VDD_CPU via the AS3722 PMIC on the PWR I2C bus. -- cgit From 4c63a601b90db131e92d3f6f6da6a4bc2b287df1 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Fri, 9 Aug 2019 13:21:46 +0300 Subject: apalis-tk1: support v1.2 hardware revision Support the V1.2 hardware revision with the following pin muxing changes: Ddc_scl_pv4 and ddc_sda_pv5 previously used as Apalis GPIO3 and GPIO4 are now used as DDC pins. Gen2_i2c_scl_pt5 and gen2_i2c_sda_pt6 previously used as DDC pins are now used as USB power enable signals. Usb_vbus_en0_pn4 and usb_vbus_en1_pn5 previously used as USB power enable signals are now used as GPIO3 and GPIO4. Additionally a new device tree file tegra124-apalis-v1.2-eval.dtb is loaded on V1.2 and later modules and resp. USB power enable signals activated. Signed-off-by: Marcel Ziswiler Signed-off-by: Igor Opaniuk Signed-off-by: Tom Warren --- arch/arm/dts/tegra124-apalis.dts | 89 ++++++++++++---------- board/toradex/apalis-tk1/apalis-tk1.c | 37 +++++++++ .../toradex/apalis-tk1/pinmux-config-apalis-tk1.h | 19 +++-- configs/apalis-tk1_defconfig | 2 +- include/configs/apalis-tk1.h | 12 ++- 5 files changed, 103 insertions(+), 56 deletions(-) diff --git a/arch/arm/dts/tegra124-apalis.dts b/arch/arm/dts/tegra124-apalis.dts index a962c0a2f0..08184ab3ac 100644 --- a/arch/arm/dts/tegra124-apalis.dts +++ b/arch/arm/dts/tegra124-apalis.dts @@ -1,5 +1,5 @@ /* - * Copyright 2016 Toradex AG + * Copyright 2016-2019 Toradex AG * * This file is dual-licensed: you can use it either under the terms * of the GPL or the X11 license, at your option. Note that this dual @@ -230,19 +230,21 @@ }; /* Apalis GPIO */ - ddc_scl_pv4 { - nvidia,pins = "ddc_scl_pv4"; + usb_vbus_en0_pn4 { + nvidia,pins = "usb_vbus_en0_pn4"; nvidia,function = "rsvd2"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; + nvidia,open-drain = ; }; - ddc_sda_pv5 { - nvidia,pins = "ddc_sda_pv5"; + usb_vbus_en1_pn5 { + nvidia,pins = "usb_vbus_en1_pn5"; nvidia,function = "rsvd2"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; + nvidia,open-drain = ; }; pex_l0_rst_n_pdd1 { nvidia,pins = "pex_l0_rst_n_pdd1"; @@ -333,40 +335,40 @@ nvidia,open-drain = ; }; - /* Apalis I2C2 (DDC) */ - gen2_i2c_scl_pt5 { - nvidia,pins = "gen2_i2c_scl_pt5"; - nvidia,function = "i2c2"; + /* Apalis I2C3 (CAM) */ + cam_i2c_scl_pbb1 { + nvidia,pins = "cam_i2c_scl_pbb1"; + nvidia,function = "i2c3"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; nvidia,open-drain = ; }; - gen2_i2c_sda_pt6 { - nvidia,pins = "gen2_i2c_sda_pt6"; - nvidia,function = "i2c2"; + cam_i2c_sda_pbb2 { + nvidia,pins = "cam_i2c_sda_pbb2"; + nvidia,function = "i2c3"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; nvidia,open-drain = ; }; - /* Apalis I2C3 (CAM) */ - cam_i2c_scl_pbb1 { - nvidia,pins = "cam_i2c_scl_pbb1"; - nvidia,function = "i2c3"; + /* Apalis I2C4 (DDC) */ + ddc_scl_pv4 { + nvidia,pins = "ddc_scl_pv4"; + nvidia,function = "i2c4"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; - nvidia,open-drain = ; + nvidia,rcv-sel = ; }; - cam_i2c_sda_pbb2 { - nvidia,pins = "cam_i2c_sda_pbb2"; - nvidia,function = "i2c3"; + ddc_sda_pv5 { + nvidia,pins = "ddc_sda_pv5"; + nvidia,function = "i2c4"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; - nvidia,open-drain = ; + nvidia,rcv-sel = ; }; /* Apalis MMC1 */ @@ -470,12 +472,12 @@ nvidia,tristate = ; nvidia,enable-input = ; }; - /* PWM3 active on pu6 being Apalis BKL1_PWM */ + /* PWM3 active on pu6 being Apalis BKL1_PWM as well */ ph3 { nvidia,pins = "ph3"; - nvidia,function = "gmi"; - nvidia,pull = ; - nvidia,tristate = ; + nvidia,function = "pwm3"; + nvidia,pull = ; + nvidia,tristate = ; nvidia,enable-input = ; }; @@ -736,8 +738,8 @@ }; /* Apalis USBH_EN */ - usb_vbus_en1_pn5 { - nvidia,pins = "usb_vbus_en1_pn5"; + gen2_i2c_sda_pt6 { + nvidia,pins = "gen2_i2c_sda_pt6"; nvidia,function = "rsvd2"; nvidia,pull = ; nvidia,tristate = ; @@ -755,8 +757,8 @@ }; /* Apalis USBO1_EN */ - usb_vbus_en0_pn4 { - nvidia,pins = "usb_vbus_en0_pn4"; + gen2_i2c_scl_pt5 { + nvidia,pins = "gen2_i2c_scl_pt5"; nvidia,function = "rsvd2"; nvidia,pull = ; nvidia,tristate = ; @@ -1501,10 +1503,14 @@ nvidia,tristate = ; nvidia,enable-input = ; }; - pv0 { /* NC */ + /* + * PCB Version Indication: V1.2 and later have GPIO_PV0 + * wired to GND, was NC before + */ + pv0 { nvidia,pins = "pv0"; nvidia,function = "rsvd1"; - nvidia,pull = ; + nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; }; @@ -1630,13 +1636,7 @@ }; }; - /* - * GEN2_I2C: I2C2_SDA/SCL (DDC) on MXM3 pin 205/207 (e.g. display EDID) - */ - hdmi_ddc: i2c@7000c400 { - status = "okay"; - clock-frequency = <10000>; - }; + /* GEN2_I2C: unused */ /* * CAM_I2C: I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor @@ -1647,7 +1647,14 @@ clock-frequency = <400000>; }; - /* I2C4 (DDC): unused */ + /* + * I2C4 (DDC): I2C4_SDA/SCL (DDC) on MXM3 pin 205/207 + * (e.g. display EDID) + */ + hdmi_ddc: i2c@7000c700 { + status = "okay"; + clock-frequency = <10000>; + }; /* PWR_I2C: power I2C to audio codec, PMIC and temperature sensor */ i2c@7000d000 { @@ -2112,7 +2119,7 @@ regulator-name = "VCC_USBO1"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; - gpio = <&gpio TEGRA_GPIO(N, 4) GPIO_ACTIVE_HIGH>; + gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <®_5v0>; }; @@ -2123,7 +2130,7 @@ regulator-name = "VCC_USBH(2A|2C|2D|3|4)"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; - gpio = <&gpio TEGRA_GPIO(N, 5) GPIO_ACTIVE_HIGH>; + gpio = <&gpio TEGRA_GPIO(T, 6) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <®_5v0>; }; diff --git a/board/toradex/apalis-tk1/apalis-tk1.c b/board/toradex/apalis-tk1/apalis-tk1.c index d57c5042dd..beb7e10dfe 100644 --- a/board/toradex/apalis-tk1/apalis-tk1.c +++ b/board/toradex/apalis-tk1/apalis-tk1.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -25,6 +26,10 @@ #define PEX_PERST_N TEGRA_GPIO(DD, 1) /* Apalis GPIO7 */ #define RESET_MOCI_CTRL TEGRA_GPIO(U, 4) #endif /* CONFIG_APALIS_TK1_PCIE_EVALBOARD_INIT */ +#define VCC_USBH TEGRA_GPIO(T, 6) +#define VCC_USBH_V1_0 TEGRA_GPIO(N, 5) +#define VCC_USBO1 TEGRA_GPIO(T, 5) +#define VCC_USBO1_V1_0 TEGRA_GPIO(N, 4) int arch_misc_init(void) { @@ -32,6 +37,38 @@ int arch_misc_init(void) NVBOOTTYPE_RECOVERY) printf("USB recovery mode\n"); + /* PCB Version Indication: V1.2 and later have GPIO_PV0 wired to GND */ + gpio_request(TEGRA_GPIO(V, 0), "PCB Version Indication"); + gpio_direction_input(TEGRA_GPIO(V, 0)); + if (gpio_get_value(TEGRA_GPIO(V, 0))) { + /* + * if using the default device tree for new V1.2 and later HW, + * use version for older V1.0 and V1.1 HW + */ + char *fdt_env = env_get("fdt_module"); + + if (fdt_env && !strcmp(FDT_MODULE, fdt_env)) { + env_set("fdt_module", FDT_MODULE_V1_0); + printf("patching fdt_module to " FDT_MODULE_V1_0 + " for older V1.0 and V1.1 HW\n"); +#ifndef CONFIG_ENV_IS_NOWHERE + env_save(); +#endif + } + + /* activate USB power enable GPIOs */ + gpio_request(VCC_USBH_V1_0, "VCC_USBH"); + gpio_direction_output(VCC_USBH_V1_0, 1); + gpio_request(VCC_USBO1_V1_0, "VCC_USBO1"); + gpio_direction_output(VCC_USBO1_V1_0, 1); + } else { + /* activate USB power enable GPIOs */ + gpio_request(VCC_USBH, "VCC_USBH"); + gpio_direction_output(VCC_USBH, 1); + gpio_request(VCC_USBO1, "VCC_USBO1"); + gpio_direction_output(VCC_USBO1, 1); + } + return 0; } diff --git a/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h b/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h index d2d24c4391..6778a41e07 100644 --- a/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h +++ b/board/toradex/apalis-tk1/pinmux-config-apalis-tk1.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /* - * Copyright (c) 2016, Toradex, Inc. + * Copyright (c) 2016-2019, Toradex, Inc. */ #ifndef _PINMUX_CONFIG_APALIS_TK1_H_ @@ -24,8 +24,6 @@ static const struct tegra_gpio_config apalis_tk1_gpio_inits[] = { GPIO_INIT(K, 2, IN), GPIO_INIT(K, 7, IN), GPIO_INIT(N, 2, OUT1), - GPIO_INIT(N, 4, OUT1), - GPIO_INIT(N, 5, OUT1), GPIO_INIT(N, 7, IN), GPIO_INIT(O, 5, IN), GPIO_INIT(Q, 0, OUT0), /* Shift_CTRL_OE[0] */ @@ -40,6 +38,7 @@ static const struct tegra_gpio_config apalis_tk1_gpio_inits[] = { GPIO_INIT(R, 2, OUT0), /* Shift_CTRL_OE[3] */ GPIO_INIT(S, 3, OUT0), /* Shift_CTRL_Dir_In[2] */ GPIO_INIT(U, 4, OUT0), /* RESET_MOCI_CTRL */ + GPIO_INIT(V, 0, IN), GPIO_INIT(W, 3, IN), GPIO_INIT(W, 5, IN), GPIO_INIT(BB, 0, IN), @@ -130,8 +129,8 @@ static const struct pmux_pingrp_config apalis_tk1_pingrps[] = { PINCFG(DAP1_DIN_PN1, RSVD4, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), PINCFG(DAP1_DOUT_PN2, SATA, NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT), PINCFG(DAP1_SCLK_PN3, RSVD4, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), - PINCFG(USB_VBUS_EN0_PN4, RSVD2, NORMAL, NORMAL, OUTPUT, DISABLE, DEFAULT), - PINCFG(USB_VBUS_EN1_PN5, RSVD2, NORMAL, NORMAL, OUTPUT, DISABLE, DEFAULT), + PINCFG(USB_VBUS_EN0_PN4, RSVD2, NORMAL, NORMAL, INPUT, DISABLE, DEFAULT), + PINCFG(USB_VBUS_EN1_PN5, RSVD2, NORMAL, NORMAL, INPUT, DISABLE, DEFAULT), PINCFG(HDMI_INT_PN7, RSVD1, DOWN, TRISTATE, INPUT, DEFAULT, NORMAL), PINCFG(ULPI_DATA7_PO0, ULPI, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), PINCFG(ULPI_DATA0_PO1, ULPI, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), @@ -175,8 +174,8 @@ static const struct pmux_pingrp_config apalis_tk1_pingrps[] = { PINCFG(KB_ROW15_PS7, RSVD2, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), PINCFG(KB_ROW16_PT0, RSVD2, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), PINCFG(KB_ROW17_PT1, RSVD2, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), - PINCFG(GEN2_I2C_SCL_PT5, I2C2, NORMAL, NORMAL, INPUT, ENABLE, DEFAULT), - PINCFG(GEN2_I2C_SDA_PT6, I2C2, NORMAL, NORMAL, INPUT, ENABLE, DEFAULT), + PINCFG(GEN2_I2C_SCL_PT5, RSVD2, NORMAL, NORMAL, OUTPUT, DISABLE, DEFAULT), + PINCFG(GEN2_I2C_SDA_PT6, RSVD2, NORMAL, NORMAL, OUTPUT, DISABLE, DEFAULT), PINCFG(SDMMC4_CMD_PT7, SDMMC4, UP, NORMAL, INPUT, DEFAULT, DEFAULT), PINCFG(PU0, UARTA, NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT), PINCFG(PU1, UARTA, NORMAL, TRISTATE, INPUT, DEFAULT, DEFAULT), @@ -185,12 +184,12 @@ static const struct pmux_pingrp_config apalis_tk1_pingrps[] = { PINCFG(PU4, GMI, NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT), PINCFG(PU5, GMI, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), PINCFG(PU6, PWM3, NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT), - PINCFG(PV0, RSVD1, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), + PINCFG(PV0, RSVD1, UP, NORMAL, INPUT, DEFAULT, DEFAULT), PINCFG(PV1, RSVD1, DOWN, TRISTATE, OUTPUT, DEFAULT, DEFAULT), PINCFG(SDMMC3_CD_N_PV2, RSVD3, UP, TRISTATE, INPUT, DEFAULT, DEFAULT), PINCFG(SDMMC1_WP_N_PV3, SDMMC1, UP, TRISTATE, INPUT, DEFAULT, DEFAULT), - PINCFG(DDC_SCL_PV4, RSVD2, NORMAL, NORMAL, INPUT, DEFAULT, DEFAULT), - PINCFG(DDC_SDA_PV5, RSVD2, NORMAL, NORMAL, INPUT, DEFAULT, DEFAULT), + PINCFG(DDC_SCL_PV4, I2C4, NORMAL, NORMAL, INPUT, DEFAULT, NORMAL), + PINCFG(DDC_SDA_PV5, I2C4, NORMAL, NORMAL, INPUT, DEFAULT, NORMAL), PINCFG(GPIO_W2_AUD_PW2, SPI2, NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT), PINCFG(GPIO_W3_AUD_PW3, SPI6, NORMAL, TRISTATE, INPUT, DEFAULT, DEFAULT), PINCFG(DAP_MCLK1_PW4, EXTPERIPH1, NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT), diff --git a/configs/apalis-tk1_defconfig b/configs/apalis-tk1_defconfig index 67f7731a42..be0554b150 100644 --- a/configs/apalis-tk1_defconfig +++ b/configs/apalis-tk1_defconfig @@ -8,7 +8,7 @@ CONFIG_TARGET_APALIS_TK1=y CONFIG_FIT=y CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOOTDELAY=1 -CONFIG_BOOTCOMMAND="run emmcboot; setenv fdtfile ${soc}-apalis-${fdt_board}.dtb && run distro_bootcmd" +CONFIG_BOOTCOMMAND="run emmcboot; setenv fdtfile ${soc}-${fdt-module}-${fdt_board}.dtb && run distro_bootcmd" CONFIG_CONSOLE_MUX=y CONFIG_SYS_STDIO_DEREGISTER=y CONFIG_VERSION_VARIABLE=y diff --git a/include/configs/apalis-tk1.h b/include/configs/apalis-tk1.h index 843e64e3cc..a21975050a 100644 --- a/include/configs/apalis-tk1.h +++ b/include/configs/apalis-tk1.h @@ -18,6 +18,9 @@ #define CONFIG_TEGRA_ENABLE_UARTA #define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTA_BASE +#define FDT_MODULE "apalis-v1.2" +#define FDT_MODULE_V1_0 "apalis" + /* Environment in eMMC, before config block at the end of 1st "boot sector" */ #define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE + \ CONFIG_TDX_CFG_BLOCK_OFFSET) @@ -58,7 +61,7 @@ "emmcbootpart=1\0" \ "emmcdev=0\0" \ "emmcdtbload=setenv dtbparam; load mmc ${emmcdev}:${emmcbootpart} " \ - "${fdt_addr_r} ${soc}-apalis-${fdt_board}.dtb && " \ + "${fdt_addr_r} ${soc}-${fdt_module}-${fdt_board}.dtb && " \ "setenv dtbparam ${fdt_addr_r}\0" \ "emmcfinduuid=part uuid mmc ${mmcdev}:${emmcrootpart} uuid\0" \ "emmcrootpart=2\0" @@ -70,7 +73,7 @@ "run nfsdtbload; dhcp ${kernel_addr_r} " \ "&& run fdt_fixup && bootz ${kernel_addr_r} - ${dtbparam}\0" \ "nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} " \ - "${soc}-apalis-${fdt_board}.dtb " \ + "${soc}-${fdt_module}-${fdt_board}.dtb " \ "&& setenv dtbparam ${fdt_addr_r}\0" #define SD_BOOTCMD \ @@ -85,7 +88,7 @@ "sdbootpart=1\0" \ "sddev=1\0" \ "sddtbload=setenv dtbparam; load mmc ${sddev}:${sdbootpart} " \ - "${fdt_addr_r} ${soc}-apalis-${fdt_board}.dtb " \ + "${fdt_addr_r} ${soc}-${fdt_module}-${fdt_board}.dtb " \ "&& setenv dtbparam ${fdt_addr_r}\0" \ "sdfinduuid=part uuid mmc ${sddev}:${sdrootpart} uuid\0" \ "sdrootpart=2\0" @@ -102,7 +105,7 @@ "usbbootpart=1\0" \ "usbdev=0\0" \ "usbdtbload=setenv dtbparam; load usb ${usbdev}:${usbbootpart} " \ - "${fdt_addr_r} ${soc}-apalis-${fdt_board}.dtb " \ + "${fdt_addr_r} ${soc}-${fdt_module}-${fdt_board}.dtb " \ "&& setenv dtbparam ${fdt_addr_r}\0" \ "usbfinduuid=part uuid usb ${usbdev}:${usbrootpart} uuid\0" \ "usbrootpart=2\0" @@ -117,6 +120,7 @@ EMMC_BOOTCMD \ "fdt_board=eval\0" \ "fdt_fixup=;\0" \ + "fdt_module=" FDT_MODULE "\0" \ NFS_BOOTCMD \ SD_BOOTCMD \ USB_BOOTCMD \ -- cgit From bd20266d1923f1230ed15020fbb12aa56f3f46b7 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Tue, 25 Jun 2019 17:06:41 +0300 Subject: apalis-tk1: configs: remove legacy usbboot command Remove obsolete legacy usbboot wrapper, as distroboot can handle booting from USB drivers. Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov Signed-off-by: Tom Warren --- include/configs/apalis-tk1.h | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/include/configs/apalis-tk1.h b/include/configs/apalis-tk1.h index a21975050a..dacf36bf79 100644 --- a/include/configs/apalis-tk1.h +++ b/include/configs/apalis-tk1.h @@ -93,23 +93,6 @@ "sdfinduuid=part uuid mmc ${sddev}:${sdrootpart} uuid\0" \ "sdrootpart=2\0" -#define USB_BOOTCMD \ - "set_usbargs=setenv usbargs ip=off root=PARTUUID=${uuid} ro " \ - "rootfstype=ext4 rootwait\0" \ - "usbboot=run setup; usb start; run usbfinduuid; run set_usbargs; " \ - "setenv bootargs ${defargs} ${setupargs} " \ - "${usbargs} ${vidargs}; echo Booting from USB stick...; " \ - "run usbdtbload; load usb ${usbdev}:${usbbootpart} " \ - "${kernel_addr_r} ${boot_file} && run fdt_fixup && " \ - "bootz ${kernel_addr_r} - ${dtbparam}\0" \ - "usbbootpart=1\0" \ - "usbdev=0\0" \ - "usbdtbload=setenv dtbparam; load usb ${usbdev}:${usbbootpart} " \ - "${fdt_addr_r} ${soc}-${fdt_module}-${fdt_board}.dtb " \ - "&& setenv dtbparam ${fdt_addr_r}\0" \ - "usbfinduuid=part uuid usb ${usbdev}:${usbrootpart} uuid\0" \ - "usbrootpart=2\0" - #define BOARD_EXTRA_ENV_SETTINGS \ "boot_file=zImage\0" \ "console=ttyS0\0" \ @@ -123,7 +106,6 @@ "fdt_module=" FDT_MODULE "\0" \ NFS_BOOTCMD \ SD_BOOTCMD \ - USB_BOOTCMD \ "setethupdate=if env exists ethaddr; then; else setenv ethaddr " \ "00:14:2d:00:00:00; fi; pci enum && tftpboot ${loadaddr} " \ "flash_eth.img && source ${loadaddr}\0" \ @@ -140,7 +122,6 @@ "setusbupdate=usb start && setenv interface usb; setenv drive 0; " \ "load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ "source ${loadaddr}\0" \ - USB_BOOTCMD \ "vidargs=fbcon=map:1\0" /* Increase console I/O buffer size */ -- cgit