Commit 79e3faa7 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'amlogic-dt64-1' of...

Merge tag 'amlogic-dt64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt

arm64: dts: amlogic updates for v5.12
- new board: Hardkernel ODROID-HC4 (SoC: SM1)
- new board: Beelink GS-King-X (SoC: S922X)
- shorten shorten audio card names for alsa compatibility
- misc cleanups & fixes

* tag 'amlogic-dt64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  arm64: dts: meson: add initial device-tree for ODROID-HC4
  dt-bindings: arm: amlogic: add ODROID-HC4 bindings
  arm64: dts: meson: convert meson-sm1-odroid-c4 to dtsi
  arm64: dts: meson: sort Amlogic dtb Makefile
  dt-bindings: arm: amlogic: sort SM1 bindings
  arm64: dts: meson: fix broken wifi node for Khadas VIM3L
  arm64: dts: meson: add i2c3/rtc nodes and rtc aliases to ODROID-N2 dtsi
  ARM: dts: meson: add the AO ARC remote processor
  dt-bindings: Amlogic: add the documentation for the SECBUS2 registers
  dt-bindings: sram: Add compatible strings for the Meson AO ARC SRAM
  arm64: dts: meson: shorten audio card names for alsa compatibility
  arm64: dts: meson: add initial Beelink GS-King-X device-tree
  dt-bindings: arm: amlogic: add support for the Beelink GS-King-X
  arm64: dts: meson: Fix schema warnings for pwm-leds
  arm64: dts: meson: vim3: whitespace fixups
  arm64: dts: meson: switch TFLASH_VDD_EN pin to open drain on Odroid-C4
  Revert "arm64: dts: amlogic: add missing ethernet reset ID"
  arm64: dts: amlogic: meson-g12: Set FL-adj property value

