Re: [PATCH] arm: tegra: initial support for apalis tk1

From: Rob Herring
Date: Mon May 16 2016 - 11:55:54 EST


On Thu, May 12, 2016 at 02:27:12PM +0200, Marcel Ziswiler wrote:
> This patch adds the device tree to support Toradex Apalis TK1 a
> computer on module which can be used on different carrier boards.
>
> The module consists of a Tegra TK1 SoC, a PMIC solution, 2 GB of DDR3L
> RAM, a bunch of level shifters, an eMMC, a TMP451 temperature sensor
> chip and an I210 gigabit Ethernet controller. Furthermore, there is an
> SGTL5000 audio codec plus a Kinetis MK20DN512 companion micro
> controller for analogue, CAN and resistive touch functionality which
> are not yet supported. Anything that is not self contained on the
> module is disabled by default.
>
> The device tree for the Evaluation Board includes the module's device
> tree and enables the supported peripherals of the carrier board (the
> Evaluation Board supports almost all of them).
>
> While at it also add the device tree binding documentation for Apalis
> TK1 as well as for Colibri T30 which was missing so far.

"While at it" and "also" are keywords for put in a separate patch.

>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@xxxxxxxxxxx>
>
> ---
>
> Documentation/devicetree/bindings/arm/tegra.txt | 4 +
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/tegra124-apalis-emc.dtsi | 2462 +++++++++++++++++++++++
> arch/arm/boot/dts/tegra124-apalis-eval.dts | 283 +++
> arch/arm/boot/dts/tegra124-apalis.dtsi | 2058 +++++++++++++++++++
> 5 files changed, 4808 insertions(+)
> create mode 100644 arch/arm/boot/dts/tegra124-apalis-emc.dtsi
> create mode 100644 arch/arm/boot/dts/tegra124-apalis-eval.dts
> create mode 100644 arch/arm/boot/dts/tegra124-apalis.dtsi
>
> diff --git a/Documentation/devicetree/bindings/arm/tegra.txt b/Documentation/devicetree/bindings/arm/tegra.txt
> index 73278c6..7709f3d 100644
> --- a/Documentation/devicetree/bindings/arm/tegra.txt
> +++ b/Documentation/devicetree/bindings/arm/tegra.txt
> @@ -31,8 +31,12 @@ board-specific compatible values:
> nvidia,ventana
> nvidia,whistler
> toradex,apalis_t30
> + toradex,apalis_tk1
> toradex,apalis_t30-eval
> + toradex,apalis_tk1-eval
> toradex,colibri_t20-512
> + toradex,colibri_t30
> + toradex,colibri_t30-eval-v3
> toradex,iris

Please use '-' rather than '_' for new strings even if that's what
previous strings have. For ones that already in use in upstream dts
files, then keep the underscore.

>
> Trusted Foundations
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 06b6c2d..3a13d4f 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -793,6 +793,7 @@ dtb-$(CONFIG_ARCH_TEGRA_114_SOC) += \
> tegra114-roth.dtb \
> tegra114-tn7.dtb
> dtb-$(CONFIG_ARCH_TEGRA_124_SOC) += \
> + tegra124-apalis-eval.dtb \
> tegra124-jetson-tk1.dtb \
> tegra124-nyan-big.dtb \
> tegra124-nyan-blaze.dtb \
> diff --git a/arch/arm/boot/dts/tegra124-apalis-emc.dtsi b/arch/arm/boot/dts/tegra124-apalis-emc.dtsi
> new file mode 100644
> index 0000000..31b31ea
> --- /dev/null
> +++ b/arch/arm/boot/dts/tegra124-apalis-emc.dtsi
> @@ -0,0 +1,2462 @@
> +/*
> + * Copyright 2016 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
> + * licensing only applies to this file, and not this project as a
> + * whole.
> + *
> + * a) This file is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * version 2 as published by the Free Software Foundation.
> + *
> + * This file 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.
> + *
> + * Or, alternatively
> + *
> + * b) Permission is hereby granted, free of charge, to any person
> + * obtaining a copy of this software and associated documentation
> + * files (the "Software"), to deal in the Software without
> + * restriction, including without limitation the rights to use
> + * copy, modify, merge, publish, distribute, sublicense, and/or
> + * sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following
> + * conditions:
> + *
> + * The above copyright notice and this permission notice shall be
> + * included in all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
> + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + */
> +
> +/ {
> + clock@0,60006000 {

All these commas should be dropped. These have been fixed in -next and
will go into 4.7.

> + emc-timings-1 {
> + nvidia,ram-code = <1>;
> +
> + timing-12750000 {
> + clock-frequency = <12750000>;
> + nvidia,parent-clock-frequency = <408000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
> + clock-names = "emc-parent";
> + };
> + timing-20400000 {
> + clock-frequency = <20400000>;
> + nvidia,parent-clock-frequency = <408000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
> + clock-names = "emc-parent";
> + };
> + timing-40800000 {
> + clock-frequency = <40800000>;
> + nvidia,parent-clock-frequency = <408000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
> + clock-names = "emc-parent";
> + };
> + timing-68000000 {
> + clock-frequency = <68000000>;
> + nvidia,parent-clock-frequency = <408000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
> + clock-names = "emc-parent";
> + };
> + timing-102000000 {
> + clock-frequency = <102000000>;
> + nvidia,parent-clock-frequency = <408000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
> + clock-names = "emc-parent";
> + };
> + timing-204000000 {
> + clock-frequency = <204000000>;
> + nvidia,parent-clock-frequency = <408000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
> + clock-names = "emc-parent";
> + };
> + timing-300000000 {
> + clock-frequency = <300000000>;
> + nvidia,parent-clock-frequency = <600000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
> + clock-names = "emc-parent";
> + };
> + timing-396000000 {
> + clock-frequency = <396000000>;
> + nvidia,parent-clock-frequency = <792000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
> + clock-names = "emc-parent";
> + };
> + timing-528000000 {
> + clock-frequency = <528000000>;
> + nvidia,parent-clock-frequency = <528000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
> + clock-names = "emc-parent";
> + };
> + timing-600000000 {
> + clock-frequency = <600000000>;
> + nvidia,parent-clock-frequency = <600000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
> + clock-names = "emc-parent";
> + };
> + timing-792000000 {
> + clock-frequency = <792000000>;
> + nvidia,parent-clock-frequency = <792000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
> + clock-names = "emc-parent";
> + };
> + timing-924000000 {
> + clock-frequency = <924000000>;
> + nvidia,parent-clock-frequency = <924000000>;
> + clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
> + clock-names = "emc-parent";
> + };
> + };
> + };
> +
> + emc@0,7001b000 {
> + emc-timings-1 {
> + nvidia,ram-code = <1>;
> +
> + timing-12750000 {
> + clock-frequency = <12750000>;
> +
> + nvidia,emc-auto-cal-config = <0xa1430000>;
> + nvidia,emc-auto-cal-config2 = <0x00000000>;
> + nvidia,emc-auto-cal-config3 = <0x00000000>;
> + nvidia,emc-auto-cal-interval = <0x001fffff>;
> + nvidia,emc-bgbias-ctl0 = <0x00000008>;
> + nvidia,emc-cfg = <0x73240000>;
> + nvidia,emc-cfg-2 = <0x000008c5>;
> + nvidia,emc-ctt-term-ctrl = <0x00000802>;
> + nvidia,emc-mode-1 = <0x80100003>;
> + nvidia,emc-mode-2 = <0x80200008>;
> + nvidia,emc-mode-4 = <0x00000000>;
> + nvidia,emc-mode-reset = <0x80001221>;
> + nvidia,emc-mrs-wait-cnt = <0x000e000e>;
> + nvidia,emc-sel-dpd-ctrl = <0x00040128>;
> + nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
> + nvidia,emc-zcal-cnt-long = <0x00000042>;
> + nvidia,emc-zcal-interval = <0x00000000>;
> +
> + nvidia,emc-configuration = <
> + 0x00000000
> + 0x00000003

This is a bit long. Do multiple values per line.

> + 0x00000000
> + 0x00000000
> + 0x00000000
> + 0x00000004
> + 0x0000000a
> + 0x00000005