forked from luck/tmp_suning_uos_patched
arm64: dts: Amlogic updates for v5.5
Hightlights - new board; ugoos am6, based on G12B SoC - g12: add thermal driver and cooling properties - sm1: enable audio on SEI610 board - IR: add several keymaps - sdio: add keep-power-in-suspend property for multiple boards - pcie: add support for G12A - multiple fixes, cleanups -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAl3FFnEACgkQWTcYmtP7 xmWyeg//QE6hBYYjZfwiIbLCgRlpdv04HZg6e5bPqZ8A9x9/mdQoH6cqwbKVpKij bLrkHuwD+WtkWStbemdPtmPliEncAyX9jXGcvIor3eYa9IV6kTORZ8YWq6c8RDMM y8UafRFbt24MNvzi41uuUoSLtlsLUDp6dVfekD4wf1IvV7Ew5Yk5XyHMAjdVongC 07FA1aY6JOiPZeDcvNa11pxlzyciDf22YF8XLoZOsZ/cZN1itjBUMqGRefC51RQP cafmdk0Ms+Xgtq4GwDceLE5QMb/h1K582j4uVu38QMpPqR6WvTnpd/ra4chheJHE nhHHYiN4mWO3lgnp1ZZKooTUyBPAyf3kaP8I7YBrUXuuoy9GNRqKi25uJwALeVqh YKvZqpd6Uw4W/If5EW5zPXlKGv8xSJwaTh6q40sRI0OFMfniy1pLRM3mLKSVqJy6 DKk7Pt4wptWe6Bv6P1hK34acmX6TGcyq53Dg5Nq79E0qul1YRRmHoUHewOeUgwPC XSaaqPSItLQggRXplZVaUm9e8cmjcwU4Od3rqfb/A2JsTniONB3kAI6YoBCsK4O2 SwCbIVP8hkbCo/perun11C4SnsamPdQBmPs1if8PtT72LaNR8HAlFZTgX5yqEFAj ZP9vCgqtdlIE28W9cJLOEMT7KtAzCES2UYbKUDTx+E2GolvoYvA= =pQlU -----END PGP SIGNATURE----- Merge tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt arm64: dts: Amlogic updates for v5.5 Hightlights - new board; ugoos am6, based on G12B SoC - g12: add thermal driver and cooling properties - sm1: enable audio on SEI610 board - IR: add several keymaps - sdio: add keep-power-in-suspend property for multiple boards - pcie: add support for G12A - multiple fixes, cleanups * tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: (62 commits) arm64: dts: meson-gx: fix i2c compatible arm64: dts: meson-gx: cec node should be disabled by default arm64: dts: meson-g12b-odroid-n2: add missing amlogic, s922x compatible arm64: dts: meson-gxm: fix gpu irq order arm64: dts: meson-g12a: fix gpu irq order ARM64: dts: amlogic: adds crypto hardware node arm64: dts: meson-gxbb-vega-s95: set rc-vega-s9x ir keymap arm64: dts: meson-gxm-vega-s96: set rc-vega-s9x ir keymap arm64: dts: meson: g12b: add cooling properties arm64: dts: meson: g12a: add cooling properties arm64: dts: meson: g12: Add minimal thermal zone arm64: dts: meson: g12: add temperature sensor arm64: dts: meson: sei610: enable audio arm64: dts: meson: sm1: add audio devices dt-bindings: clock: meson: add sm1 resets to the axg-audio controller dt-bindings: clk: axg-audio: add sm1 bindings arm64: dts: meson-g12: add support for simplefb arm64: dts: meson: g12a: add audio devices resets arm64: dts: meson: odroid-c2: Add missing regulator linked to HDMI supply arm64: dts: meson: odroid-c2: Add missing regulator linked to VDDIO_AO3V3 regulator ... Link: https://lore.kernel.org/r/7hd0dzs0m1.fsf@baylibre.com Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
5588aa81d2
|
@ -94,7 +94,7 @@ properties:
|
|||
- amlogic,p212
|
||||
- hwacom,amazetv
|
||||
- khadas,vim
|
||||
- libretech,cc
|
||||
- libretech,aml-s905x-cc
|
||||
- nexbox,a95x
|
||||
- const: amlogic,s905x
|
||||
- const: amlogic,meson-gxl
|
||||
|
@ -147,6 +147,7 @@ properties:
|
|||
- enum:
|
||||
- hardkernel,odroid-n2
|
||||
- khadas,vim3
|
||||
- ugoos,am6
|
||||
- const: amlogic,s922x
|
||||
- const: amlogic,g12b
|
||||
|
||||
|
@ -156,4 +157,10 @@ properties:
|
|||
- seirobotics,sei610
|
||||
- khadas,vim3l
|
||||
- const: amlogic,sm1
|
||||
|
||||
- description: Boards with the Amlogic Meson A1 A113L SoC
|
||||
items:
|
||||
- enum:
|
||||
- amlogic,ad401
|
||||
- const: amlogic,a1
|
||||
...
|
||||
|
|
|
@ -7,7 +7,8 @@ devices.
|
|||
Required Properties:
|
||||
|
||||
- compatible : should be "amlogic,axg-audio-clkc" for the A113X and A113D,
|
||||
"amlogic,g12a-audio-clkc" for G12A.
|
||||
"amlogic,g12a-audio-clkc" for G12A,
|
||||
"amlogic,sm1-audio-clkc" for S905X3.
|
||||
- reg : physical base address of the clock controller and length of
|
||||
memory mapped region.
|
||||
- clocks : a list of phandle + clock-specifier pairs for the clocks listed
|
||||
|
|
|
@ -4,7 +4,8 @@ The Amlogic Audio ARB is a simple device which enables or
|
|||
disables the access of Audio FIFOs to DDR on AXG based SoC.
|
||||
|
||||
Required properties:
|
||||
- compatible: 'amlogic,meson-axg-audio-arb'
|
||||
- compatible: 'amlogic,meson-axg-audio-arb' or
|
||||
'amlogic,meson-sm1-audio-arb'
|
||||
- reg: physical base address of the controller and length of memory
|
||||
mapped region.
|
||||
- clocks: phandle to the fifo peripheral clock provided by the audio
|
||||
|
|
|
@ -990,6 +990,8 @@ patternProperties:
|
|||
description: Ubiquiti Networks
|
||||
"^udoo,.*":
|
||||
description: Udoo
|
||||
"^ugoos,.*":
|
||||
description: Ugoos Industrial Co., Ltd.
|
||||
"^uniwest,.*":
|
||||
description: United Western Technologies Corp (UniWest)
|
||||
"^upisemi,.*":
|
||||
|
|
|
@ -6,6 +6,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
|
|||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb
|
||||
|
@ -36,3 +37,4 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
|
|||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
|
||||
|
|
30
arch/arm64/boot/dts/amlogic/meson-a1-ad401.dts
Normal file
30
arch/arm64/boot/dts/amlogic/meson-a1-ad401.dts
Normal file
|
@ -0,0 +1,30 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "meson-a1.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,ad401", "amlogic,a1";
|
||||
model = "Amlogic Meson A1 AD401 Development Board";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO_B;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x8000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart_AO_B {
|
||||
status = "okay";
|
||||
};
|
130
arch/arm64/boot/dts/amlogic/meson-a1.dtsi
Normal file
130
arch/arm64/boot/dts/amlogic/meson-a1.dtsi
Normal file
|
@ -0,0 +1,130 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,a1";
|
||||
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a35";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a35";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
};
|
||||
|
||||
l2: l2-cache0 {
|
||||
compatible = "cache";
|
||||
};
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-1.0";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
linux,cma {
|
||||
compatible = "shared-dma-pool";
|
||||
reusable;
|
||||
size = <0x0 0x800000>;
|
||||
alignment = <0x0 0x400000>;
|
||||
linux,cma-default;
|
||||
};
|
||||
};
|
||||
|
||||
sm: secure-monitor {
|
||||
compatible = "amlogic,meson-gxbb-sm";
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
apb: bus@fe000000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xfe000000 0x0 0x1000000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
|
||||
|
||||
uart_AO: serial@1c00 {
|
||||
compatible = "amlogic,meson-gx-uart",
|
||||
"amlogic,meson-ao-uart";
|
||||
reg = <0x0 0x1c00 0x0 0x18>;
|
||||
interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>, <&xtal>, <&xtal>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart_AO_B: serial@2000 {
|
||||
compatible = "amlogic,meson-gx-uart",
|
||||
"amlogic,meson-ao-uart";
|
||||
reg = <0x0 0x2000 0x0 0x18>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>, <&xtal>, <&xtal>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
gic: interrupt-controller@ff901000 {
|
||||
compatible = "arm,gic-400";
|
||||
reg = <0x0 0xff901000 0x0 0x1000>,
|
||||
<0x0 0xff902000 0x0 0x2000>,
|
||||
<0x0 0xff904000 0x0 0x2000>,
|
||||
<0x0 0xff906000 0x0 0x2000>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_PPI 9
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 14
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 11
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 10
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
||||
xtal: xtal-clk {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "xtal";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
};
|
|
@ -117,6 +117,7 @@ efuse: efuse {
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
read-only;
|
||||
secure-monitor = <&sm>;
|
||||
};
|
||||
|
||||
psci {
|
||||
|
@ -1162,7 +1163,7 @@ clkc_audio: clock-controller@0 {
|
|||
|
||||
toddr_a: audio-controller@100 {
|
||||
compatible = "amlogic,axg-toddr";
|
||||
reg = <0x0 0x100 0x0 0x1c>;
|
||||
reg = <0x0 0x100 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_A";
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
|
||||
|
@ -1173,7 +1174,7 @@ toddr_a: audio-controller@100 {
|
|||
|
||||
toddr_b: audio-controller@140 {
|
||||
compatible = "amlogic,axg-toddr";
|
||||
reg = <0x0 0x140 0x0 0x1c>;
|
||||
reg = <0x0 0x140 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_B";
|
||||
interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
|
||||
|
@ -1184,7 +1185,7 @@ toddr_b: audio-controller@140 {
|
|||
|
||||
toddr_c: audio-controller@180 {
|
||||
compatible = "amlogic,axg-toddr";
|
||||
reg = <0x0 0x180 0x0 0x1c>;
|
||||
reg = <0x0 0x180 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_C";
|
||||
interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
|
||||
|
@ -1195,7 +1196,7 @@ toddr_c: audio-controller@180 {
|
|||
|
||||
frddr_a: audio-controller@1c0 {
|
||||
compatible = "amlogic,axg-frddr";
|
||||
reg = <0x0 0x1c0 0x0 0x1c>;
|
||||
reg = <0x0 0x1c0 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_A";
|
||||
interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
|
||||
|
@ -1206,7 +1207,7 @@ frddr_a: audio-controller@1c0 {
|
|||
|
||||
frddr_b: audio-controller@200 {
|
||||
compatible = "amlogic,axg-frddr";
|
||||
reg = <0x0 0x200 0x0 0x1c>;
|
||||
reg = <0x0 0x200 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_B";
|
||||
interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
|
||||
|
@ -1217,7 +1218,7 @@ frddr_b: audio-controller@200 {
|
|||
|
||||
frddr_c: audio-controller@240 {
|
||||
compatible = "amlogic,axg-frddr";
|
||||
reg = <0x0 0x240 0x0 0x1c>;
|
||||
reg = <0x0 0x240 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_C";
|
||||
interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
|
||||
|
|
|
@ -5,51 +5,42 @@
|
|||
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
#include <dt-bindings/clock/g12a-clkc.h>
|
||||
#include <dt-bindings/clock/g12a-aoclkc.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
#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";
|
||||
};
|
||||
chosen {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
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";
|
||||
};
|
||||
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";
|
||||
};
|
||||
|
||||
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";
|
||||
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 {
|
||||
|
@ -58,6 +49,7 @@ efuse: efuse {
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
read-only;
|
||||
secure-monitor = <&sm>;
|
||||
};
|
||||
|
||||
psci {
|
||||
|
@ -95,6 +87,94 @@ soc {
|
|||
#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 = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#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";
|
||||
};
|
||||
|
||||
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",
|
||||
|
@ -1356,6 +1436,26 @@ mux {
|
|||
};
|
||||
};
|
||||
|
||||
cpu_temp: temperature-sensor@34800 {
|
||||
compatible = "amlogic,g12a-cpu-thermal",
|
||||
"amlogic,g12a-thermal";
|
||||
reg = <0x0 0x34800 0x0 0x50>;
|
||||
interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
|
||||
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 = <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>;
|
||||
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>;
|
||||
|
@ -1457,290 +1557,6 @@ pwrc: power-controller {
|
|||
};
|
||||
};
|
||||
|
||||
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 0x1c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_A";
|
||||
interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>;
|
||||
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 0x1c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_B";
|
||||
interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>;
|
||||
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 0x1c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_C";
|
||||
interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
|
||||
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 0x1c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_A";
|
||||
interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>;
|
||||
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 0x1c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_B";
|
||||
interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
|
||||
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 0x1c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_C";
|
||||
interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>;
|
||||
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 = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
|
||||
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>;
|
||||
|
@ -2388,10 +2204,10 @@ mali: gpu@ffe40000 {
|
|||
compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
|
||||
reg = <0x0 0xffe40000 0x0 0x40000>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
|
||||
interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "gpu", "mmu", "job";
|
||||
<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "job", "mmu", "gpu";
|
||||
clocks = <&clkc CLKID_MALI>;
|
||||
resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
|
||||
|
||||
|
@ -2409,6 +2225,7 @@ mali: gpu@ffe40000 {
|
|||
assigned-clock-rates = <0>, /* Do Nothing */
|
||||
<800000000>,
|
||||
<0>; /* Do Nothing */
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
392
arch/arm64/boot/dts/amlogic/meson-g12.dtsi
Normal file
392
arch/arm64/boot/dts/amlogic/meson-g12.dtsi
Normal file
|
@ -0,0 +1,392 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 BayLibre, SAS
|
||||
* Author: Jerome Brunet <jbrunet@baylibre.com>
|
||||
*/
|
||||
|
||||
#include "meson-g12-common.dtsi"
|
||||
#include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
#include <dt-bindings/power/meson-g12a-power.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
|
||||
|
||||
/ {
|
||||
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 = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
|
||||
resets = <&arb AXG_ARB_TODDR_A>,
|
||||
<&clkc_audio AUD_RESET_TODDR_A>;
|
||||
reset-names = "arb", "rst";
|
||||
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 = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
|
||||
resets = <&arb AXG_ARB_TODDR_B>,
|
||||
<&clkc_audio AUD_RESET_TODDR_B>;
|
||||
reset-names = "arb", "rst";
|
||||
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 = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
|
||||
resets = <&arb AXG_ARB_TODDR_C>,
|
||||
<&clkc_audio AUD_RESET_TODDR_C>;
|
||||
reset-names = "arb", "rst";
|
||||
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 = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
|
||||
resets = <&arb AXG_ARB_FRDDR_A>,
|
||||
<&clkc_audio AUD_RESET_FRDDR_A>;
|
||||
reset-names = "arb", "rst";
|
||||
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 = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
|
||||
resets = <&arb AXG_ARB_FRDDR_B>,
|
||||
<&clkc_audio AUD_RESET_FRDDR_B>;
|
||||
reset-names = "arb", "rst";
|
||||
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 = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
|
||||
resets = <&arb AXG_ARB_FRDDR_C>,
|
||||
<&clkc_audio AUD_RESET_FRDDR_C>;
|
||||
reset-names = "arb", "rst";
|
||||
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 = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
|
||||
<&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
|
||||
clock-names = "pclk", "refclk";
|
||||
resets = <&clkc_audio AUD_RESET_SPDIFIN>;
|
||||
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";
|
||||
resets = <&clkc_audio AUD_RESET_SPDIFOUT>;
|
||||
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";
|
||||
resets = <&clkc_audio AUD_RESET_SPDIFOUT_B>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
tohdmitx: audio-controller@744 {
|
||||
compatible = "amlogic,g12a-tohdmitx";
|
||||
reg = <0x0 0x744 0x0 0x4>;
|
||||
#sound-dai-cells = <1>;
|
||||
sound-name-prefix = "TOHDMITX";
|
||||
resets = <&clkc_audio AUD_RESET_TOHDMITX>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&cpu_thermal {
|
||||
cooling-maps {
|
||||
map0 {
|
||||
trip = <&cpu_passive>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
map1 {
|
||||
trip = <&cpu_hot>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðmac {
|
||||
power-domains = <&pwrc PWRC_G12A_ETH_ID>;
|
||||
};
|
||||
|
||||
&vpu {
|
||||
power-domains = <&pwrc PWRC_G12A_VPU_ID>;
|
||||
};
|
||||
|
||||
&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>;
|
||||
};
|
||||
|
|
@ -438,6 +438,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -409,6 +409,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
* Copyright (c) 2018 Amlogic, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include "meson-g12-common.dtsi"
|
||||
#include <dt-bindings/power/meson-g12a-power.h>
|
||||
#include "meson-g12.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,g12a";
|
||||
|
@ -19,6 +18,7 @@ cpu0: cpu@0 {
|
|||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
|
@ -27,6 +27,7 @@ cpu1: cpu@1 {
|
|||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
|
@ -35,6 +36,7 @@ cpu2: cpu@2 {
|
|||
reg = <0x0 0x2>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
|
@ -43,6 +45,7 @@ cpu3: cpu@3 {
|
|||
reg = <0x0 0x3>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
l2: l2-cache0 {
|
||||
|
@ -111,14 +114,22 @@ opp-1800000000 {
|
|||
};
|
||||
};
|
||||
|
||||
ðmac {
|
||||
power-domains = <&pwrc PWRC_G12A_ETH_ID>;
|
||||
};
|
||||
&cpu_thermal {
|
||||
cooling-maps {
|
||||
map0 {
|
||||
trip = <&cpu_passive>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
|
||||
&vpu {
|
||||
power-domains = <&pwrc PWRC_G12A_VPU_ID>;
|
||||
};
|
||||
|
||||
&sd_emmc_a {
|
||||
amlogic,dram-access-quirk;
|
||||
map1 {
|
||||
trip = <&cpu_hot>;
|
||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -14,3 +14,28 @@
|
|||
/ {
|
||||
compatible = "khadas,vim3", "amlogic,a311d", "amlogic,g12b";
|
||||
};
|
||||
|
||||
/*
|
||||
* The VIM3 on-board MCU can mux the PCIe/USB3.0 shared differential
|
||||
* lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
|
||||
* an USB3.0 Type A connector and a M.2 Key M slot.
|
||||
* The PHY driving these differential lines is shared between
|
||||
* the USB3.0 controller and the PCIe Controller, thus only
|
||||
* a single controller can use it.
|
||||
* If the MCU is configured to mux the PCIe/USB3.0 differential lines
|
||||
* to the M.2 Key M slot, uncomment the following block to disable
|
||||
* USB3.0 from the USB Complex and enable the PCIe controller.
|
||||
* The End User is not expected to uncomment the following except for
|
||||
* testing purposes, but instead rely on the firmware/bootloader to
|
||||
* update these nodes accordingly if PCIe mode is selected by the MCU.
|
||||
*/
|
||||
/*
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb {
|
||||
phys = <&usb2_phy0>, <&usb2_phy1>;
|
||||
phy-names = "usb2-phy0", "usb2-phy1";
|
||||
};
|
||||
*/
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
|
||||
/ {
|
||||
compatible = "hardkernel,odroid-n2", "amlogic,g12b";
|
||||
compatible = "hardkernel,odroid-n2", "amlogic,s922x", "amlogic,g12b";
|
||||
model = "Hardkernel ODROID-N2";
|
||||
|
||||
aliases {
|
||||
|
|
|
@ -14,3 +14,28 @@
|
|||
/ {
|
||||
compatible = "khadas,vim3", "amlogic,s922x", "amlogic,g12b";
|
||||
};
|
||||
|
||||
/*
|
||||
* The VIM3 on-board MCU can mux the PCIe/USB3.0 shared differential
|
||||
* lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
|
||||
* an USB3.0 Type A connector and a M.2 Key M slot.
|
||||
* The PHY driving these differential lines is shared between
|
||||
* the USB3.0 controller and the PCIe Controller, thus only
|
||||
* a single controller can use it.
|
||||
* If the MCU is configured to mux the PCIe/USB3.0 differential lines
|
||||
* to the M.2 Key M slot, uncomment the following block to disable
|
||||
* USB3.0 from the USB Complex and enable the PCIe controller.
|
||||
* The End User is not expected to uncomment the following except for
|
||||
* testing purposes, but instead rely on the firmware/bootloader to
|
||||
* update these nodes accordingly if PCIe mode is selected by the MCU.
|
||||
*/
|
||||
/*
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb {
|
||||
phys = <&usb2_phy0>, <&usb2_phy1>;
|
||||
phy-names = "usb2-phy0", "usb2-phy1";
|
||||
};
|
||||
*/
|
||||
|
|
557
arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6.dts
Normal file
557
arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6.dts
Normal file
|
@ -0,0 +1,557 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 BayLibre, SAS
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
* Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "meson-g12b.dtsi"
|
||||
#include "meson-g12b-s922x.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
|
||||
/ {
|
||||
compatible = "ugoos,am6", "amlogic,g12b";
|
||||
model = "Ugoos AM6";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
ethernet0 = ðmac;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x40000000>;
|
||||
};
|
||||
|
||||
emmc_pwrseq: emmc-pwrseq {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
sdio_pwrseq: sdio-pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
|
||||
spdif_dit: audio-codec-1 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "linux,spdif-dit";
|
||||
status = "okay";
|
||||
sound-name-prefix = "DIT";
|
||||
};
|
||||
|
||||
flash_1v8: regulator-flash_1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "FLASH_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
vin-supply = <&vcc_3v3>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
main_12v: regulator-main_12v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "12V";
|
||||
regulator-min-microvolt = <12000000>;
|
||||
regulator-max-microvolt = <12000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_5v: regulator-vcc_5v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VCC_5V";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <&main_12v>;
|
||||
|
||||
gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
vcc_1v8: regulator-vcc_1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VCC_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
vin-supply = <&vcc_3v3>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_3v3: regulator-vcc_3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VCC_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
vin-supply = <&vddao_3v3>;
|
||||
regulator-always-on;
|
||||
/* FIXME: actually controlled by VDDCPU_B_EN */
|
||||
};
|
||||
|
||||
vddcpu_a: regulator-vddcpu-a {
|
||||
/*
|
||||
* MP1653 Regulator.
|
||||
*/
|
||||
compatible = "pwm-regulator";
|
||||
|
||||
regulator-name = "VDDCPU_A";
|
||||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_ab 0 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vddcpu_b: regulator-vddcpu-b {
|
||||
/*
|
||||
* MP1652 Regulator.
|
||||
*/
|
||||
compatible = "pwm-regulator";
|
||||
|
||||
regulator-name = "VDDCPU_B";
|
||||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
usb1_pow: regulator-usb1-pow {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "USB1_POW";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <&vcc_5v>;
|
||||
|
||||
/* connected to SY6280A Power Switch */
|
||||
gpio = <&gpio GPIOA_8 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
usb_pwr_en: regulator-usb-pwr-en {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "USB_PWR_EN";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <&vcc_5v>;
|
||||
|
||||
/* Connected to USB3 Type-A Port power enable */
|
||||
gpio = <&gpio GPIOAO_7 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
vddao_1v8: regulator-vddao-1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VDDAO_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
vin-supply = <&vddao_3v3>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vddao_3v3: regulator-vddao-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VDDAO_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
vin-supply = <&main_12v>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
cvbs-connector {
|
||||
compatible = "composite-video-connector";
|
||||
|
||||
port {
|
||||
cvbs_connector_in: endpoint {
|
||||
remote-endpoint = <&cvbs_vdac_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hdmi-connector {
|
||||
compatible = "hdmi-connector";
|
||||
type = "a";
|
||||
|
||||
port {
|
||||
hdmi_connector_in: endpoint {
|
||||
remote-endpoint = <&hdmi_tx_tmds_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,axg-sound-card";
|
||||
model = "G12B-UGOOS-AM6";
|
||||
audio-aux-devs = <&tdmout_b>;
|
||||
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
"TDM_B Playback", "TDMOUT_B OUT",
|
||||
"SPDIFOUT IN 0", "FRDDR_A OUT 3",
|
||||
"SPDIFOUT IN 1", "FRDDR_B OUT 3",
|
||||
"SPDIFOUT IN 2", "FRDDR_C OUT 3";
|
||||
|
||||
assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
<&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>;
|
||||
assigned-clock-parents = <0>, <0>, <0>;
|
||||
assigned-clock-rates = <294912000>,
|
||||
<270950400>,
|
||||
<393216000>;
|
||||
status = "okay";
|
||||
|
||||
dai-link-0 {
|
||||
sound-dai = <&frddr_a>;
|
||||
};
|
||||
|
||||
dai-link-1 {
|
||||
sound-dai = <&frddr_b>;
|
||||
};
|
||||
|
||||
dai-link-2 {
|
||||
sound-dai = <&frddr_c>;
|
||||
};
|
||||
|
||||
/* 8ch hdmi interface */
|
||||
dai-link-3 {
|
||||
sound-dai = <&tdmif_b>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
};
|
||||
};
|
||||
|
||||
/* spdif hdmi or toslink interface */
|
||||
dai-link-4 {
|
||||
sound-dai = <&spdifout>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&spdif_dit>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
|
||||
};
|
||||
};
|
||||
|
||||
/* spdif hdmi interface */
|
||||
dai-link-5 {
|
||||
sound-dai = <&spdifout_b>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
|
||||
};
|
||||
};
|
||||
|
||||
/* hdmi glue */
|
||||
dai-link-6 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&hdmi_tx>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wifi32k: wifi32k {
|
||||
compatible = "pwm-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
|
||||
};
|
||||
};
|
||||
|
||||
&arb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cec_AO {
|
||||
pinctrl-0 = <&cec_ao_a_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "disabled";
|
||||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&cecb_AO {
|
||||
pinctrl-0 = <&cec_ao_b_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <&vddcpu_b>;
|
||||
operating-points-v2 = <&cpu_opp_table_0>;
|
||||
clocks = <&clkc CLKID_CPU_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu1 {
|
||||
cpu-supply = <&vddcpu_b>;
|
||||
operating-points-v2 = <&cpu_opp_table_0>;
|
||||
clocks = <&clkc CLKID_CPU_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu100 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu101 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu102 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu103 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cvbs_vdac_port {
|
||||
cvbs_vdac_out: endpoint {
|
||||
remote-endpoint = <&cvbs_connector_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&ext_mdio {
|
||||
external_phy: ethernet-phy@0 {
|
||||
/* Realtek RTL8211F (0x001cc916) */
|
||||
reg = <0>;
|
||||
max-speed = <1000>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <30000>;
|
||||
reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_14 */
|
||||
interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
ðmac {
|
||||
pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&external_phy>;
|
||||
amlogic,tx-delay-ns = <2>;
|
||||
};
|
||||
|
||||
&frddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_c {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_tx {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
|
||||
pinctrl-names = "default";
|
||||
hdmi-supply = <&vcc_5v>;
|
||||
};
|
||||
|
||||
&hdmi_tx_tmds_port {
|
||||
hdmi_tx_tmds_out: endpoint {
|
||||
remote-endpoint = <&hdmi_connector_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&ir {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&remote_input_ao_pins>;
|
||||
pinctrl-names = "default";
|
||||
linux,rc-map-name = "rc-khadas";
|
||||
};
|
||||
|
||||
&pwm_ab {
|
||||
pinctrl-0 = <&pwm_a_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "clkin0";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm_AO_cd {
|
||||
pinctrl-0 = <&pwm_ao_d_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "clkin1";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm_ef {
|
||||
pinctrl-0 = <&pwm_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "clkin0";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* SDIO */
|
||||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
sd-uhs-sdr50;
|
||||
max-frequency = <100000000>;
|
||||
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
vqmmc-supply = <&vddao_1v8>;
|
||||
|
||||
brcmf: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
};
|
||||
};
|
||||
|
||||
/* SD card */
|
||||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_c_pins>;
|
||||
pinctrl-1 = <&sdcard_clk_gate_c_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <50000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
vqmmc-supply = <&vddao_3v3>;
|
||||
};
|
||||
|
||||
/* eMMC */
|
||||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
disable-wp;
|
||||
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
vmmc-supply = <&vcc_3v3>;
|
||||
vqmmc-supply = <&flash_1v8>;
|
||||
};
|
||||
|
||||
&spdifout {
|
||||
pinctrl-0 = <&spdif_out_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spdifout_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmif_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmout_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tohdmitx {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart_A {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
pinctrl-names = "default";
|
||||
uart-has-rtscts;
|
||||
|
||||
bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
||||
max-speed = <2000000>;
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "lpo";
|
||||
};
|
||||
};
|
||||
|
||||
&uart_AO {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_ao_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
vbus-regulator = <&usb_pwr_en>;
|
||||
};
|
||||
|
||||
&usb2_phy0 {
|
||||
phy-supply = <&usb1_pow>;
|
||||
};
|
||||
|
||||
&usb2_phy1 {
|
||||
phy-supply = <&usb1_pow>;
|
||||
};
|
|
@ -4,8 +4,7 @@
|
|||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
*/
|
||||
|
||||
#include "meson-g12-common.dtsi"
|
||||
#include <dt-bindings/power/meson-g12a-power.h>
|
||||
#include "meson-g12.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,g12b";
|
||||
|
@ -49,7 +48,9 @@ cpu0: cpu@0 {
|
|||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <592>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
|
@ -57,7 +58,9 @@ cpu1: cpu@1 {
|
|||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <592>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu100: cpu@100 {
|
||||
|
@ -65,7 +68,9 @@ cpu100: cpu@100 {
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x100>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu101: cpu@101 {
|
||||
|
@ -73,7 +78,9 @@ cpu101: cpu@101 {
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x101>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu102: cpu@102 {
|
||||
|
@ -81,7 +88,9 @@ cpu102: cpu@102 {
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x102>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu103: cpu@103 {
|
||||
|
@ -89,7 +98,9 @@ cpu103: cpu@103 {
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x103>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
l2: l2-cache0 {
|
||||
|
@ -102,14 +113,3 @@ &clkc {
|
|||
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;
|
||||
};
|
||||
|
|
|
@ -169,6 +169,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -161,6 +161,7 @@ efuse: efuse {
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
read-only;
|
||||
secure-monitor = <&sm>;
|
||||
|
||||
sn: sn@14 {
|
||||
reg = <0x14 0x10>;
|
||||
|
@ -240,7 +241,7 @@ uart_B: serial@84dc {
|
|||
};
|
||||
|
||||
i2c_A: i2c@8500 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x08500 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
@ -290,7 +291,7 @@ clock-measure@8758 {
|
|||
};
|
||||
|
||||
i2c_B: i2c@87c0 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x087c0 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
@ -299,7 +300,7 @@ i2c_B: i2c@87c0 {
|
|||
};
|
||||
|
||||
i2c_C: i2c@87e0 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x087e0 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
@ -391,6 +392,7 @@ cec_AO: cec@100 {
|
|||
compatible = "amlogic,meson-gx-ao-cec";
|
||||
reg = <0x0 0x00100 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sec_AO: ao-secure@140 {
|
||||
|
@ -414,7 +416,7 @@ uart_AO_B: serial@4e0 {
|
|||
};
|
||||
|
||||
i2c_AO: i2c@500 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x500 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -280,6 +280,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddio_ao3v3>;
|
||||
|
|
|
@ -220,6 +220,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -36,8 +36,15 @@ usb_otg_pwr: regulator-usb-pwrs {
|
|||
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 {
|
||||
|
@ -50,18 +57,38 @@ blue {
|
|||
};
|
||||
};
|
||||
|
||||
p5v0: regulator-p5v0 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "P5V0";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
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 {
|
||||
/*
|
||||
* 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 {
|
||||
|
@ -79,6 +106,8 @@ tf_io: gpio-regulator-tf_io {
|
|||
|
||||
states = <3300000 0>,
|
||||
<1800000 1>;
|
||||
/* U12/U13 RT9179GB */
|
||||
vin-supply = <&vddio_ao3v3>;
|
||||
};
|
||||
|
||||
vcc1v8: regulator-vcc1v8 {
|
||||
|
@ -86,6 +115,9 @@ vcc1v8: regulator-vcc1v8 {
|
|||
regulator-name = "VCC1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
/* U18 RT9179GB */
|
||||
vin-supply = <&vddio_ao3v3>;
|
||||
};
|
||||
|
||||
vcc3v3: regulator-vcc3v3 {
|
||||
|
@ -95,6 +127,36 @@ vcc3v3: regulator-vcc3v3 {
|
|||
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>;
|
||||
|
@ -167,6 +229,7 @@ &hdmi_tx {
|
|||
status = "okay";
|
||||
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
|
||||
pinctrl-names = "default";
|
||||
hdmi-supply = <&hdmi_p5v0>;
|
||||
};
|
||||
|
||||
&hdmi_tx_tmds_port {
|
||||
|
@ -296,7 +359,7 @@ &uart_AO {
|
|||
};
|
||||
|
||||
&usb0_phy {
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
phy-supply = <&usb_otg_pwr>;
|
||||
};
|
||||
|
||||
|
@ -306,7 +369,7 @@ &usb1_phy {
|
|||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
|
|
|
@ -170,6 +170,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -152,6 +152,7 @@ &ir {
|
|||
status = "okay";
|
||||
pinctrl-0 = <&remote_input_ao_pins>;
|
||||
pinctrl-names = "default";
|
||||
linux,rc-map-name = "rc-vega-s9x";
|
||||
};
|
||||
|
||||
&pwm_ef {
|
||||
|
@ -183,6 +184,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -200,6 +200,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
/ {
|
||||
compatible = "libretech,aml-s805x-ac", "amlogic,s805x",
|
||||
"amlogic,meson-gxl";
|
||||
model = "Libre Computer Board AML-S805X-AC";
|
||||
model = "Libre Computer AML-S805X-AC";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
|
|
|
@ -165,6 +165,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -33,11 +33,9 @@ aliases {
|
|||
|
||||
gpio-keys-polled {
|
||||
compatible = "gpio-keys-polled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
poll-interval = <100>;
|
||||
|
||||
button@0 {
|
||||
power-button {
|
||||
label = "power";
|
||||
linux,code = <KEY_POWER>;
|
||||
gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
|
||||
|
@ -192,6 +190,9 @@ &uart_A {
|
|||
bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
||||
max-speed = <2000000>;
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "lpo";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -12,8 +12,9 @@
|
|||
#include "meson-gxl-s905x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl";
|
||||
model = "Libre Computer Board AML-S905X-CC";
|
||||
compatible = "libretech,aml-s905x-cc", "amlogic,s905x",
|
||||
"amlogic,meson-gxl";
|
||||
model = "Libre Computer AML-S905X-CC";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
|
|
|
@ -165,6 +165,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -119,6 +119,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -36,6 +36,16 @@ dwc3: dwc3@c9000000 {
|
|||
phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>;
|
||||
};
|
||||
};
|
||||
|
||||
crypto: crypto@c883e000 {
|
||||
compatible = "amlogic,gxl-crypto";
|
||||
reg = <0x0 0xc883e000 0x0 0x36>;
|
||||
interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>,
|
||||
<GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc CLKID_BLKMV>;
|
||||
clock-names = "blkmv";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -332,6 +332,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
@ -409,6 +412,9 @@ &uart_A {
|
|||
bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
||||
max-speed = <2000000>;
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "lpo";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -148,6 +148,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -35,3 +35,7 @@ external_phy: ethernet-phy@0 {
|
|||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&ir {
|
||||
linux,rc-map-name = "rc-vega-s9x";
|
||||
};
|
||||
|
|
|
@ -96,10 +96,10 @@ mali: gpu@c0000 {
|
|||
compatible = "amlogic,meson-gxm-mali", "arm,mali-t820";
|
||||
reg = <0x0 0xc0000 0x0 0x40000>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
|
||||
interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "gpu", "mmu", "job";
|
||||
<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "job", "mmu", "gpu";
|
||||
clocks = <&clkc CLKID_MALI>;
|
||||
resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>;
|
||||
|
||||
|
|
|
@ -246,6 +246,10 @@ &ir {
|
|||
linux,rc-map-name = "rc-khadas";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&pwm_ef {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_e_pins>;
|
||||
|
@ -274,6 +278,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vsys_3v3>;
|
||||
|
|
|
@ -68,3 +68,28 @@ &pwm_AO_cd {
|
|||
clock-names = "clkin1";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* The VIM3 on-board MCU can mux the PCIe/USB3.0 shared differential
|
||||
* lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
|
||||
* an USB3.0 Type A connector and a M.2 Key M slot.
|
||||
* The PHY driving these differential lines is shared between
|
||||
* the USB3.0 controller and the PCIe Controller, thus only
|
||||
* a single controller can use it.
|
||||
* If the MCU is configured to mux the PCIe/USB3.0 differential lines
|
||||
* to the M.2 Key M slot, uncomment the following block to disable
|
||||
* USB3.0 from the USB Complex and enable the PCIe controller.
|
||||
* The End User is not expected to uncomment the following except for
|
||||
* testing purposes, but instead rely on the firmware/bootloader to
|
||||
* update these nodes accordingly if PCIe mode is selected by the MCU.
|
||||
*/
|
||||
/*
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb {
|
||||
phys = <&usb2_phy0>, <&usb2_phy1>;
|
||||
phy-names = "usb2-phy0", "usb2-phy1";
|
||||
};
|
||||
*/
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
|
||||
/ {
|
||||
compatible = "seirobotics,sei610", "amlogic,sm1";
|
||||
|
@ -19,6 +20,22 @@ aliases {
|
|||
ethernet0 = ðmac;
|
||||
};
|
||||
|
||||
mono_dac: audio-codec-0 {
|
||||
compatible = "maxim,max98357a";
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "U16";
|
||||
sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
dmics: audio-codec-1 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "dmic-codec";
|
||||
num-channels = <2>;
|
||||
wakeup-delay-ms = <50>;
|
||||
status = "okay";
|
||||
sound-name-prefix = "MIC";
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
@ -179,6 +196,120 @@ sdio_pwrseq: sdio-pwrseq {
|
|||
clock-names = "ext_clock";
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,axg-sound-card";
|
||||
model = "SM1-SEI610";
|
||||
audio-aux-devs = <&tdmout_a>, <&tdmout_b>,
|
||||
<&tdmin_a>, <&tdmin_b>;
|
||||
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
|
||||
"TDMOUT_A IN 1", "FRDDR_B OUT 0",
|
||||
"TDMOUT_A IN 2", "FRDDR_C OUT 0",
|
||||
"TDM_A Playback", "TDMOUT_A OUT",
|
||||
"TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
"TDM_B Playback", "TDMOUT_B OUT",
|
||||
"TODDR_A IN 4", "PDM Capture",
|
||||
"TODDR_B IN 4", "PDM Capture",
|
||||
"TODDR_C IN 4", "PDM Capture",
|
||||
"TDMIN_A IN 0", "TDM_A Capture",
|
||||
"TDMIN_A IN 3", "TDM_A Loopback",
|
||||
"TDMIN_B IN 0", "TDM_A Capture",
|
||||
"TDMIN_B IN 3", "TDM_A Loopback",
|
||||
"TDMIN_A IN 1", "TDM_B Capture",
|
||||
"TDMIN_A IN 4", "TDM_B Loopback",
|
||||
"TDMIN_B IN 1", "TDM_B Capture",
|
||||
"TDMIN_B IN 4", "TDM_B Loopback",
|
||||
"TODDR_A IN 0", "TDMIN_A OUT",
|
||||
"TODDR_B IN 0", "TDMIN_A OUT",
|
||||
"TODDR_C IN 0", "TDMIN_A OUT",
|
||||
"TODDR_A IN 1", "TDMIN_B OUT",
|
||||
"TODDR_B IN 1", "TDMIN_B OUT",
|
||||
"TODDR_C IN 1", "TDMIN_B OUT";
|
||||
|
||||
assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
<&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>;
|
||||
assigned-clock-parents = <0>, <0>, <0>;
|
||||
assigned-clock-rates = <294912000>,
|
||||
<270950400>,
|
||||
<393216000>;
|
||||
status = "okay";
|
||||
|
||||
dai-link-0 {
|
||||
sound-dai = <&frddr_a>;
|
||||
};
|
||||
|
||||
dai-link-1 {
|
||||
sound-dai = <&frddr_b>;
|
||||
};
|
||||
|
||||
dai-link-2 {
|
||||
sound-dai = <&frddr_c>;
|
||||
};
|
||||
|
||||
dai-link-3 {
|
||||
sound-dai = <&toddr_a>;
|
||||
};
|
||||
|
||||
dai-link-4 {
|
||||
sound-dai = <&toddr_b>;
|
||||
};
|
||||
|
||||
dai-link-5 {
|
||||
sound-dai = <&toddr_c>;
|
||||
};
|
||||
|
||||
/* internal speaker interface */
|
||||
dai-link-6 {
|
||||
sound-dai = <&tdmif_a>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&mono_dac>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
|
||||
};
|
||||
};
|
||||
|
||||
/* 8ch hdmi interface */
|
||||
dai-link-7 {
|
||||
sound-dai = <&tdmif_b>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
};
|
||||
};
|
||||
|
||||
/* internal digital mics */
|
||||
dai-link-8 {
|
||||
sound-dai = <&pdm>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&dmics>;
|
||||
};
|
||||
};
|
||||
|
||||
/* hdmi glue */
|
||||
dai-link-9 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&hdmi_tx>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wifi32k: wifi32k {
|
||||
compatible = "pwm-clock";
|
||||
#clock-cells = <0>;
|
||||
|
@ -187,6 +318,10 @@ wifi32k: wifi32k {
|
|||
};
|
||||
};
|
||||
|
||||
&arb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cec_AO {
|
||||
pinctrl-0 = <&cec_ao_a_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
@ -201,6 +336,10 @@ &cecb_AO {
|
|||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <&vddcpu>;
|
||||
operating-points-v2 = <&cpu_opp_table>;
|
||||
|
@ -235,6 +374,18 @@ ðmac {
|
|||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&frddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_c {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_tx {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
|
||||
|
@ -259,6 +410,12 @@ &ir {
|
|||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pdm {
|
||||
pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_dclk_z_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm_AO_ab {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_ao_a_pins>;
|
||||
|
@ -305,6 +462,9 @@ &sd_emmc_a {
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
@ -353,6 +513,54 @@ &sd_emmc_c {
|
|||
vqmmc-supply = <&emmc_1v8>;
|
||||
};
|
||||
|
||||
&tdmif_a {
|
||||
pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>,
|
||||
<&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>;
|
||||
assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
|
||||
<&clkc_audio AUD_CLKID_MST_A_LRCLK>;
|
||||
assigned-clock-rates = <0>, <0>;
|
||||
};
|
||||
|
||||
&tdmif_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmin_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmin_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmout_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmout_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&toddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&toddr_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&toddr_c {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tohdmitx {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart_A {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
|
|
|
@ -5,11 +5,47 @@
|
|||
*/
|
||||
|
||||
#include "meson-g12-common.dtsi"
|
||||
#include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
#include <dt-bindings/power/meson-sm1-power.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,sm1";
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x0>;
|
||||
|
@ -117,6 +153,297 @@ opp-1908000000 {
|
|||
};
|
||||
};
|
||||
|
||||
&apb {
|
||||
audio: bus@60000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0x60000 0x0 0x1000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0x60000 0x0 0x1000>;
|
||||
|
||||
clkc_audio: clock-controller@0 {
|
||||
status = "disabled";
|
||||
compatible = "amlogic,sm1-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_FCLK_DIV5>;
|
||||
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,sm1-toddr",
|
||||
"amlogic,axg-toddr";
|
||||
reg = <0x0 0x100 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_A";
|
||||
interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
|
||||
resets = <&arb AXG_ARB_TODDR_A>,
|
||||
<&clkc_audio AUD_RESET_TODDR_A>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
toddr_b: audio-controller@140 {
|
||||
compatible = "amlogic,sm1-toddr",
|
||||
"amlogic,axg-toddr";
|
||||
reg = <0x0 0x140 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_B";
|
||||
interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
|
||||
resets = <&arb AXG_ARB_TODDR_B>,
|
||||
<&clkc_audio AUD_RESET_TODDR_B>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
toddr_c: audio-controller@180 {
|
||||
compatible = "amlogic,sm1-toddr",
|
||||
"amlogic,axg-toddr";
|
||||
reg = <0x0 0x180 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_C";
|
||||
interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
|
||||
resets = <&arb AXG_ARB_TODDR_C>,
|
||||
<&clkc_audio AUD_RESET_TODDR_C>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
frddr_a: audio-controller@1c0 {
|
||||
compatible = "amlogic,sm1-frddr",
|
||||
"amlogic,axg-frddr";
|
||||
reg = <0x0 0x1c0 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_A";
|
||||
interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
|
||||
resets = <&arb AXG_ARB_FRDDR_A>,
|
||||
<&clkc_audio AUD_RESET_FRDDR_A>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
frddr_b: audio-controller@200 {
|
||||
compatible = "amlogic,sm1-frddr",
|
||||
"amlogic,axg-frddr";
|
||||
reg = <0x0 0x200 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_B";
|
||||
interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
|
||||
resets = <&arb AXG_ARB_FRDDR_B>,
|
||||
<&clkc_audio AUD_RESET_FRDDR_B>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
frddr_c: audio-controller@240 {
|
||||
compatible = "amlogic,sm1-frddr",
|
||||
"amlogic,axg-frddr";
|
||||
reg = <0x0 0x240 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_C";
|
||||
interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
|
||||
resets = <&arb AXG_ARB_FRDDR_C>,
|
||||
<&clkc_audio AUD_RESET_FRDDR_C>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
arb: reset-controller@280 {
|
||||
status = "disabled";
|
||||
compatible = "amlogic,meson-sm1-audio-arb";
|
||||
reg = <0x0 0x280 0x0 0x4>;
|
||||
#reset-cells = <1>;
|
||||
clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
|
||||
};
|
||||
|
||||
tdmin_a: audio-controller@300 {
|
||||
compatible = "amlogic,sm1-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,sm1-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,sm1-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,sm1-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";
|
||||
};
|
||||
|
||||
tdmout_a: audio-controller@500 {
|
||||
compatible = "amlogic,sm1-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,sm1-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,sm1-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";
|
||||
};
|
||||
|
||||
tohdmitx: audio-controller@744 {
|
||||
compatible = "amlogic,sm1-tohdmitx",
|
||||
"amlogic,g12a-tohdmitx";
|
||||
reg = <0x0 0x744 0x0 0x4>;
|
||||
#sound-dai-cells = <1>;
|
||||
sound-name-prefix = "TOHDMITX";
|
||||
resets = <&clkc_audio AUD_RESET_TOHDMITX>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
toddr_d: audio-controller@840 {
|
||||
compatible = "amlogic,sm1-toddr",
|
||||
"amlogic,axg-toddr";
|
||||
reg = <0x0 0x840 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "TODDR_D";
|
||||
interrupts = <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TODDR_D>;
|
||||
resets = <&arb AXG_ARB_TODDR_D>,
|
||||
<&clkc_audio AUD_RESET_TODDR_D>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
frddr_d: audio-controller@880 {
|
||||
compatible = "amlogic,sm1-frddr",
|
||||
"amlogic,axg-frddr";
|
||||
reg = <0x0 0x880 0x0 0x2c>;
|
||||
#sound-dai-cells = <0>;
|
||||
sound-name-prefix = "FRDDR_D";
|
||||
interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_D>;
|
||||
resets = <&arb AXG_ARB_FRDDR_D>,
|
||||
<&clkc_audio AUD_RESET_FRDDR_D>;
|
||||
reset-names = "arb", "rst";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
pdm: audio-controller@61000 {
|
||||
compatible = "amlogic,sm1-pdm",
|
||||
"amlogic,axg-pdm";
|
||||
reg = <0x0 0x61000 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";
|
||||
};
|
||||
};
|
||||
|
||||
&cecb_AO {
|
||||
compatible = "amlogic,meson-sm1-ao-cec";
|
||||
};
|
||||
|
@ -134,10 +461,27 @@ ðmac {
|
|||
power-domains = <&pwrc PWRC_SM1_ETH_ID>;
|
||||
};
|
||||
|
||||
&gpio_intc {
|
||||
compatible = "amlogic,meson-sm1-gpio-intc",
|
||||
"amlogic,meson-gpio-intc";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
power-domains = <&pwrc PWRC_SM1_PCIE_ID>;
|
||||
};
|
||||
|
||||
&pwrc {
|
||||
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>;
|
||||
};
|
||||
|
|
|
@ -80,5 +80,15 @@
|
|||
#define AUD_CLKID_TDM_SCLK_PAD0 160
|
||||
#define AUD_CLKID_TDM_SCLK_PAD1 161
|
||||
#define AUD_CLKID_TDM_SCLK_PAD2 162
|
||||
#define AUD_CLKID_TOP 163
|
||||
#define AUD_CLKID_TORAM 164
|
||||
#define AUD_CLKID_EQDRC 165
|
||||
#define AUD_CLKID_RESAMPLE_B 166
|
||||
#define AUD_CLKID_TOVAD 167
|
||||
#define AUD_CLKID_LOCKER 168
|
||||
#define AUD_CLKID_SPDIFIN_LB 169
|
||||
#define AUD_CLKID_FRDDR_D 170
|
||||
#define AUD_CLKID_TODDR_D 171
|
||||
#define AUD_CLKID_LOOPBACK_B 172
|
||||
|
||||
#endif /* __AXG_AUDIO_CLKC_BINDINGS_H */
|
||||
|
|
|
@ -13,5 +13,7 @@
|
|||
#define AXG_ARB_FRDDR_A 3
|
||||
#define AXG_ARB_FRDDR_B 4
|
||||
#define AXG_ARB_FRDDR_C 5
|
||||
#define AXG_ARB_TODDR_D 6
|
||||
#define AXG_ARB_FRDDR_D 7
|
||||
|
||||
#endif /* _DT_BINDINGS_AMLOGIC_MESON_AXG_AUDIO_ARB_H */
|
||||
|
|
|
@ -35,4 +35,19 @@
|
|||
#define AUD_RESET_TOHDMITX 24
|
||||
#define AUD_RESET_CLKTREE 25
|
||||
|
||||
/* SM1 added resets */
|
||||
#define AUD_RESET_RESAMPLE_B 26
|
||||
#define AUD_RESET_TOVAD 27
|
||||
#define AUD_RESET_LOCKER 28
|
||||
#define AUD_RESET_SPDIFIN_LB 29
|
||||
#define AUD_RESET_FRATV 30
|
||||
#define AUD_RESET_FRHDMIRX 31
|
||||
#define AUD_RESET_FRDDR_D 32
|
||||
#define AUD_RESET_TODDR_D 33
|
||||
#define AUD_RESET_LOOPBACK_B 34
|
||||
#define AUD_RESET_EARCTX 35
|
||||
#define AUD_RESET_EARCRX 36
|
||||
#define AUD_RESET_FRDDR_E 37
|
||||
#define AUD_RESET_TODDR_E 38
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user