Link: https://lore.kernel.org/soc/7heehq7ag3.fsf@baylibre.com/Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 02bb4cb4 33b14f66
...@@ -151,6 +151,7 @@ properties: ...@@ -151,6 +151,7 @@ properties:
- description: Boards with the Amlogic Meson G12B S922X SoC - description: Boards with the Amlogic Meson G12B S922X SoC
items: items:
- enum: - enum:
- azw,gsking-x
- azw,gtking - azw,gtking
- azw,gtking-pro - azw,gtking-pro
- hardkernel,odroid-n2 - hardkernel,odroid-n2
...@@ -163,9 +164,10 @@ properties: ...@@ -163,9 +164,10 @@ properties:
- description: Boards with the Amlogic Meson SM1 S905X3/D3/Y3 SoC - description: Boards with the Amlogic Meson SM1 S905X3/D3/Y3 SoC
items: items:
- enum: - enum:
- seirobotics,sei610
- khadas,vim3l
- hardkernel,odroid-c4 - hardkernel,odroid-c4
- hardkernel,odroid-hc4
- khadas,vim3l
- seirobotics,sei610
- const: amlogic,sm1 - const: amlogic,sm1
- description: Boards with the Amlogic Meson A1 A113L SoC - description: Boards with the Amlogic Meson A1 A113L SoC
......
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/arm/amlogic/amlogic,meson-mx-secbus2.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Amlogic Meson8/Meson8b/Meson8m2 SECBUS2 register interface
maintainers:
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
description: |
The Meson8/Meson8b/Meson8m2 SoCs have a register bank called SECBUS2 which
contains registers for various IP blocks such as pin-controller bits for
the BSD_EN and TEST_N GPIOs as well as some AO ARC core control bits.
The registers can be accessed directly when not running in "secure mode".
When "secure mode" is enabled then these registers have to be accessed
through secure monitor calls.
properties:
compatible:
items:
- enum:
- amlogic,meson8-secbus2
- amlogic,meson8b-secbus2
- const: syscon
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
secbus2: system-controller@4000 {
compatible = "amlogic,meson8-secbus2", "syscon";
reg = <0x4000 0x2000>;
};
...@@ -72,6 +72,8 @@ patternProperties: ...@@ -72,6 +72,8 @@ patternProperties:
- allwinner,sun4i-a10-sram-d - allwinner,sun4i-a10-sram-d
- allwinner,sun9i-a80-smp-sram - allwinner,sun9i-a80-smp-sram
- allwinner,sun50i-a64-sram-c - allwinner,sun50i-a64-sram-c
- amlogic,meson8-ao-arc-sram
- amlogic,meson8b-ao-arc-sram
- amlogic,meson8-smp-sram - amlogic,meson8-smp-sram
- amlogic,meson8b-smp-sram - amlogic,meson8b-smp-sram
- amlogic,meson-gxbb-scp-shmem - amlogic,meson-gxbb-scp-shmem
......
...@@ -200,6 +200,13 @@ aobus: aobus@c8100000 { ...@@ -200,6 +200,13 @@ aobus: aobus@c8100000 {
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0xc8100000 0x100000>; ranges = <0x0 0xc8100000 0x100000>;
ao_arc_rproc: remoteproc@1c {
compatible= "amlogic,meson-mx-ao-arc";
reg = <0x1c 0x8>, <0x38 0x8>;
reg-names = "remap", "cpu";
status = "disabled";
};
ir_receiver: ir-receiver@480 { ir_receiver: ir-receiver@480 {
compatible= "amlogic,meson6-ir"; compatible= "amlogic,meson6-ir";
reg = <0x480 0x20>; reg = <0x480 0x20>;
......
...@@ -369,6 +369,14 @@ mux { ...@@ -369,6 +369,14 @@ mux {
}; };
}; };
&ao_arc_rproc {
compatible= "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc";
amlogic,secbus2 = <&secbus2>;
sram = <&ao_arc_sram>;
resets = <&reset RESET_MEDIA_CPU>;
clocks = <&clkc CLKID_AO_MEDIA_CPU>;
};
&cbus { &cbus {
reset: reset-controller@4404 { reset: reset-controller@4404 {
compatible = "amlogic,meson8b-reset"; compatible = "amlogic,meson8b-reset";
...@@ -496,6 +504,12 @@ mux { ...@@ -496,6 +504,12 @@ mux {
}; };
&ahb_sram { &ahb_sram {
ao_arc_sram: ao-arc-sram@0 {
compatible = "amlogic,meson8-ao-arc-sram";
reg = <0x0 0x8000>;
pool;
};
smp-sram@1ff80 { smp-sram@1ff80 {
compatible = "amlogic,meson8-smp-sram"; compatible = "amlogic,meson8-smp-sram";
reg = <0x1ff80 0x8>; reg = <0x1ff80 0x8>;
...@@ -631,6 +645,13 @@ &sdhc { ...@@ -631,6 +645,13 @@ &sdhc {
clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk"; clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
}; };
&secbus {
secbus2: system-controller@4000 {
compatible = "amlogic,meson8-secbus2", "syscon";
reg = <0x4000 0x2000>;
};
};
&sdio { &sdio {
compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio"; compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>; clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
......
...@@ -320,6 +320,14 @@ mux { ...@@ -320,6 +320,14 @@ mux {
}; };
}; };
&ao_arc_rproc {
compatible= "amlogic,meson8b-ao-arc", "amlogic,meson-mx-ao-arc";
amlogic,secbus2 = <&secbus2>;
sram = <&ao_arc_sram>;
resets = <&reset RESET_MEDIA_CPU>;
clocks = <&clkc CLKID_AO_MEDIA_CPU>;
};
&cbus { &cbus {
reset: reset-controller@4404 { reset: reset-controller@4404 {
compatible = "amlogic,meson8b-reset"; compatible = "amlogic,meson8b-reset";
...@@ -464,6 +472,12 @@ mux { ...@@ -464,6 +472,12 @@ mux {
}; };
&ahb_sram { &ahb_sram {
ao_arc_sram: ao-arc-sram@0 {
compatible = "amlogic,meson8b-ao-arc-sram";
reg = <0x0 0x8000>;
pool;
};
smp-sram@1ff80 { smp-sram@1ff80 {
compatible = "amlogic,meson8b-smp-sram"; compatible = "amlogic,meson8b-smp-sram";
reg = <0x1ff80 0x8>; reg = <0x1ff80 0x8>;
...@@ -628,6 +642,13 @@ &sdhc { ...@@ -628,6 +642,13 @@ &sdhc {
clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk"; clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
}; };
&secbus {
secbus2: system-controller@4000 {
compatible = "amlogic,meson8b-secbus2", "syscon";
reg = <0x4000 0x2000>;
};
};
&sdio { &sdio {
compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio"; compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio";
clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>; clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
......
...@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb ...@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
...@@ -44,7 +45,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb ...@@ -44,7 +45,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
...@@ -280,8 +280,6 @@ ethmac: ethernet@ff3f0000 { ...@@ -280,8 +280,6 @@ ethmac: ethernet@ff3f0000 {
"timing-adjustment"; "timing-adjustment";
rx-fifo-depth = <4096>; rx-fifo-depth = <4096>;
tx-fifo-depth = <2048>; tx-fifo-depth = <2048>;
resets = <&reset RESET_ETHERNET>;
reset-names = "stmmaceth";
power-domains = <&pwrc PWRC_AXG_ETHERNET_MEM_ID>; power-domains = <&pwrc PWRC_AXG_ETHERNET_MEM_ID>;
status = "disabled"; status = "disabled";
}; };
......
...@@ -224,8 +224,6 @@ ethmac: ethernet@ff3f0000 { ...@@ -224,8 +224,6 @@ ethmac: ethernet@ff3f0000 {
"timing-adjustment"; "timing-adjustment";
rx-fifo-depth = <4096>; rx-fifo-depth = <4096>;
tx-fifo-depth = <2048>; tx-fifo-depth = <2048>;
resets = <&reset RESET_ETHERNET>;
reset-names = "stmmaceth";
status = "disabled"; status = "disabled";
mdio0: mdio { mdio0: mdio {
...@@ -2390,7 +2388,7 @@ dwc3: usb@ff500000 { ...@@ -2390,7 +2388,7 @@ dwc3: usb@ff500000 {
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host"; dr_mode = "host";
snps,dis_u2_susphy_quirk; snps,dis_u2_susphy_quirk;
snps,quirk-frame-length-adjustment; snps,quirk-frame-length-adjustment = <0x20>;
snps,parkmode-disable-ss-quirk; snps,parkmode-disable-ss-quirk;
}; };
}; };
......
...@@ -181,7 +181,7 @@ wifi32k: wifi32k { ...@@ -181,7 +181,7 @@ wifi32k: wifi32k {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "G12A-SEI510"; model = "SEI510";
audio-aux-devs = <&tdmout_a>, <&tdmout_b>, audio-aux-devs = <&tdmout_a>, <&tdmout_b>,
<&tdmin_a>, <&tdmin_b>; <&tdmin_a>, <&tdmin_b>;
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
......
...@@ -150,7 +150,7 @@ vddcpu: regulator-vddcpu { ...@@ -150,7 +150,7 @@ vddcpu: regulator-vddcpu {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "G12A-X96-MAX"; model = "X96-MAX";
audio-aux-devs = <&tdmout_b>; audio-aux-devs = <&tdmout_b>;
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
"TDMOUT_B IN 1", "FRDDR_B OUT 1", "TDMOUT_B IN 1", "FRDDR_B OUT 1",
......
// 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-w400.dtsi"
#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
/ {
compatible = "azw,gsking-x", "amlogic,g12b";
model = "Beelink GS-King X";
aliases {
rtc0 = &rtc;
rtc1 = &vrtc;
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <100>;
power-button {
label = "power";
linux,code = <KEY_POWER>;
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
};
};
sound {
compatible = "amlogic,axg-sound-card";
model = "GSKING-X";
audio-aux-devs = <&tdmout_a>;
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 1",
"TDMOUT_A IN 1", "FRDDR_B OUT 1",
"TDMOUT_A IN 2", "FRDDR_C OUT 1",
"TDM_A Playback", "TDMOUT_A 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>;
};
/* 8ch hdmi interface */
dai-link-3 {
sound-dai = <&tdmif_a>;
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_A>;
};
};
dai-link-4 {
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
codec {
sound-dai = <&hdmi_tx>;
};
};
};
};
&arb {
status = "okay";
};
&clkc_audio {
status = "okay";
};
&frddr_a {
status = "okay";
};
&frddr_b {
status = "okay";
};
&frddr_c {
status = "okay";
};
&i2c3 {
status = "okay";
pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
pinctrl-names = "default";
rtc: rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
wakeup-source;
};
};
&tdmif_a {
status = "okay";
};
&tdmout_a {
status = "okay";
};
&tohdmitx {
status = "okay";
};
...@@ -44,7 +44,7 @@ white { ...@@ -44,7 +44,7 @@ white {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "G12B-GTKING-PRO"; model = "GTKING-PRO";
audio-aux-devs = <&tdmout_b>; audio-aux-devs = <&tdmout_b>;
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
"TDMOUT_B IN 1", "FRDDR_B OUT 1", "TDMOUT_B IN 1", "FRDDR_B OUT 1",
......
...@@ -28,7 +28,7 @@ spdif_dit: audio-codec-1 { ...@@ -28,7 +28,7 @@ spdif_dit: audio-codec-1 {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "G12B-GTKING"; model = "GTKING";
audio-aux-devs = <&tdmout_b>; audio-aux-devs = <&tdmout_b>;
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
"TDMOUT_B IN 1", "FRDDR_B OUT 1", "TDMOUT_B IN 1", "FRDDR_B OUT 1",
......
...@@ -13,6 +13,8 @@ / { ...@@ -13,6 +13,8 @@ / {
aliases { aliases {
serial0 = &uart_AO; serial0 = &uart_AO;
ethernet0 = &ethmac; ethernet0 = &ethmac;
rtc0 = &rtc;
rtc1 = &vrtc;
}; };
dioo2133: audio-amplifier-0 { dioo2133: audio-amplifier-0 {
...@@ -211,7 +213,7 @@ hdmi_connector_in: endpoint { ...@@ -211,7 +213,7 @@ hdmi_connector_in: endpoint {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "G12B-ODROID-N2"; model = "ODROID-N2";
audio-widgets = "Line", "Lineout"; audio-widgets = "Line", "Lineout";
audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>, audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>,
<&tdmin_b>, <&tdmin_c>, <&tdmin_lb>, <&tdmin_b>, <&tdmin_c>, <&tdmin_lb>,
...@@ -478,6 +480,18 @@ &ir { ...@@ -478,6 +480,18 @@ &ir {
linux,rc-map-name = "rc-odroid"; linux,rc-map-name = "rc-odroid";
}; };
&i2c3 {
status = "okay";
pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
pinctrl-names = "default";
rtc: rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
wakeup-source;
};
};
&pwm_ab { &pwm_ab {
pinctrl-0 = <&pwm_a_e_pins>; pinctrl-0 = <&pwm_a_e_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
......
...@@ -23,7 +23,7 @@ spdif_dit: audio-codec-1 { ...@@ -23,7 +23,7 @@ spdif_dit: audio-codec-1 {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "G12B-UGOOS-AM6"; model = "UGOOS-AM6";
audio-aux-devs = <&tdmout_b>; audio-aux-devs = <&tdmout_b>;
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
"TDMOUT_B IN 1", "FRDDR_B OUT 1", "TDMOUT_B IN 1", "FRDDR_B OUT 1",
......
...@@ -186,7 +186,7 @@ vddio_card: regulator-vddio-card { ...@@ -186,7 +186,7 @@ vddio_card: regulator-vddio-card {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXL-LIBRETECH-S9XX-PC"; model = "LIBRETECH-PC";
audio-aux-devs = <&dio2133>; audio-aux-devs = <&dio2133>;
audio-widgets = "Speaker", "7J4-14 LEFT", audio-widgets = "Speaker", "7J4-14 LEFT",
"Speaker", "7J4-11 RIGHT"; "Speaker", "7J4-11 RIGHT";
......
...@@ -121,7 +121,7 @@ hdmi_connector_in: endpoint { ...@@ -121,7 +121,7 @@ hdmi_connector_in: endpoint {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GX-P230-Q200"; model = "P230-Q200";
audio-aux-devs = <&dio2133>; audio-aux-devs = <&dio2133>;
audio-widgets = "Line", "Lineout"; audio-widgets = "Line", "Lineout";
audio-routing = "AU2 INL", "ACODEC LOLP", audio-routing = "AU2 INL", "ACODEC LOLP",
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/meson-gxbb-power.h> #include <dt-bindings/power/meson-gxbb-power.h>
#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
#include <dt-bindings/thermal/thermal.h> #include <dt-bindings/thermal/thermal.h>
/ { / {
...@@ -576,8 +575,6 @@ ethmac: ethernet@c9410000 { ...@@ -576,8 +575,6 @@ ethmac: ethernet@c9410000 {
interrupt-names = "macirq"; interrupt-names = "macirq";
rx-fifo-depth = <4096>; rx-fifo-depth = <4096>;
tx-fifo-depth = <2048>; tx-fifo-depth = <2048>;
resets = <&reset RESET_ETHERNET>;
reset-names = "stmmaceth";
power-domains = <&pwrc PWRC_GXBB_ETHERNET_MEM_ID>; power-domains = <&pwrc PWRC_GXBB_ETHERNET_MEM_ID>;
status = "disabled"; status = "disabled";
}; };
......
...@@ -134,7 +134,7 @@ hdmi_connector_in: endpoint { ...@@ -134,7 +134,7 @@ hdmi_connector_in: endpoint {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXBB-NANOPI-K2"; model = "NANOPI-K2";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -143,7 +143,7 @@ hdmi_connector_in: endpoint { ...@@ -143,7 +143,7 @@ hdmi_connector_in: endpoint {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXBB-NEXBOX-A95X"; model = "NEXBOX-A95X";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -176,7 +176,7 @@ hdmi_connector_in: endpoint { ...@@ -176,7 +176,7 @@ hdmi_connector_in: endpoint {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXBB-ODROID-C2"; model = "ODROID-C2";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -15,7 +15,7 @@ / { ...@@ -15,7 +15,7 @@ / {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXBB-WETEK-HUB"; model = "WETEK-HUB";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -50,7 +50,7 @@ button@0 { ...@@ -50,7 +50,7 @@ button@0 {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXBB-WETEK-PLAY2"; model = "WETEK-PLAY2";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -118,7 +118,7 @@ vddio_boot: regulator-vddio_boot { ...@@ -118,7 +118,7 @@ vddio_boot: regulator-vddio_boot {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXL-LIBRETECH-S805X-AC"; model = "LIBRETECH-AC";
audio-widgets = "Speaker", "9J5-3 LEFT", audio-widgets = "Speaker", "9J5-3 LEFT",
"Speaker", "9J5-2 RIGHT"; "Speaker", "9J5-2 RIGHT";
audio-routing = "9J5-3 LEFT", "ACODEC LOLN", audio-routing = "9J5-3 LEFT", "ACODEC LOLN",
......
...@@ -42,10 +42,10 @@ power-button { ...@@ -42,10 +42,10 @@ power-button {
}; };
}; };
pwmleds { led-controller {
compatible = "pwm-leds"; compatible = "pwm-leds";
power { led-1 {
label = "vim:red:power"; label = "vim:red:power";
pwms = <&pwm_AO_ab 1 7812500 0>; pwms = <&pwm_AO_ab 1 7812500 0>;
max-brightness = <255>; max-brightness = <255>;
...@@ -66,7 +66,7 @@ hdmi_connector_in: endpoint { ...@@ -66,7 +66,7 @@ hdmi_connector_in: endpoint {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXL-KHADAS-VIM1"; model = "KHADAS-VIM";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -159,7 +159,7 @@ vcc_1v8: regulator-vcc_1v8 { ...@@ -159,7 +159,7 @@ vcc_1v8: regulator-vcc_1v8 {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXL-LIBRETECH-S905X-CC-V2"; model = "LIBRETECH-CC-V2";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -135,7 +135,7 @@ vddio_boot: regulator-vddio_boot { ...@@ -135,7 +135,7 @@ vddio_boot: regulator-vddio_boot {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXL-LIBRETECH-S905X-CC"; model = "LIBRETECH-CC";
audio-aux-devs = <&dio2133>; audio-aux-devs = <&dio2133>;
audio-widgets = "Line", "Lineout"; audio-widgets = "Line", "Lineout";
audio-routing = "AU2 INL", "ACODEC LOLN", audio-routing = "AU2 INL", "ACODEC LOLN",
......
...@@ -81,10 +81,10 @@ hdmi_connector_in: endpoint { ...@@ -81,10 +81,10 @@ hdmi_connector_in: endpoint {
}; };
}; };
pwmleds { led-controller {
compatible = "pwm-leds"; compatible = "pwm-leds";
power { led-1 {
label = "vim:red:power"; label = "vim:red:power";
pwms = <&pwm_AO_ab 1 7812500 0>; pwms = <&pwm_AO_ab 1 7812500 0>;
max-brightness = <255>; max-brightness = <255>;
...@@ -148,7 +148,7 @@ wifi32k: wifi32k { ...@@ -148,7 +148,7 @@ wifi32k: wifi32k {
sound { sound {
compatible = "amlogic,gx-sound-card"; compatible = "amlogic,gx-sound-card";
model = "GXM-KHADAS-VIM2"; model = "KHADAS-VIM2";
assigned-clocks = <&clkc CLKID_MPLL0>, assigned-clocks = <&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>, <&clkc CLKID_MPLL1>,
<&clkc CLKID_MPLL2>; <&clkc CLKID_MPLL2>;
......
...@@ -170,7 +170,7 @@ hdmi_connector_in: endpoint { ...@@ -170,7 +170,7 @@ hdmi_connector_in: endpoint {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "G12B-KHADAS-VIM3"; model = "KHADAS-VIM3";
audio-aux-devs = <&tdmout_a>; audio-aux-devs = <&tdmout_a>;
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
"TDMOUT_A IN 1", "FRDDR_B OUT 0", "TDMOUT_A IN 1", "FRDDR_B OUT 0",
...@@ -450,7 +450,6 @@ w25q128: spi-flash@0 { ...@@ -450,7 +450,6 @@ w25q128: spi-flash@0 {
}; };
}; };
&tdmif_a { &tdmif_a {
status = "okay"; status = "okay";
}; };
......
...@@ -89,13 +89,12 @@ &pcie { ...@@ -89,13 +89,12 @@ &pcie {
status = "okay"; status = "okay";
}; };
&sd_emmc_a {
sd-uhs-sdr50;
};
&usb { &usb {
phys = <&usb2_phy0>, <&usb2_phy1>; phys = <&usb2_phy0>, <&usb2_phy1>;
phy-names = "usb2-phy0", "usb2-phy1"; phy-names = "usb2-phy0", "usb2-phy1";
}; };
*/ */
&sd_emmc_a {
sd-uhs-sdr50;
};
...@@ -5,34 +5,12 @@ ...@@ -5,34 +5,12 @@
/dts-v1/; /dts-v1/;
#include "meson-sm1.dtsi" #include "meson-sm1-odroid.dtsi"
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
/ { / {
compatible = "hardkernel,odroid-c4", "amlogic,sm1"; compatible = "hardkernel,odroid-c4", "amlogic,sm1";
model = "Hardkernel ODROID-C4"; model = "Hardkernel ODROID-C4";
aliases {
serial0 = &uart_AO;
ethernet0 = &ethmac;
};
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>;
};
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
...@@ -45,96 +23,6 @@ led-blue { ...@@ -45,96 +23,6 @@ led-blue {
}; };
}; };
tflash_vdd: regulator-tflash_vdd {
compatible = "regulator-fixed";
regulator-name = "TFLASH_VDD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
};
tf_io: gpio-regulator-tf_io {
compatible = "regulator-gpio";
regulator-name = "TF_IO";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
gpios-states = <0>;
states = <3300000 0>,
<1800000 1>;
};
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 = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
vin-supply = <&main_12v>;
};
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: regulator-vddcpu {
/*
* MP8756GD Regulator.
*/
compatible = "pwm-regulator";
regulator-name = "VDDCPU";
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;
};
hub_5v: regulator-hub_5v { hub_5v: regulator-hub_5v {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "HUB_5V"; regulator-name = "HUB_5V";
...@@ -147,215 +35,12 @@ hub_5v: regulator-hub_5v { ...@@ -147,215 +35,12 @@ hub_5v: regulator-hub_5v {
enable-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 the microUSB port power enable */
gpio = <&gpio_ao GPIOAO_2 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;
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_tmds_out>;
};
};
};
sound { sound {
compatible = "amlogic,axg-sound-card"; model = "ODROID-C4";
model = "SM1-ODROID-C4";
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";
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>;
};
};
/* hdmi glue */
dai-link-4 {
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
codec {
sound-dai = <&hdmi_tx>;
};
};
};
};
&arb {
status = "okay";
};
&clkc_audio {
status = "okay";
};
&cpu0 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU_CLK>;
clock-latency = <50000>;
};
&cpu1 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU1_CLK>;
clock-latency = <50000>;
};
&cpu2 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU2_CLK>;
clock-latency = <50000>;
};
&cpu3 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU3_CLK>;
clock-latency = <50000>;
};
&ext_mdio {
external_phy: ethernet-phy@0 {
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;
max-speed = <1000>;
interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_14 */
interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
};
};
&ethmac {
pinctrl-0 = <&eth_pins>, <&eth_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";
}; };
&gpio { &gpio {
gpio-line-names =
/* GPIOZ */
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
/* GPIOH */
"", "", "", "", "",
"PIN_36", /* GPIOH_5 */
"PIN_26", /* GPIOH_6 */
"PIN_32", /* GPIOH_7 */
"",
/* BOOT */
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
/* GPIOC */
"", "", "", "", "", "", "", "",
/* GPIOA */
"", "", "", "", "", "", "", "",
"", "", "", "", "", "",
"PIN_27", /* GPIOA_14 */
"PIN_28", /* GPIOA_15 */
/* GPIOX */
"PIN_16", /* GPIOX_0 */
"PIN_18", /* GPIOX_1 */
"PIN_22", /* GPIOX_2 */
"PIN_11", /* GPIOX_3 */
"PIN_13", /* GPIOX_4 */
"PIN_7", /* GPIOX_5 */
"PIN_33", /* GPIOX_6 */
"PIN_15", /* GPIOX_7 */
"PIN_19", /* GPIOX_8 */
"PIN_21", /* GPIOX_9 */
"PIN_24", /* GPIOX_10 */
"PIN_23", /* GPIOX_11 */
"PIN_8", /* GPIOX_12 */
"PIN_10", /* GPIOX_13 */
"PIN_29", /* GPIOX_14 */
"PIN_31", /* GPIOX_15 */
"PIN_12", /* GPIOX_16 */
"PIN_3", /* GPIOX_17 */
"PIN_5", /* GPIOX_18 */
"PIN_35"; /* GPIOX_19 */
/* /*
* WARNING: The USB Hub on the Odroid-C4 needs a reset signal * WARNING: The USB Hub on the Odroid-C4 needs a reset signal
* to be turned high in order to be detected by the USB Controller * to be turned high in order to be detected by the USB Controller
...@@ -370,120 +55,10 @@ usb-hub { ...@@ -370,120 +55,10 @@ usb-hub {
}; };
}; };
&gpio_ao {
gpio-line-names =
/* GPIOAO */
"", "", "", "",
"PIN_47", /* GPIOAO_4 */
"", "",
"PIN_45", /* GPIOAO_7 */
"PIN_46", /* GPIOAO_8 */
"PIN_44", /* GPIOAO_9 */
"PIN_42", /* GPIOAO_10 */
"",
/* GPIOE */
"", "", "";
};
&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 { &ir {
status = "okay";
pinctrl-0 = <&remote_input_ao_pins>;
pinctrl-names = "default";
linux,rc-map-name = "rc-odroid"; linux,rc-map-name = "rc-odroid";
}; };
&pwm_AO_cd {
pinctrl-0 = <&pwm_ao_d_e_pins>;
pinctrl-names = "default";
clocks = <&xtal>;
clock-names = "clkin1";
status = "okay";
};
&saradc {
status = "okay";
};
/* 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 = <200000000>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
disable-wp;
cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
vmmc-supply = <&tflash_vdd>;
vqmmc-supply = <&tf_io>;
};
/* eMMC */
&sd_emmc_c {
status = "okay";
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
max-frequency = <200000000>;
disable-wp;
mmc-pwrseq = <&emmc_pwrseq>;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&flash_1v8>;
};
&tdmif_b {
status = "okay";
};
&tdmout_b {
status = "okay";
};
&tohdmitx {
status = "okay";
};
&uart_AO {
status = "okay";
pinctrl-0 = <&uart_ao_a_pins>;
pinctrl-names = "default";
};
&usb {
status = "okay";
vbus-supply = <&usb_pwr_en>;
};
&usb2_phy0 {
phy-supply = <&vcc_5v>;
};
&usb2_phy1 { &usb2_phy1 {
/* Enable the hub which is connected to this port */ /* Enable the hub which is connected to this port */
phy-supply = <&hub_5v>; phy-supply = <&hub_5v>;
......
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com>
*/
/dts-v1/;
#include "meson-sm1-odroid.dtsi"
/ {
compatible = "hardkernel,odroid-hc4", "amlogic,sm1";
model = "Hardkernel ODROID-HC4";
aliases {
rtc0 = &rtc;
rtc1 = &vrtc;
};
fan0: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
cooling-min-state = <0>;
cooling-max-state = <3>;
cooling-levels = <0 120 170 220>;
pwms = <&pwm_cd 1 40000 0>;
};
leds {
compatible = "gpio-leds";
led-blue {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
panic-indicator;
};
led-red {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_POWER;
gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
sound {
model = "ODROID-HC4";
};
};
&cpu_thermal {
cooling-maps {
map {
trip = <&cpu_passive>;
cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&ir {
linux,rc-map-name = "rc-odroid";
};
&i2c2 {
status = "okay";
pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>;
pinctrl-names = "default";
rtc: rtc@51 {
status = "okay";
compatible = "nxp,pcf8563";
reg = <0x51>;
wakeup-source;
};
};
&pcie {
status = "okay";
reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
};
&pwm_cd {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pwm_d_x6_pins>;
};
&sd_emmc_c {
status = "disabled";
};
&usb {
phys = <&usb2_phy0>, <&usb2_phy1>;
phy-names = "usb2-phy0", "usb2-phy1";
};
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com>
*/
#include "meson-sm1.dtsi"
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
/ {
aliases {
serial0 = &uart_AO;
ethernet0 = &ethmac;
};
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>;
};
tflash_vdd: regulator-tflash_vdd {
compatible = "regulator-fixed";
regulator-name = "TFLASH_VDD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
enable-active-high;
regulator-always-on;
};
tf_io: gpio-regulator-tf_io {
compatible = "regulator-gpio";
regulator-name = "TF_IO";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
gpios-states = <0>;
states = <3300000 0>,
<1800000 1>;
};
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 = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
vin-supply = <&main_12v>;
};
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: regulator-vddcpu {
/*
* MP8756GD Regulator.
*/
compatible = "pwm-regulator";
regulator-name = "VDDCPU";
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;
};
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 the microUSB port power enable */
gpio = <&gpio_ao GPIOAO_2 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;
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_tmds_out>;
};
};
};
sound {
compatible = "amlogic,axg-sound-card";
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";
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>;
};
};
/* hdmi glue */
dai-link-4 {
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
codec {
sound-dai = <&hdmi_tx>;
};
};
};
};
&arb {
status = "okay";
};
&clkc_audio {
status = "okay";
};
&cpu0 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU_CLK>;
clock-latency = <50000>;
};
&cpu1 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU1_CLK>;
clock-latency = <50000>;
};
&cpu2 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU2_CLK>;
clock-latency = <50000>;
};
&cpu3 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
clocks = <&clkc CLKID_CPU3_CLK>;
clock-latency = <50000>;
};
&ext_mdio {
external_phy: ethernet-phy@0 {
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;
max-speed = <1000>;
interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_14 */
interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
};
};
&ethmac {
pinctrl-0 = <&eth_pins>, <&eth_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";
};
&gpio {
gpio-line-names =
/* GPIOZ */
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
/* GPIOH */
"", "", "", "", "",
"PIN_36", /* GPIOH_5 */
"PIN_26", /* GPIOH_6 */
"PIN_32", /* GPIOH_7 */
"",
/* BOOT */
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
/* GPIOC */
"", "", "", "", "", "", "", "",
/* GPIOA */
"", "", "", "", "", "", "", "",
"", "", "", "", "", "",
"PIN_27", /* GPIOA_14 */
"PIN_28", /* GPIOA_15 */
/* GPIOX */
"PIN_16", /* GPIOX_0 */
"PIN_18", /* GPIOX_1 */
"PIN_22", /* GPIOX_2 */
"PIN_11", /* GPIOX_3 */
"PIN_13", /* GPIOX_4 */
"PIN_7", /* GPIOX_5 */
"PIN_33", /* GPIOX_6 */
"PIN_15", /* GPIOX_7 */
"PIN_19", /* GPIOX_8 */
"PIN_21", /* GPIOX_9 */
"PIN_24", /* GPIOX_10 */
"PIN_23", /* GPIOX_11 */
"PIN_8", /* GPIOX_12 */
"PIN_10", /* GPIOX_13 */
"PIN_29", /* GPIOX_14 */
"PIN_31", /* GPIOX_15 */
"PIN_12", /* GPIOX_16 */
"PIN_3", /* GPIOX_17 */
"PIN_5", /* GPIOX_18 */
"PIN_35"; /* GPIOX_19 */
};
&gpio_ao {
gpio-line-names =
/* GPIOAO */
"", "", "", "",
"PIN_47", /* GPIOAO_4 */
"", "",
"PIN_45", /* GPIOAO_7 */
"PIN_46", /* GPIOAO_8 */
"PIN_44", /* GPIOAO_9 */
"PIN_42", /* GPIOAO_10 */
"",
/* GPIOE */
"", "", "";
};
&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";
};
&pwm_AO_cd {
pinctrl-0 = <&pwm_ao_d_e_pins>;
pinctrl-names = "default";
clocks = <&xtal>;
clock-names = "clkin1";
status = "okay";
};
&saradc {
status = "okay";
};
/* 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 = <200000000>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
disable-wp;
cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
vmmc-supply = <&tflash_vdd>;
vqmmc-supply = <&tf_io>;
};
/* eMMC */
&sd_emmc_c {
status = "okay";
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
max-frequency = <200000000>;
disable-wp;
mmc-pwrseq = <&emmc_pwrseq>;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&flash_1v8>;
};
&tdmif_b {
status = "okay";
};
&tdmout_b {
status = "okay";
};
&tohdmitx {
status = "okay";
};
&uart_AO {
status = "okay";
pinctrl-0 = <&uart_ao_a_pins>;
pinctrl-names = "default";
};
&usb {
status = "okay";
vbus-supply = <&usb_pwr_en>;
};
&usb2_phy0 {
phy-supply = <&vcc_5v>;
};
...@@ -101,20 +101,20 @@ hdmi_connector_in: endpoint { ...@@ -101,20 +101,20 @@ hdmi_connector_in: endpoint {
}; };
}; };
leds { led-controller-1 {
compatible = "gpio-leds"; compatible = "gpio-leds";
led-bluetooth { led-1 {
label = "sei610:blue:bt"; label = "sei610:blue:bt";
gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
default-state = "off"; default-state = "off";
}; };
}; };
pwmleds { led-controller-2 {
compatible = "pwm-leds"; compatible = "pwm-leds";
power { led-2 {
label = "sei610:red:power"; label = "sei610:red:power";
pwms = <&pwm_AO_ab 0 30518 0>; pwms = <&pwm_AO_ab 0 30518 0>;
max-brightness = <255>; max-brightness = <255>;
...@@ -220,7 +220,7 @@ sdio_pwrseq: sdio-pwrseq { ...@@ -220,7 +220,7 @@ sdio_pwrseq: sdio-pwrseq {
sound { sound {
compatible = "amlogic,axg-sound-card"; compatible = "amlogic,axg-sound-card";
model = "SM1-SEI610"; model = "SEI610";
audio-aux-devs = <&tdmout_a>, <&tdmout_b>, audio-aux-devs = <&tdmout_a>, <&tdmout_b>,
<&tdmin_a>, <&tdmin_b>; <&tdmin_a>, <&tdmin_b>;
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment