From 1c95022184c98520be7e585d33baeb6f55816deb Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 6 Feb 2020 18:36:44 +0100 Subject: [PATCH] Add support for audio & thermal & small FTD fixes (#571) --- .../board/hardkernel/odroid-n2/kernel.config | 28 +- ...4-dts-meson-g12b-specify-suspend-OPP.patch | 60 ++ ...-arm64-dts-meson-g12-add-a-g12-layer.patch | 60 ++ ...ts-meson-g12-factor-the-power-domain.patch | 95 +++ ...g12-move-audio-bus-out-of-g12-common.patch | 707 ++++++++++++++++++ ...-meson-g12a-add-audio-devices-resets.patch | 121 +++ ...-Link-nvmem-and-secure-monitor-nodes.patch | 54 ++ ...2-arm64-dts-meson-g12a-Add-PCIe-node.patch | 82 ++ ...s-meson-g12-add-support-for-simplefb.patch | 99 +++ ...dts-meson-g12-add-temperature-sensor.patch | 52 ++ ...s-meson-g12-Add-minimal-thermal-zone.patch | 105 +++ ...Add-capacity-dmips-mhz-attributes-to.patch | 83 ++ ...m64-dts-meson-g12a-fix-gpu-irq-order.patch | 37 + ...odroid-c2-p5v0-is-the-main-5V-power-.patch | 43 ++ ...odroid-c2-Add-missing-linking-regula.patch | 42 ++ ...odroid-c2-Add-missing-regulator-link.patch | 64 ++ ...odroid-c2-Add-missing-regulator-link.patch | 73 ++ ...odroid-c2-Add-missing-regulator-link.patch | 50 ++ 18 files changed, 1841 insertions(+), 14 deletions(-) create mode 100644 buildroot-external/board/hardkernel/patches/linux/0005-arm64-dts-meson-g12b-specify-suspend-OPP.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0006-arm64-dts-meson-g12-add-a-g12-layer.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0007-arm64-dts-meson-g12-factor-the-power-domain.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0009-arm64-dts-meson-g12-move-audio-bus-out-of-g12-common.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0010-arm64-dts-meson-g12a-add-audio-devices-resets.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0011-arm64-dts-meson-Link-nvmem-and-secure-monitor-nodes.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0012-arm64-dts-meson-g12a-Add-PCIe-node.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0013-arm64-dts-meson-g12-add-support-for-simplefb.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0014-arm64-dts-meson-g12-add-temperature-sensor.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0015-arm64-dts-meson-g12-Add-minimal-thermal-zone.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0016-arm64-dts-meson-Add-capacity-dmips-mhz-attributes-to.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0017-arm64-dts-meson-g12a-fix-gpu-irq-order.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0019-arm64-dts-meson-odroid-c2-p5v0-is-the-main-5V-power-.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0020-arm64-dts-meson-odroid-c2-Add-missing-linking-regula.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0022-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0023-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/0024-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch diff --git a/buildroot-external/board/hardkernel/odroid-n2/kernel.config b/buildroot-external/board/hardkernel/odroid-n2/kernel.config index 8a17810ea..bfe010f18 100644 --- a/buildroot-external/board/hardkernel/odroid-n2/kernel.config +++ b/buildroot-external/board/hardkernel/odroid-n2/kernel.config @@ -4140,17 +4140,17 @@ CONFIG_SND_SOC=y # # ASoC support for Amlogic platforms # -CONFIG_SND_MESON_AXG_FIFO=m -CONFIG_SND_MESON_AXG_FRDDR=m -CONFIG_SND_MESON_AXG_TODDR=m -CONFIG_SND_MESON_AXG_TDM_FORMATTER=m -CONFIG_SND_MESON_AXG_TDM_INTERFACE=m -CONFIG_SND_MESON_AXG_TDMIN=m -CONFIG_SND_MESON_AXG_TDMOUT=m -CONFIG_SND_MESON_AXG_SOUND_CARD=m -CONFIG_SND_MESON_AXG_SPDIFOUT=m -CONFIG_SND_MESON_AXG_SPDIFIN=m -CONFIG_SND_MESON_AXG_PDM=m +CONFIG_SND_MESON_AXG_FIFO=y +CONFIG_SND_MESON_AXG_FRDDR=y +CONFIG_SND_MESON_AXG_TODDR=y +CONFIG_SND_MESON_AXG_TDM_FORMATTER=y +CONFIG_SND_MESON_AXG_TDM_INTERFACE=y +CONFIG_SND_MESON_AXG_TDMIN=y +CONFIG_SND_MESON_AXG_TDMOUT=y +CONFIG_SND_MESON_AXG_SOUND_CARD=y +CONFIG_SND_MESON_AXG_SPDIFOUT=y +CONFIG_SND_MESON_AXG_SPDIFIN=y +CONFIG_SND_MESON_AXG_PDM=y CONFIG_SND_MESON_G12A_TOHDMITX=y # end of ASoC support for Amlogic platforms @@ -4218,7 +4218,7 @@ CONFIG_SND_SOC_ES7241=m # CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98088 is not set -CONFIG_SND_SOC_MAX98357A=m +CONFIG_SND_SOC_MAX98357A=y # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9867 is not set # CONFIG_SND_SOC_MAX98927 is not set @@ -4245,7 +4245,7 @@ CONFIG_SND_SOC_PCM3168A_I2C=m # CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set -CONFIG_SND_SOC_SPDIF=m +CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_SSM2305 is not set # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_I2C is not set @@ -5063,7 +5063,7 @@ CONFIG_COMMON_CLK_MESON_EE_CLKC=y CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y CONFIG_COMMON_CLK_GXBB=y CONFIG_COMMON_CLK_AXG=y -# CONFIG_COMMON_CLK_AXG_AUDIO is not set +CONFIG_COMMON_CLK_AXG_AUDIO=y CONFIG_COMMON_CLK_G12A=y # end of Common Clock Framework diff --git a/buildroot-external/board/hardkernel/patches/linux/0005-arm64-dts-meson-g12b-specify-suspend-OPP.patch b/buildroot-external/board/hardkernel/patches/linux/0005-arm64-dts-meson-g12b-specify-suspend-OPP.patch new file mode 100644 index 000000000..44a4a2ce2 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0005-arm64-dts-meson-g12b-specify-suspend-OPP.patch @@ -0,0 +1,60 @@ +From d80b817e975c0911f130d502292b209f34ea1e2c Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Tue, 27 Aug 2019 12:03:07 +0200 +Subject: [PATCH 171/200] FROMLIST: arm64: dts: meson-g12b: specify suspend OPP + +Tag the 1,2GHz OPPs as suspend OPP to be set before going in suspend mode. + +It has been reported that using various OPPs can lead to error or +resume with a different OPP from the ROM, thus use this safe OPP as +it is the default OPP used by the BL2 boot firmware on the 2 clusters. + +Signed-off-by: Neil Armstrong +--- + arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi | 2 ++ + arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi +index d61f43052a34..00ea181bc018 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi +@@ -39,6 +39,7 @@ + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <781000>; ++ opp-suspend; + }; + + opp-1398000000 { +@@ -99,6 +100,7 @@ + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <751000>; ++ opp-suspend; + }; + + opp-1398000000 { +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi +index 046cc332d07f..d68323c6c780 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi +@@ -39,6 +39,7 @@ + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <731000>; ++ opp-suspend; + }; + + opp-1398000000 { +@@ -99,6 +100,7 @@ + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <771000>; ++ opp-suspend; + }; + + opp-1398000000 { +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0006-arm64-dts-meson-g12-add-a-g12-layer.patch b/buildroot-external/board/hardkernel/patches/linux/0006-arm64-dts-meson-g12-add-a-g12-layer.patch new file mode 100644 index 000000000..62339651b --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0006-arm64-dts-meson-g12-add-a-g12-layer.patch @@ -0,0 +1,60 @@ +From 9ed437d69b49bd9ad39db7b6d69b60dfc47cac69 Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Thu, 5 Sep 2019 14:59:54 +0200 +Subject: [PATCH] arm64: dts: meson: g12: add a g12 layer + +While the sm1 is very close to the g12a/b family, somethings apply +differently on the g12a/b and not the sm1. This introduce a new layer +of dtsi for part which apply to the g12a and g12b but not the sm1. + +Signed-off-by: Jerome Brunet +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-g12.dtsi | 7 +++++++ + arch/arm64/boot/dts/amlogic/meson-g12a.dtsi | 2 +- + arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 2 +- + 3 files changed, 9 insertions(+), 2 deletions(-) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12.dtsi + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +new file mode 100644 +index 000000000000..1e30061fb2a7 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +@@ -0,0 +1,7 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2019 BayLibre, SAS ++ * Author: Jerome Brunet ++ */ ++ ++#include "meson-g12-common.dtsi" +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +index eb5d177d7a99..69339d69dfd4 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +@@ -3,7 +3,7 @@ + * Copyright (c) 2018 Amlogic, Inc. All rights reserved. + */ + +-#include "meson-g12-common.dtsi" ++#include "meson-g12.dtsi" + #include + + / { +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi +index 5628ccd54531..eefac0ef092b 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi +@@ -4,7 +4,7 @@ + * Author: Neil Armstrong + */ + +-#include "meson-g12-common.dtsi" ++#include "meson-g12.dtsi" + #include + + / { +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0007-arm64-dts-meson-g12-factor-the-power-domain.patch b/buildroot-external/board/hardkernel/patches/linux/0007-arm64-dts-meson-g12-factor-the-power-domain.patch new file mode 100644 index 000000000..7d5bf587b --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0007-arm64-dts-meson-g12-factor-the-power-domain.patch @@ -0,0 +1,95 @@ +From 2871626ba6e61e1ace43db491f766d39e6eacd5a Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Thu, 5 Sep 2019 14:59:55 +0200 +Subject: [PATCH] arm64: dts: meson: g12: factor the power domain. + +The power domain declared in the g12a and g12b dtsi are the same. +Move the declaration of these power domains in the g12 common dtsi. + +Signed-off-by: Jerome Brunet +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-g12.dtsi | 13 +++++++++++++ + arch/arm64/boot/dts/amlogic/meson-g12a.dtsi | 13 ------------- + arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 12 ------------ + 3 files changed, 13 insertions(+), 25 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +index 1e30061fb2a7..ac5833781611 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +@@ -5,3 +5,16 @@ + */ + + #include "meson-g12-common.dtsi" ++#include ++ ++ðmac { ++ power-domains = <&pwrc PWRC_G12A_ETH_ID>; ++}; ++ ++&vpu { ++ power-domains = <&pwrc PWRC_G12A_VPU_ID>; ++}; ++ ++&sd_emmc_a { ++ amlogic,dram-access-quirk; ++}; +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +index 69339d69dfd4..07450c4babfc 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +@@ -4,7 +4,6 @@ + */ + + #include "meson-g12.dtsi" +-#include + + / { + compatible = "amlogic,g12a"; +@@ -110,15 +109,3 @@ + }; + }; + }; +- +-ðmac { +- power-domains = <&pwrc PWRC_G12A_ETH_ID>; +-}; +- +-&vpu { +- power-domains = <&pwrc PWRC_G12A_VPU_ID>; +-}; +- +-&sd_emmc_a { +- amlogic,dram-access-quirk; +-}; +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi +index eefac0ef092b..a9e1db0f1158 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi +@@ -5,7 +5,6 @@ + */ + + #include "meson-g12.dtsi" +-#include + + / { + compatible = "amlogic,g12b"; +@@ -102,14 +101,3 @@ + compatible = "amlogic,g12b-clkc"; + }; + +-ðmac { +- power-domains = <&pwrc PWRC_G12A_ETH_ID>; +-}; +- +-&vpu { +- power-domains = <&pwrc PWRC_G12A_VPU_ID>; +-}; +- +-&sd_emmc_a { +- amlogic,dram-access-quirk; +-}; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0009-arm64-dts-meson-g12-move-audio-bus-out-of-g12-common.patch b/buildroot-external/board/hardkernel/patches/linux/0009-arm64-dts-meson-g12-move-audio-bus-out-of-g12-common.patch new file mode 100644 index 000000000..f234efe4f --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0009-arm64-dts-meson-g12-move-audio-bus-out-of-g12-common.patch @@ -0,0 +1,707 @@ +From 0f674df0c260d363d2f25efea17f07b73d287565 Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Thu, 5 Sep 2019 14:59:56 +0200 +Subject: [PATCH] arm64: dts: meson: g12: move audio bus out of g12-common + +The base address of the audio bus and pdm device are different +between the g12 and sm1 SoC families. Overwriting the reg property +only would leave with confusing node names on the sm1. + +Move the audio related devices to the g12 dtsi. The appropriate nodes +will be created for the sm1 later on. + +Signed-off-by: Jerome Brunet +Signed-off-by: Kevin Hilman +--- + .../boot/dts/amlogic/meson-g12-common.dtsi | 320 ----------------- + arch/arm64/boot/dts/amlogic/meson-g12.dtsi | 324 ++++++++++++++++++ + 2 files changed, 324 insertions(+), 320 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index 0ee8a369c547..95e9cf405fe9 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -5,13 +5,10 @@ + + #include + #include +-#include + #include + #include + #include + #include +-#include +-#include + #include + + / { +@@ -19,39 +16,6 @@ + #address-cells = <2>; + #size-cells = <2>; + +- tdmif_a: audio-controller-0 { +- compatible = "amlogic,axg-tdm-iface"; +- #sound-dai-cells = <0>; +- sound-name-prefix = "TDM_A"; +- clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, +- <&clkc_audio AUD_CLKID_MST_A_SCLK>, +- <&clkc_audio AUD_CLKID_MST_A_LRCLK>; +- clock-names = "mclk", "sclk", "lrclk"; +- status = "disabled"; +- }; +- +- tdmif_b: audio-controller-1 { +- compatible = "amlogic,axg-tdm-iface"; +- #sound-dai-cells = <0>; +- sound-name-prefix = "TDM_B"; +- clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, +- <&clkc_audio AUD_CLKID_MST_B_SCLK>, +- <&clkc_audio AUD_CLKID_MST_B_LRCLK>; +- clock-names = "mclk", "sclk", "lrclk"; +- status = "disabled"; +- }; +- +- tdmif_c: audio-controller-2 { +- compatible = "amlogic,axg-tdm-iface"; +- #sound-dai-cells = <0>; +- sound-name-prefix = "TDM_C"; +- clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, +- <&clkc_audio AUD_CLKID_MST_C_SCLK>, +- <&clkc_audio AUD_CLKID_MST_C_LRCLK>; +- clock-names = "mclk", "sclk", "lrclk"; +- status = "disabled"; +- }; +- + efuse: efuse { + compatible = "amlogic,meson-gxbb-efuse"; + clocks = <&clkc CLKID_EFUSE>; +@@ -1457,290 +1421,6 @@ + }; + }; + +- pdm: audio-controller@40000 { +- compatible = "amlogic,g12a-pdm", +- "amlogic,axg-pdm"; +- reg = <0x0 0x40000 0x0 0x34>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "PDM"; +- clocks = <&clkc_audio AUD_CLKID_PDM>, +- <&clkc_audio AUD_CLKID_PDM_DCLK>, +- <&clkc_audio AUD_CLKID_PDM_SYSCLK>; +- clock-names = "pclk", "dclk", "sysclk"; +- status = "disabled"; +- }; +- +- audio: bus@42000 { +- compatible = "simple-bus"; +- reg = <0x0 0x42000 0x0 0x2000>; +- #address-cells = <2>; +- #size-cells = <2>; +- ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>; +- +- clkc_audio: clock-controller@0 { +- status = "disabled"; +- compatible = "amlogic,g12a-audio-clkc"; +- reg = <0x0 0x0 0x0 0xb4>; +- #clock-cells = <1>; +- #reset-cells = <1>; +- +- clocks = <&clkc CLKID_AUDIO>, +- <&clkc CLKID_MPLL0>, +- <&clkc CLKID_MPLL1>, +- <&clkc CLKID_MPLL2>, +- <&clkc CLKID_MPLL3>, +- <&clkc CLKID_HIFI_PLL>, +- <&clkc CLKID_FCLK_DIV3>, +- <&clkc CLKID_FCLK_DIV4>, +- <&clkc CLKID_GP0_PLL>; +- clock-names = "pclk", +- "mst_in0", +- "mst_in1", +- "mst_in2", +- "mst_in3", +- "mst_in4", +- "mst_in5", +- "mst_in6", +- "mst_in7"; +- +- resets = <&reset RESET_AUDIO>; +- }; +- +- toddr_a: audio-controller@100 { +- compatible = "amlogic,g12a-toddr", +- "amlogic,axg-toddr"; +- reg = <0x0 0x100 0x0 0x2c>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "TODDR_A"; +- interrupts = ; +- clocks = <&clkc_audio AUD_CLKID_TODDR_A>; +- resets = <&arb AXG_ARB_TODDR_A>; +- status = "disabled"; +- }; +- +- toddr_b: audio-controller@140 { +- compatible = "amlogic,g12a-toddr", +- "amlogic,axg-toddr"; +- reg = <0x0 0x140 0x0 0x2c>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "TODDR_B"; +- interrupts = ; +- clocks = <&clkc_audio AUD_CLKID_TODDR_B>; +- resets = <&arb AXG_ARB_TODDR_B>; +- status = "disabled"; +- }; +- +- toddr_c: audio-controller@180 { +- compatible = "amlogic,g12a-toddr", +- "amlogic,axg-toddr"; +- reg = <0x0 0x180 0x0 0x2c>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "TODDR_C"; +- interrupts = ; +- clocks = <&clkc_audio AUD_CLKID_TODDR_C>; +- resets = <&arb AXG_ARB_TODDR_C>; +- status = "disabled"; +- }; +- +- frddr_a: audio-controller@1c0 { +- compatible = "amlogic,g12a-frddr", +- "amlogic,axg-frddr"; +- reg = <0x0 0x1c0 0x0 0x2c>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "FRDDR_A"; +- interrupts = ; +- clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; +- resets = <&arb AXG_ARB_FRDDR_A>; +- status = "disabled"; +- }; +- +- frddr_b: audio-controller@200 { +- compatible = "amlogic,g12a-frddr", +- "amlogic,axg-frddr"; +- reg = <0x0 0x200 0x0 0x2c>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "FRDDR_B"; +- interrupts = ; +- clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; +- resets = <&arb AXG_ARB_FRDDR_B>; +- status = "disabled"; +- }; +- +- frddr_c: audio-controller@240 { +- compatible = "amlogic,g12a-frddr", +- "amlogic,axg-frddr"; +- reg = <0x0 0x240 0x0 0x2c>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "FRDDR_C"; +- interrupts = ; +- clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; +- resets = <&arb AXG_ARB_FRDDR_C>; +- status = "disabled"; +- }; +- +- arb: reset-controller@280 { +- status = "disabled"; +- compatible = "amlogic,meson-axg-audio-arb"; +- reg = <0x0 0x280 0x0 0x4>; +- #reset-cells = <1>; +- clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; +- }; +- +- tdmin_a: audio-controller@300 { +- compatible = "amlogic,g12a-tdmin", +- "amlogic,axg-tdmin"; +- reg = <0x0 0x300 0x0 0x40>; +- sound-name-prefix = "TDMIN_A"; +- resets = <&clkc_audio AUD_RESET_TDMIN_A>; +- clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, +- <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, +- <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; +- clock-names = "pclk", "sclk", "sclk_sel", +- "lrclk", "lrclk_sel"; +- status = "disabled"; +- }; +- +- tdmin_b: audio-controller@340 { +- compatible = "amlogic,g12a-tdmin", +- "amlogic,axg-tdmin"; +- reg = <0x0 0x340 0x0 0x40>; +- sound-name-prefix = "TDMIN_B"; +- resets = <&clkc_audio AUD_RESET_TDMIN_B>; +- clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, +- <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, +- <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; +- clock-names = "pclk", "sclk", "sclk_sel", +- "lrclk", "lrclk_sel"; +- status = "disabled"; +- }; +- +- tdmin_c: audio-controller@380 { +- compatible = "amlogic,g12a-tdmin", +- "amlogic,axg-tdmin"; +- reg = <0x0 0x380 0x0 0x40>; +- sound-name-prefix = "TDMIN_C"; +- resets = <&clkc_audio AUD_RESET_TDMIN_C>; +- clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, +- <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, +- <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; +- clock-names = "pclk", "sclk", "sclk_sel", +- "lrclk", "lrclk_sel"; +- status = "disabled"; +- }; +- +- tdmin_lb: audio-controller@3c0 { +- compatible = "amlogic,g12a-tdmin", +- "amlogic,axg-tdmin"; +- reg = <0x0 0x3c0 0x0 0x40>; +- sound-name-prefix = "TDMIN_LB"; +- resets = <&clkc_audio AUD_RESET_TDMIN_LB>; +- clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, +- <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, +- <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, +- <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; +- clock-names = "pclk", "sclk", "sclk_sel", +- "lrclk", "lrclk_sel"; +- status = "disabled"; +- }; +- +- spdifin: audio-controller@400 { +- compatible = "amlogic,g12a-spdifin", +- "amlogic,axg-spdifin"; +- reg = <0x0 0x400 0x0 0x30>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "SPDIFIN"; +- interrupts = ; +- clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, +- <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; +- clock-names = "pclk", "refclk"; +- status = "disabled"; +- }; +- +- spdifout: audio-controller@480 { +- compatible = "amlogic,g12a-spdifout", +- "amlogic,axg-spdifout"; +- reg = <0x0 0x480 0x0 0x50>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "SPDIFOUT"; +- clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, +- <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; +- clock-names = "pclk", "mclk"; +- status = "disabled"; +- }; +- +- tdmout_a: audio-controller@500 { +- compatible = "amlogic,g12a-tdmout"; +- reg = <0x0 0x500 0x0 0x40>; +- sound-name-prefix = "TDMOUT_A"; +- resets = <&clkc_audio AUD_RESET_TDMOUT_A>; +- clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, +- <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, +- <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, +- <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, +- <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; +- clock-names = "pclk", "sclk", "sclk_sel", +- "lrclk", "lrclk_sel"; +- status = "disabled"; +- }; +- +- tdmout_b: audio-controller@540 { +- compatible = "amlogic,g12a-tdmout"; +- reg = <0x0 0x540 0x0 0x40>; +- sound-name-prefix = "TDMOUT_B"; +- resets = <&clkc_audio AUD_RESET_TDMOUT_B>; +- clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, +- <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, +- <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, +- <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, +- <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; +- clock-names = "pclk", "sclk", "sclk_sel", +- "lrclk", "lrclk_sel"; +- status = "disabled"; +- }; +- +- tdmout_c: audio-controller@580 { +- compatible = "amlogic,g12a-tdmout"; +- reg = <0x0 0x580 0x0 0x40>; +- sound-name-prefix = "TDMOUT_C"; +- resets = <&clkc_audio AUD_RESET_TDMOUT_C>; +- clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, +- <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, +- <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, +- <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, +- <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; +- clock-names = "pclk", "sclk", "sclk_sel", +- "lrclk", "lrclk_sel"; +- status = "disabled"; +- }; +- +- spdifout_b: audio-controller@680 { +- compatible = "amlogic,g12a-spdifout", +- "amlogic,axg-spdifout"; +- reg = <0x0 0x680 0x0 0x50>; +- #sound-dai-cells = <0>; +- sound-name-prefix = "SPDIFOUT_B"; +- clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, +- <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; +- clock-names = "pclk", "mclk"; +- status = "disabled"; +- }; +- +- tohdmitx: audio-controller@744 { +- compatible = "amlogic,g12a-tohdmitx"; +- reg = <0x0 0x744 0x0 0x4>; +- #sound-dai-cells = <1>; +- sound-name-prefix = "TOHDMITX"; +- status = "disabled"; +- }; +- }; +- + usb3_pcie_phy: phy@46000 { + compatible = "amlogic,g12a-usb3-pcie-phy"; + reg = <0x0 0x46000 0x0 0x2000>; +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +index ac5833781611..0d9df29994f3 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +@@ -5,7 +5,331 @@ + */ + + #include "meson-g12-common.dtsi" ++#include + #include ++#include ++#include ++ ++/ { ++ tdmif_a: audio-controller-0 { ++ compatible = "amlogic,axg-tdm-iface"; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "TDM_A"; ++ clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, ++ <&clkc_audio AUD_CLKID_MST_A_SCLK>, ++ <&clkc_audio AUD_CLKID_MST_A_LRCLK>; ++ clock-names = "mclk", "sclk", "lrclk"; ++ status = "disabled"; ++ }; ++ ++ tdmif_b: audio-controller-1 { ++ compatible = "amlogic,axg-tdm-iface"; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "TDM_B"; ++ clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, ++ <&clkc_audio AUD_CLKID_MST_B_SCLK>, ++ <&clkc_audio AUD_CLKID_MST_B_LRCLK>; ++ clock-names = "mclk", "sclk", "lrclk"; ++ status = "disabled"; ++ }; ++ ++ tdmif_c: audio-controller-2 { ++ compatible = "amlogic,axg-tdm-iface"; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "TDM_C"; ++ clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, ++ <&clkc_audio AUD_CLKID_MST_C_SCLK>, ++ <&clkc_audio AUD_CLKID_MST_C_LRCLK>; ++ clock-names = "mclk", "sclk", "lrclk"; ++ status = "disabled"; ++ }; ++}; ++ ++&apb { ++ pdm: audio-controller@40000 { ++ compatible = "amlogic,g12a-pdm", ++ "amlogic,axg-pdm"; ++ reg = <0x0 0x40000 0x0 0x34>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "PDM"; ++ clocks = <&clkc_audio AUD_CLKID_PDM>, ++ <&clkc_audio AUD_CLKID_PDM_DCLK>, ++ <&clkc_audio AUD_CLKID_PDM_SYSCLK>; ++ clock-names = "pclk", "dclk", "sysclk"; ++ status = "disabled"; ++ }; ++ ++ audio: bus@42000 { ++ compatible = "simple-bus"; ++ reg = <0x0 0x42000 0x0 0x2000>; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>; ++ ++ clkc_audio: clock-controller@0 { ++ status = "disabled"; ++ compatible = "amlogic,g12a-audio-clkc"; ++ reg = <0x0 0x0 0x0 0xb4>; ++ #clock-cells = <1>; ++ #reset-cells = <1>; ++ ++ clocks = <&clkc CLKID_AUDIO>, ++ <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>, ++ <&clkc CLKID_MPLL3>, ++ <&clkc CLKID_HIFI_PLL>, ++ <&clkc CLKID_FCLK_DIV3>, ++ <&clkc CLKID_FCLK_DIV4>, ++ <&clkc CLKID_GP0_PLL>; ++ clock-names = "pclk", ++ "mst_in0", ++ "mst_in1", ++ "mst_in2", ++ "mst_in3", ++ "mst_in4", ++ "mst_in5", ++ "mst_in6", ++ "mst_in7"; ++ ++ resets = <&reset RESET_AUDIO>; ++ }; ++ ++ toddr_a: audio-controller@100 { ++ compatible = "amlogic,g12a-toddr", ++ "amlogic,axg-toddr"; ++ reg = <0x0 0x100 0x0 0x2c>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "TODDR_A"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_TODDR_A>; ++ resets = <&arb AXG_ARB_TODDR_A>; ++ status = "disabled"; ++ }; ++ ++ toddr_b: audio-controller@140 { ++ compatible = "amlogic,g12a-toddr", ++ "amlogic,axg-toddr"; ++ reg = <0x0 0x140 0x0 0x2c>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "TODDR_B"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_TODDR_B>; ++ resets = <&arb AXG_ARB_TODDR_B>; ++ status = "disabled"; ++ }; ++ ++ toddr_c: audio-controller@180 { ++ compatible = "amlogic,g12a-toddr", ++ "amlogic,axg-toddr"; ++ reg = <0x0 0x180 0x0 0x2c>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "TODDR_C"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_TODDR_C>; ++ resets = <&arb AXG_ARB_TODDR_C>; ++ status = "disabled"; ++ }; ++ ++ frddr_a: audio-controller@1c0 { ++ compatible = "amlogic,g12a-frddr", ++ "amlogic,axg-frddr"; ++ reg = <0x0 0x1c0 0x0 0x2c>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "FRDDR_A"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; ++ resets = <&arb AXG_ARB_FRDDR_A>; ++ status = "disabled"; ++ }; ++ ++ frddr_b: audio-controller@200 { ++ compatible = "amlogic,g12a-frddr", ++ "amlogic,axg-frddr"; ++ reg = <0x0 0x200 0x0 0x2c>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "FRDDR_B"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; ++ resets = <&arb AXG_ARB_FRDDR_B>; ++ status = "disabled"; ++ }; ++ ++ frddr_c: audio-controller@240 { ++ compatible = "amlogic,g12a-frddr", ++ "amlogic,axg-frddr"; ++ reg = <0x0 0x240 0x0 0x2c>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "FRDDR_C"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; ++ resets = <&arb AXG_ARB_FRDDR_C>; ++ status = "disabled"; ++ }; ++ ++ arb: reset-controller@280 { ++ status = "disabled"; ++ compatible = "amlogic,meson-axg-audio-arb"; ++ reg = <0x0 0x280 0x0 0x4>; ++ #reset-cells = <1>; ++ clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; ++ }; ++ ++ tdmin_a: audio-controller@300 { ++ compatible = "amlogic,g12a-tdmin", ++ "amlogic,axg-tdmin"; ++ reg = <0x0 0x300 0x0 0x40>; ++ sound-name-prefix = "TDMIN_A"; ++ resets = <&clkc_audio AUD_RESET_TDMIN_A>; ++ clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, ++ <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, ++ <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; ++ clock-names = "pclk", "sclk", "sclk_sel", ++ "lrclk", "lrclk_sel"; ++ status = "disabled"; ++ }; ++ ++ tdmin_b: audio-controller@340 { ++ compatible = "amlogic,g12a-tdmin", ++ "amlogic,axg-tdmin"; ++ reg = <0x0 0x340 0x0 0x40>; ++ sound-name-prefix = "TDMIN_B"; ++ resets = <&clkc_audio AUD_RESET_TDMIN_B>; ++ clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, ++ <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, ++ <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; ++ clock-names = "pclk", "sclk", "sclk_sel", ++ "lrclk", "lrclk_sel"; ++ status = "disabled"; ++ }; ++ ++ tdmin_c: audio-controller@380 { ++ compatible = "amlogic,g12a-tdmin", ++ "amlogic,axg-tdmin"; ++ reg = <0x0 0x380 0x0 0x40>; ++ sound-name-prefix = "TDMIN_C"; ++ resets = <&clkc_audio AUD_RESET_TDMIN_C>; ++ clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, ++ <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, ++ <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; ++ clock-names = "pclk", "sclk", "sclk_sel", ++ "lrclk", "lrclk_sel"; ++ status = "disabled"; ++ }; ++ ++ tdmin_lb: audio-controller@3c0 { ++ compatible = "amlogic,g12a-tdmin", ++ "amlogic,axg-tdmin"; ++ reg = <0x0 0x3c0 0x0 0x40>; ++ sound-name-prefix = "TDMIN_LB"; ++ resets = <&clkc_audio AUD_RESET_TDMIN_LB>; ++ clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, ++ <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, ++ <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, ++ <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; ++ clock-names = "pclk", "sclk", "sclk_sel", ++ "lrclk", "lrclk_sel"; ++ status = "disabled"; ++ }; ++ ++ spdifin: audio-controller@400 { ++ compatible = "amlogic,g12a-spdifin", ++ "amlogic,axg-spdifin"; ++ reg = <0x0 0x400 0x0 0x30>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "SPDIFIN"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, ++ <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; ++ clock-names = "pclk", "refclk"; ++ status = "disabled"; ++ }; ++ ++ spdifout: audio-controller@480 { ++ compatible = "amlogic,g12a-spdifout", ++ "amlogic,axg-spdifout"; ++ reg = <0x0 0x480 0x0 0x50>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "SPDIFOUT"; ++ clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, ++ <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; ++ clock-names = "pclk", "mclk"; ++ status = "disabled"; ++ }; ++ ++ tdmout_a: audio-controller@500 { ++ compatible = "amlogic,g12a-tdmout"; ++ reg = <0x0 0x500 0x0 0x40>; ++ sound-name-prefix = "TDMOUT_A"; ++ resets = <&clkc_audio AUD_RESET_TDMOUT_A>; ++ clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, ++ <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, ++ <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, ++ <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, ++ <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; ++ clock-names = "pclk", "sclk", "sclk_sel", ++ "lrclk", "lrclk_sel"; ++ status = "disabled"; ++ }; ++ ++ tdmout_b: audio-controller@540 { ++ compatible = "amlogic,g12a-tdmout"; ++ reg = <0x0 0x540 0x0 0x40>; ++ sound-name-prefix = "TDMOUT_B"; ++ resets = <&clkc_audio AUD_RESET_TDMOUT_B>; ++ clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, ++ <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, ++ <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, ++ <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, ++ <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; ++ clock-names = "pclk", "sclk", "sclk_sel", ++ "lrclk", "lrclk_sel"; ++ status = "disabled"; ++ }; ++ ++ tdmout_c: audio-controller@580 { ++ compatible = "amlogic,g12a-tdmout"; ++ reg = <0x0 0x580 0x0 0x40>; ++ sound-name-prefix = "TDMOUT_C"; ++ resets = <&clkc_audio AUD_RESET_TDMOUT_C>; ++ clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, ++ <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, ++ <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, ++ <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, ++ <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; ++ clock-names = "pclk", "sclk", "sclk_sel", ++ "lrclk", "lrclk_sel"; ++ status = "disabled"; ++ }; ++ ++ spdifout_b: audio-controller@680 { ++ compatible = "amlogic,g12a-spdifout", ++ "amlogic,axg-spdifout"; ++ reg = <0x0 0x680 0x0 0x50>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "SPDIFOUT_B"; ++ clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, ++ <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; ++ clock-names = "pclk", "mclk"; ++ status = "disabled"; ++ }; ++ ++ tohdmitx: audio-controller@744 { ++ compatible = "amlogic,g12a-tohdmitx"; ++ reg = <0x0 0x744 0x0 0x4>; ++ #sound-dai-cells = <1>; ++ sound-name-prefix = "TOHDMITX"; ++ status = "disabled"; ++ }; ++ }; ++}; + + ðmac { + power-domains = <&pwrc PWRC_G12A_ETH_ID>; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0010-arm64-dts-meson-g12a-add-audio-devices-resets.patch b/buildroot-external/board/hardkernel/patches/linux/0010-arm64-dts-meson-g12a-add-audio-devices-resets.patch new file mode 100644 index 000000000..ec7d9ceff --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0010-arm64-dts-meson-g12a-add-audio-devices-resets.patch @@ -0,0 +1,121 @@ +From c725fb00dfe3409720be24fad54b9acde26c5f11 Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Wed, 25 Sep 2019 11:33:58 +0200 +Subject: [PATCH] arm64: dts: meson: g12a: add audio devices resets + +Provide the reset lines coming from the audio clock controller to +the audio devices of the g12 family + +Signed-off-by: Jerome Brunet +Reviewed-by: Neil Armstrong +Reviewed-by: Kevin Hilman +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-g12.dtsi | 28 +++++++++++++++++----- + 1 file changed, 22 insertions(+), 6 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +index 0d9df29994f3..3cf74fc96434 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +@@ -103,7 +103,9 @@ + sound-name-prefix = "TODDR_A"; + interrupts = ; + clocks = <&clkc_audio AUD_CLKID_TODDR_A>; +- resets = <&arb AXG_ARB_TODDR_A>; ++ resets = <&arb AXG_ARB_TODDR_A>, ++ <&clkc_audio AUD_RESET_TODDR_A>; ++ reset-names = "arb", "rst"; + status = "disabled"; + }; + +@@ -115,7 +117,9 @@ + sound-name-prefix = "TODDR_B"; + interrupts = ; + clocks = <&clkc_audio AUD_CLKID_TODDR_B>; +- resets = <&arb AXG_ARB_TODDR_B>; ++ resets = <&arb AXG_ARB_TODDR_B>, ++ <&clkc_audio AUD_RESET_TODDR_B>; ++ reset-names = "arb", "rst"; + status = "disabled"; + }; + +@@ -127,7 +131,9 @@ + sound-name-prefix = "TODDR_C"; + interrupts = ; + clocks = <&clkc_audio AUD_CLKID_TODDR_C>; +- resets = <&arb AXG_ARB_TODDR_C>; ++ resets = <&arb AXG_ARB_TODDR_C>, ++ <&clkc_audio AUD_RESET_TODDR_C>; ++ reset-names = "arb", "rst"; + status = "disabled"; + }; + +@@ -139,7 +145,9 @@ + sound-name-prefix = "FRDDR_A"; + interrupts = ; + clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; +- resets = <&arb AXG_ARB_FRDDR_A>; ++ resets = <&arb AXG_ARB_FRDDR_A>, ++ <&clkc_audio AUD_RESET_FRDDR_A>; ++ reset-names = "arb", "rst"; + status = "disabled"; + }; + +@@ -151,7 +159,9 @@ + sound-name-prefix = "FRDDR_B"; + interrupts = ; + clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; +- resets = <&arb AXG_ARB_FRDDR_B>; ++ resets = <&arb AXG_ARB_FRDDR_B>, ++ <&clkc_audio AUD_RESET_FRDDR_B>; ++ reset-names = "arb", "rst"; + status = "disabled"; + }; + +@@ -163,7 +173,9 @@ + sound-name-prefix = "FRDDR_C"; + interrupts = ; + clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; +- resets = <&arb AXG_ARB_FRDDR_C>; ++ resets = <&arb AXG_ARB_FRDDR_C>, ++ <&clkc_audio AUD_RESET_FRDDR_C>; ++ reset-names = "arb", "rst"; + status = "disabled"; + }; + +@@ -249,6 +261,7 @@ + clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, + <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; + clock-names = "pclk", "refclk"; ++ resets = <&clkc_audio AUD_RESET_SPDIFIN>; + status = "disabled"; + }; + +@@ -261,6 +274,7 @@ + clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, + <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; + clock-names = "pclk", "mclk"; ++ resets = <&clkc_audio AUD_RESET_SPDIFOUT>; + status = "disabled"; + }; + +@@ -318,6 +332,7 @@ + clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, + <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; + clock-names = "pclk", "mclk"; ++ resets = <&clkc_audio AUD_RESET_SPDIFOUT_B>; + status = "disabled"; + }; + +@@ -326,6 +341,7 @@ + reg = <0x0 0x744 0x0 0x4>; + #sound-dai-cells = <1>; + sound-name-prefix = "TOHDMITX"; ++ resets = <&clkc_audio AUD_RESET_TOHDMITX>; + status = "disabled"; + }; + }; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0011-arm64-dts-meson-Link-nvmem-and-secure-monitor-nodes.patch b/buildroot-external/board/hardkernel/patches/linux/0011-arm64-dts-meson-Link-nvmem-and-secure-monitor-nodes.patch new file mode 100644 index 000000000..79c360ae1 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0011-arm64-dts-meson-Link-nvmem-and-secure-monitor-nodes.patch @@ -0,0 +1,54 @@ +From de82e74a9f2631e6718ab6a90e0dfbbcd7d952b4 Mon Sep 17 00:00:00 2001 +From: Carlo Caione +Date: Wed, 31 Jul 2019 09:23:38 +0100 +Subject: [PATCH] arm64: dts: meson: Link nvmem and secure-monitor nodes + +The former is going to use the latter to retrieve the efuses data. + +Signed-off-by: Carlo Caione +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 + + arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 1 + + arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +index bb4a2acb9970..04803c3bccfa 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +@@ -117,6 +117,7 @@ + #address-cells = <1>; + #size-cells = <1>; + read-only; ++ secure-monitor = <&sm>; + }; + + psci { +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index 95e9cf405fe9..0f6ec1704343 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -22,6 +22,7 @@ + #address-cells = <1>; + #size-cells = <1>; + read-only; ++ secure-monitor = <&sm>; + }; + + psci { +diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +index 6733050d735f..e5a601e75ef2 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +@@ -161,6 +161,7 @@ + #address-cells = <1>; + #size-cells = <1>; + read-only; ++ secure-monitor = <&sm>; + + sn: sn@14 { + reg = <0x14 0x10>; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0012-arm64-dts-meson-g12a-Add-PCIe-node.patch b/buildroot-external/board/hardkernel/patches/linux/0012-arm64-dts-meson-g12a-Add-PCIe-node.patch new file mode 100644 index 000000000..da1af65ae --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0012-arm64-dts-meson-g12a-Add-PCIe-node.patch @@ -0,0 +1,82 @@ +From 1f8607d597635c283e397e87575b49184874d507 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Mon, 16 Sep 2019 14:50:21 +0200 +Subject: [PATCH] arm64: dts: meson-g12a: Add PCIe node + +This adds the Amlogic G12A PCI Express controller node, also +using the USB3+PCIe Combo PHY. + +The PHY mode selection is static, thus the USB3+PCIe Combo PHY +phandle would need to be removed from the USB control node if the +shared differential lines are used for PCIe instead of USB3. + +Signed-off-by: Neil Armstrong +Reviewed-by: Andrew Murray +Signed-off-by: Kevin Hilman +--- + .../boot/dts/amlogic/meson-g12-common.dtsi | 33 +++++++++++++++++++ + arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 4 +++ + 2 files changed, 37 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index 0f6ec1704343..f76773cabdb1 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -60,6 +60,39 @@ + #size-cells = <2>; + ranges; + ++ pcie: pcie@fc000000 { ++ compatible = "amlogic,g12a-pcie", "snps,dw-pcie"; ++ reg = <0x0 0xfc000000 0x0 0x400000 ++ 0x0 0xff648000 0x0 0x2000 ++ 0x0 0xfc400000 0x0 0x200000>; ++ reg-names = "elbi", "cfg", "config"; ++ interrupts = ; ++ #interrupt-cells = <1>; ++ interrupt-map-mask = <0 0 0 0>; ++ interrupt-map = <0 0 0 0 &gic GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; ++ bus-range = <0x0 0xff>; ++ #address-cells = <3>; ++ #size-cells = <2>; ++ device_type = "pci"; ++ ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000 ++ 0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>; ++ ++ clocks = <&clkc CLKID_PCIE_PHY ++ &clkc CLKID_PCIE_COMB ++ &clkc CLKID_PCIE_PLL>; ++ clock-names = "general", ++ "pclk", ++ "port"; ++ resets = <&reset RESET_PCIE_CTRL_A>, ++ <&reset RESET_PCIE_APB>; ++ reset-names = "port", ++ "apb"; ++ num-lanes = <1>; ++ phys = <&usb3_pcie_phy PHY_TYPE_PCIE>; ++ phy-names = "pcie"; ++ status = "disabled"; ++ }; ++ + ethmac: ethernet@ff3f0000 { + compatible = "amlogic,meson-axg-dwmac", + "snps,dwmac-3.70a", +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +index 6152e928aef2..1fdc5af5ae23 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +@@ -139,6 +139,10 @@ + "amlogic,meson-gpio-intc"; + }; + ++&pcie { ++ power-domains = <&pwrc PWRC_SM1_PCIE_ID>; ++}; ++ + &pwrc { + compatible = "amlogic,meson-sm1-pwrc"; + }; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0013-arm64-dts-meson-g12-add-support-for-simplefb.patch b/buildroot-external/board/hardkernel/patches/linux/0013-arm64-dts-meson-g12-add-support-for-simplefb.patch new file mode 100644 index 000000000..eb97101b7 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0013-arm64-dts-meson-g12-add-support-for-simplefb.patch @@ -0,0 +1,99 @@ +From 15767cfd81eb9ff2fb783d0c6f458b90efa7d4d3 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Thu, 3 Oct 2019 15:08:41 +0200 +Subject: [PATCH] arm64: dts: meson-g12: add support for simplefb + +SimpleFB allows transferring a framebuffer from the firmware/bootloader +to the kernel, while making sure the related clocks and power supplies +stay enabled. + +Add nodes for CVBS and HDMI Simple Framebuffers, based on the GXBB/GXL/GXM +support at [1]. + +[1] 03b370357907 ("arm64: dts: meson-gx: add support for simplef") + +Cc: Maxime Jourdan +Signed-off-by: Neil Armstrong +Reviewed-by: Kevin Hilman +Signed-off-by: Kevin Hilman +--- + .../boot/dts/amlogic/meson-g12-common.dtsi | 26 +++++++++++++++++++ + arch/arm64/boot/dts/amlogic/meson-g12.dtsi | 8 ++++++ + arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 8 ++++++ + 3 files changed, 42 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index f76773cabdb1..21c155f4508c 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -16,6 +16,32 @@ + #address-cells = <2>; + #size-cells = <2>; + ++ chosen { ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ ++ simplefb_cvbs: framebuffer-cvbs { ++ compatible = "amlogic,simple-framebuffer", ++ "simple-framebuffer"; ++ amlogic,pipeline = "vpu-cvbs"; ++ clocks = <&clkc CLKID_HDMI>, ++ <&clkc CLKID_HTX_PCLK>, ++ <&clkc CLKID_VPU_INTR>; ++ status = "disabled"; ++ }; ++ ++ simplefb_hdmi: framebuffer-hdmi { ++ compatible = "amlogic,simple-framebuffer", ++ "simple-framebuffer"; ++ amlogic,pipeline = "vpu-hdmi"; ++ clocks = <&clkc CLKID_HDMI>, ++ <&clkc CLKID_HTX_PCLK>, ++ <&clkc CLKID_VPU_INTR>; ++ status = "disabled"; ++ }; ++ }; ++ + efuse: efuse { + compatible = "amlogic,meson-gxbb-efuse"; + clocks = <&clkc CLKID_EFUSE>; +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +index 3cf74fc96434..1e0e056c3d62 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12.dtsi +@@ -358,3 +358,11 @@ + &sd_emmc_a { + amlogic,dram-access-quirk; + }; ++ ++&simplefb_cvbs { ++ power-domains = <&pwrc PWRC_G12A_VPU_ID>; ++}; ++ ++&simplefb_hdmi { ++ power-domains = <&pwrc PWRC_G12A_VPU_ID>; ++}; +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +index 1fdc5af5ae23..f89d744c9648 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +@@ -147,6 +147,14 @@ + compatible = "amlogic,meson-sm1-pwrc"; + }; + ++&simplefb_cvbs { ++ power-domains = <&pwrc PWRC_SM1_VPU_ID>; ++}; ++ ++&simplefb_hdmi { ++ power-domains = <&pwrc PWRC_SM1_VPU_ID>; ++}; ++ + &vpu { + power-domains = <&pwrc PWRC_SM1_VPU_ID>; + }; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0014-arm64-dts-meson-g12-add-temperature-sensor.patch b/buildroot-external/board/hardkernel/patches/linux/0014-arm64-dts-meson-g12-add-temperature-sensor.patch new file mode 100644 index 000000000..2fa482a76 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0014-arm64-dts-meson-g12-add-temperature-sensor.patch @@ -0,0 +1,52 @@ +From 8656783f07613ad2a4e511e417c88c544e220113 Mon Sep 17 00:00:00 2001 +From: Guillaume La Roque +Date: Fri, 4 Oct 2019 11:01:10 +0200 +Subject: [PATCH] arm64: dts: meson: g12: add temperature sensor + +Add cpu and ddr temperature sensors for G12 Socs + +Reviewed-by: Martin Blumenstingl +Reviewed-by: Neil Armstrong +Reviewed-by: Amit Kucheria +Tested-by: Christian Hewitt +Tested-by: Kevin Hilman +Signed-off-by: Guillaume La Roque +Signed-off-by: Kevin Hilman +--- + .../boot/dts/amlogic/meson-g12-common.dtsi | 20 +++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index 21c155f4508c..f153194b9bf3 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -1380,6 +1380,26 @@ + }; + }; + ++ cpu_temp: temperature-sensor@34800 { ++ compatible = "amlogic,g12a-cpu-thermal", ++ "amlogic,g12a-thermal"; ++ reg = <0x0 0x34800 0x0 0x50>; ++ interrupts = ; ++ clocks = <&clkc CLKID_TS>; ++ #thermal-sensor-cells = <0>; ++ amlogic,ao-secure = <&sec_AO>; ++ }; ++ ++ ddr_temp: temperature-sensor@34c00 { ++ compatible = "amlogic,g12a-ddr-thermal", ++ "amlogic,g12a-thermal"; ++ reg = <0x0 0x34c00 0x0 0x50>; ++ interrupts = ; ++ clocks = <&clkc CLKID_TS>; ++ #thermal-sensor-cells = <0>; ++ amlogic,ao-secure = <&sec_AO>; ++ }; ++ + usb2_phy0: phy@36000 { + compatible = "amlogic,g12a-usb2-phy"; + reg = <0x0 0x36000 0x0 0x2000>; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0015-arm64-dts-meson-g12-Add-minimal-thermal-zone.patch b/buildroot-external/board/hardkernel/patches/linux/0015-arm64-dts-meson-g12-Add-minimal-thermal-zone.patch new file mode 100644 index 000000000..6e0be8cf0 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0015-arm64-dts-meson-g12-Add-minimal-thermal-zone.patch @@ -0,0 +1,105 @@ +From e7251ed74ef79b80fc5e77636832be7baf1f40a6 Mon Sep 17 00:00:00 2001 +From: Guillaume La Roque +Date: Fri, 4 Oct 2019 11:01:11 +0200 +Subject: [PATCH] arm64: dts: meson: g12: Add minimal thermal zone + +Add minimal thermal zone for two temperature sensor +One is located close to the DDR and the other one is +located close to the PLLs (between the CPU and GPU) + +Acked-by: Martin Blumenstingl +Reviewed-by: Neil Armstrong +Reviewed-by: Amit Kucheria +Tested-by: Christian Hewitt +Tested-by: Kevin Hilman +Signed-off-by: Guillaume La Roque +Signed-off-by: Kevin Hilman +--- + .../boot/dts/amlogic/meson-g12-common.dtsi | 57 +++++++++++++++++++ + 1 file changed, 57 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index f153194b9bf3..a063d49b9cb1 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + / { + interrupt-parent = <&gic>; +@@ -119,6 +120,61 @@ + status = "disabled"; + }; + ++ thermal-zones { ++ cpu_thermal: cpu-thermal { ++ polling-delay = <1000>; ++ polling-delay-passive = <100>; ++ thermal-sensors = <&cpu_temp>; ++ ++ trips { ++ cpu_passive: cpu-passive { ++ temperature = <85000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "passive"; ++ }; ++ ++ cpu_hot: cpu-hot { ++ temperature = <95000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "hot"; ++ }; ++ ++ cpu_critical: cpu-critical { ++ temperature = <110000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "critical"; ++ }; ++ }; ++ }; ++ ++ ddr_thermal: ddr-thermal { ++ polling-delay = <1000>; ++ polling-delay-passive = <100>; ++ thermal-sensors = <&ddr_temp>; ++ ++ trips { ++ ddr_passive: ddr-passive { ++ temperature = <85000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "passive"; ++ }; ++ ++ ddr_critical: ddr-critical { ++ temperature = <110000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map { ++ trip = <&ddr_passive>; ++ cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ }; ++ }; ++ + ethmac: ethernet@ff3f0000 { + compatible = "amlogic,meson-axg-dwmac", + "snps,dwmac-3.70a", +@@ -2169,6 +2225,7 @@ + assigned-clock-rates = <0>, /* Do Nothing */ + <800000000>, + <0>; /* Do Nothing */ ++ #cooling-cells = <2>; + }; + }; + +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0016-arm64-dts-meson-Add-capacity-dmips-mhz-attributes-to.patch b/buildroot-external/board/hardkernel/patches/linux/0016-arm64-dts-meson-Add-capacity-dmips-mhz-attributes-to.patch new file mode 100644 index 000000000..7aea19ca1 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0016-arm64-dts-meson-Add-capacity-dmips-mhz-attributes-to.patch @@ -0,0 +1,83 @@ +From 6eeaf4d2452ec8b1ece58776812140734fc2e088 Mon Sep 17 00:00:00 2001 +From: Frank Hartung +Date: Sat, 14 Sep 2019 06:49:40 +0400 +Subject: [PATCH] arm64: dts: meson: Add capacity-dmips-mhz attributes to G12B + +Meson G12B SoCs (S922X and A311D) are a big-little design where not all CPUs +are equal; the A53s cores are weaker than the A72s. + +Include capacity-dmips-mhz properties to tell the OS there is a difference +in processing capacity. The dmips values are based on similar submissions for +other A53/A72 SoCs: HiSilicon 3660 [1] and Rockchip RK3399 [2]. + +This change is particularly beneficial for use-cases like retro gaming where +emulators often run on a single core. The OS now chooses an A72 core instead +of an A53 core. + +[1] https://lore.kernel.org/patchwork/patch/862742/ +[2] https://patchwork.kernel.org/patch/10836577/ + +Signed-off-by: Frank Hartung +Signed-off-by: Christian Hewitt +Reviewed-by: Neil Armstrong +Reviewed-by: Kevin Hilman +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi +index a9e1db0f1158..b3f9e3a02963 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi +@@ -48,6 +48,7 @@ + compatible = "arm,cortex-a53"; + reg = <0x0 0x0>; + enable-method = "psci"; ++ capacity-dmips-mhz = <592>; + next-level-cache = <&l2>; + }; + +@@ -56,6 +57,7 @@ + compatible = "arm,cortex-a53"; + reg = <0x0 0x1>; + enable-method = "psci"; ++ capacity-dmips-mhz = <592>; + next-level-cache = <&l2>; + }; + +@@ -64,6 +66,7 @@ + compatible = "arm,cortex-a73"; + reg = <0x0 0x100>; + enable-method = "psci"; ++ capacity-dmips-mhz = <1024>; + next-level-cache = <&l2>; + }; + +@@ -72,6 +75,7 @@ + compatible = "arm,cortex-a73"; + reg = <0x0 0x101>; + enable-method = "psci"; ++ capacity-dmips-mhz = <1024>; + next-level-cache = <&l2>; + }; + +@@ -80,6 +84,7 @@ + compatible = "arm,cortex-a73"; + reg = <0x0 0x102>; + enable-method = "psci"; ++ capacity-dmips-mhz = <1024>; + next-level-cache = <&l2>; + }; + +@@ -88,6 +93,7 @@ + compatible = "arm,cortex-a73"; + reg = <0x0 0x103>; + enable-method = "psci"; ++ capacity-dmips-mhz = <1024>; + next-level-cache = <&l2>; + }; + +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0017-arm64-dts-meson-g12a-fix-gpu-irq-order.patch b/buildroot-external/board/hardkernel/patches/linux/0017-arm64-dts-meson-g12a-fix-gpu-irq-order.patch new file mode 100644 index 000000000..23a89539e --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0017-arm64-dts-meson-g12a-fix-gpu-irq-order.patch @@ -0,0 +1,37 @@ +From 711f9cb1f13aff940cd0a469dcb1a041330af019 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Mon, 21 Oct 2019 16:29:00 +0200 +Subject: [PATCH] arm64: dts: meson-g12a: fix gpu irq order + +This fixes the following DT schemas check errors: +meson-g12b-s922x-khadas-vim3.dt.yaml: gpu@ffe40000: interrupt-names:0: 'job' was expected +meson-g12b-s922x-khadas-vim3.dt.yaml: gpu@ffe40000: interrupt-names:2: 'gpu' was expected + +Signed-off-by: Neil Armstrong +Reviewed-by: Martin Blumenstingl +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index a063d49b9cb1..7fabc8d9654a 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -2204,10 +2204,10 @@ + compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; + reg = <0x0 0xffe40000 0x0 0x40000>; + interrupt-parent = <&gic>; +- interrupts = , ++ interrupts = , + , +- ; +- interrupt-names = "gpu", "mmu", "job"; ++ ; ++ interrupt-names = "job", "mmu", "gpu"; + clocks = <&clkc CLKID_MALI>; + resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; + +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0019-arm64-dts-meson-odroid-c2-p5v0-is-the-main-5V-power-.patch b/buildroot-external/board/hardkernel/patches/linux/0019-arm64-dts-meson-odroid-c2-p5v0-is-the-main-5V-power-.patch new file mode 100644 index 000000000..0d9429951 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0019-arm64-dts-meson-odroid-c2-p5v0-is-the-main-5V-power-.patch @@ -0,0 +1,43 @@ +From fcf19f29d79dfe4edce0376dd027ea7a5456ea32 Mon Sep 17 00:00:00 2001 +From: Anand Moon +Date: Mon, 2 Sep 2019 05:49:33 +0000 +Subject: [PATCH] arm64: dts: meson: odroid-c2: p5v0 is the main 5V power input + +As per the schematic Monolithic Power Systems MP2161GJ-C499 +supply a fixed output voltage of 5.0V. This supplies linked +to VDD_EE, HDMI_P5V0, USB_POWER, VCCK, VDDIO_AO1V8, VDDIO_AO3V3, +VDD3V3, DDR3_1V5 according to the schematics. + +Cc: Martin Blumenstingl +Cc: Jerome Brunet +Cc: Neil Armstrong +Acked-by: Martin Blumenstingl +Signed-off-by: Anand Moon +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +index 6039adda12ee..0cb5831d9daf 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +@@ -50,6 +50,15 @@ + }; + }; + ++ p5v0: regulator-p5v0 { ++ compatible = "regulator-fixed"; ++ ++ regulator-name = "P5V0"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ + tflash_vdd: regulator-tflash_vdd { + /* + * signal name from schematics: TFLASH_VDD_EN +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0020-arm64-dts-meson-odroid-c2-Add-missing-linking-regula.patch b/buildroot-external/board/hardkernel/patches/linux/0020-arm64-dts-meson-odroid-c2-Add-missing-linking-regula.patch new file mode 100644 index 000000000..50451ef77 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0020-arm64-dts-meson-odroid-c2-Add-missing-linking-regula.patch @@ -0,0 +1,42 @@ +From 47a8bddb6df98cc4062661fe68ad5d4382337d0e Mon Sep 17 00:00:00 2001 +From: Anand Moon +Date: Mon, 2 Sep 2019 05:49:34 +0000 +Subject: [PATCH] arm64: dts: meson: odroid-c2: Add missing linking regulator + to usb bus + +Add missing linking regulator node to usb bus for power usb devices. + +Cc: Martin Blumenstingl +Cc: Jerome Brunet +Cc: Neil Armstrong +Acked-by: Martin Blumenstingl +Signed-off-by: Anand Moon +[ khilman: minor typo fixup ] +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +index 0cb5831d9daf..e2ce767a4324 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +@@ -36,8 +36,15 @@ + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + ++ /* ++ * signal name from schematics: PWREN ++ */ + gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; + enable-active-high; ++ /* ++ * signal name from schematics: USB_POWER ++ */ ++ vin-supply = <&p5v0>; + }; + + leds { +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0022-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch b/buildroot-external/board/hardkernel/patches/linux/0022-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch new file mode 100644 index 000000000..909ce6f9a --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0022-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch @@ -0,0 +1,64 @@ +From 60c5abf6a8f54dee2ccb94a7ec58f73883e6c56d Mon Sep 17 00:00:00 2001 +From: Anand Moon +Date: Tue, 1 Oct 2019 07:38:59 +0000 +Subject: [PATCH] arm64: dts: meson: odroid-c2: Add missing regulator linked to + P5V0 regulator + +As per schematics VDDIO_AO18, VDDIO_AO3V3/VDD3V3 DDR3_1V5/DDR_VDDC: +fixed regulator output which is supplied by P5V0. + +Cc: Martin Blumenstingl +Cc: Jerome Brunet +Cc: Neil Armstrong +Reviewed-by: Neil Armstrong +Reviewed-by: Martin Blumenstingl +Signed-off-by: Anand Moon +Signed-off-by: Kevin Hilman +--- + .../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 30 +++++++++++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +index e739f10f9442..5adecdf3b175 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +@@ -111,6 +111,36 @@ + regulator-max-microvolt = <3300000>; + }; + ++ vddio_ao1v8: regulator-vddio-ao1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ /* U17 RT9179GB */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ vddio_ao3v3: regulator-vddio-ao3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ /* U11 MP2161GJ-C499 */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ ddr3_1v5: regulator-ddr3_1v5 { ++ compatible = "regulator-fixed"; ++ regulator-name = "DDR3_1V5"; ++ regulator-min-microvolt = <1500000>; ++ regulator-max-microvolt = <1500000>; ++ regulator-always-on; ++ /* U15 MP2161GJ-C499 */ ++ vin-supply = <&p5v0>; ++ }; ++ + emmc_pwrseq: emmc-pwrseq { + compatible = "mmc-pwrseq-emmc"; + reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0023-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch b/buildroot-external/board/hardkernel/patches/linux/0023-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch new file mode 100644 index 000000000..e9dd37bdd --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0023-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch @@ -0,0 +1,73 @@ +From df39b5239d696e1fc9a88103f69c2d3696bdb0bc Mon Sep 17 00:00:00 2001 +From: Anand Moon +Date: Tue, 1 Oct 2019 07:39:00 +0000 +Subject: [PATCH] arm64: dts: meson: odroid-c2: Add missing regulator linked to + VDDIO_AO3V3 regulator + +As per schematics TFLASH_VDD, TF_IO, VCC3V3 fixed regulator output which +is supplied by VDDIO_AO3V3. + +While here, move the comment name with the signal name in the +schematics above the gpio property to make it consistent with other +regulators. + +Cc: Martin Blumenstingl +Cc: Jerome Brunet +Cc: Neil Armstrong +Reviewed-by: Neil Armstrong +Reviewed-by: Martin Blumenstingl +Signed-off-by: Anand Moon +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +index 5adecdf3b175..2fcd512373a3 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +@@ -67,17 +67,19 @@ + }; + + tflash_vdd: regulator-tflash_vdd { +- /* +- * signal name from schematics: TFLASH_VDD_EN +- */ + compatible = "regulator-fixed"; + + regulator-name = "TFLASH_VDD"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + ++ /* ++ * signal name from schematics: TFLASH_VDD_EN ++ */ + gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; + enable-active-high; ++ /* U16 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; + }; + + tf_io: gpio-regulator-tf_io { +@@ -95,6 +97,8 @@ + + states = <3300000 0>, + <1800000 1>; ++ /* U12/U13 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; + }; + + vcc1v8: regulator-vcc1v8 { +@@ -102,6 +106,9 @@ + regulator-name = "VCC1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ /* U18 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; + }; + + vcc3v3: regulator-vcc3v3 { +-- +2.17.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/0024-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch b/buildroot-external/board/hardkernel/patches/linux/0024-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch new file mode 100644 index 000000000..9594eeeba --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/0024-arm64-dts-meson-odroid-c2-Add-missing-regulator-link.patch @@ -0,0 +1,50 @@ +From 0ac0be655dbbedb50dd216a631213daab6e98d88 Mon Sep 17 00:00:00 2001 +From: Anand Moon +Date: Tue, 1 Oct 2019 07:39:01 +0000 +Subject: [PATCH] arm64: dts: meson: odroid-c2: Add missing regulator linked to + HDMI supply + +As per schematics HDMI_P5V0 is supplied by P5V0 so add missing link. + +Cc: Martin Blumenstingl +Cc: Jerome Brunet +Cc: Neil Armstrong +Reviewed-by: Neil Armstrong +Reviewed-by: Martin Blumenstingl +Signed-off-by: Anand Moon +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +index 2fcd512373a3..6ded279c40c8 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +@@ -66,6 +66,15 @@ + regulator-always-on; + }; + ++ hdmi_p5v0: regulator-hdmi_p5v0 { ++ compatible = "regulator-fixed"; ++ regulator-name = "HDMI_P5V0"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ /* AP2331SA-7 */ ++ vin-supply = <&p5v0>; ++ }; ++ + tflash_vdd: regulator-tflash_vdd { + compatible = "regulator-fixed"; + +@@ -220,6 +229,7 @@ + status = "okay"; + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; + pinctrl-names = "default"; ++ hdmi-supply = <&hdmi_p5v0>; + }; + + &hdmi_tx_tmds_port { +-- +2.17.1 +