Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new dtb for 2101 to support bluetooth on X96 Max Plus_2101 #13

Merged
merged 1 commit into from
Feb 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions arch/arm64/boot/dts/amlogic/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-max-plus-ip1001m.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-max-plus-oc.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-max-plus-q1.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-max-plus-q2.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-max-plus-2101.dtb

subdir-y := $(dts-dirs) overlay
254 changes: 254 additions & 0 deletions arch/arm64/boot/dts/amlogic/meson-sm1-x96-max-plus-2101.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2019 BayLibre SAS. All rights reserved.
* Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com>
* Copyright (c) 2021 flippy <uniqfreq@gmail.com>
*/

/dts-v1/;

#include "meson-sm1-ac2xx.dtsi"
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>

/ {
//compatible = "amediatech,x96-max-plus", "amlogic,sm1";
//model = "Shenzhen Amediatech Technology Co., Ltd X96 Max+";
compatible = "amlogic,sm1";
model = "AMedia X96 Max+";

aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
ethernet0 = &ethmac;
};

memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0xFFFFFFFF>;
};

sound {
compatible = "amlogic,axg-sound-card";
model = "X96-MAX";
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>;
};
};
};

vddgpu: regulator-vddgpu {
compatible = "regulator-fixed";
regulator-name = "mali";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
vin-supply = <&ao_5v>;
regulator-always-on;
};
};

&vddcpu {
regulator-min-microvolt = <721000>;
regulator-max-microvolt = <1022000>;
pwms = <&pwm_AO_cd 1 1250 0>;
};

&arb {
status = "okay";
};

&clkc_audio {
status = "okay";
};

&ethmac {
status = "okay";

pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
pinctrl-names = "default";
phy-handle = <&external_phy>;

//phy-mode = "rgmii-txid";
//rx-internal-delay-ps = <800>;
phy-mode = "rgmii";
amlogic,tx-delay-ns = <2>;

snps,aal;
snps,rxpbl = <0x8>;
snps,txpbl = <0x8>;

rx-fifo-depth = <4096>;
tx-fifo-depth = <4096>;

nvmem-cells = <&eth_mac>;
nvmem-cell-names = "eth_mac";
};

&ext_mdio {
external_phy: ethernet-phy@0 {
/*
* Realtek RTL8211F (0x001cc916)
* JLSemi JL2101 (0x937c4032)
*/
reg = <0>;
max-speed = <1000>;

reset-assert-us = <30000>;
reset-deassert-us = <80000>;
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>;
};
};

&frddr_a {
status = "okay";
};

&frddr_b {
status = "okay";
};

&frddr_c {
status = "okay";
};

&ir {
linux,rc-map-name = "rc-x96max";
};

&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: bluetooth {
compatible = "realtek,rtl8822cs-bt";
enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
};
};

&mali {
mali-supply=<&vddgpu>;
};

&usb {
dr_mode = "host";
};

/* SDIO */
&sd_emmc_a {
/delete-property/ sd-uhs-sdr104;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
max-frequency = <50000000>;

//sd-uhs-ddr50;
//max-frequency = <50000000>;

//sd-uhs-sdr104;
//max-frequency = <200000000>;

rtl8822cs: wifi@1 {
reg = <1>;
};
};

/* SD card */
&sd_emmc_b {
cap-sd-highspeed;
max-frequency = <25000000>;
};

/* eMMC */
&sd_emmc_c {
max-frequency = <200000000>;
};

&cpu_opp_table {
opp-2016000000 {
opp-hz = /bits/ 64 <2016000000>;
opp-microvolt = <1000000>;
};
};

&efuse {
eth_mac: eth_mac@0 {
reg = <0x0 0x06>;
};

bt_mac: bt_mac@6 {
reg = <0x6 0x6>;
};

wifi_mac: wifi_mac@c {
reg = <0xc 0x6>;
};

usid: usid@18 {
reg = <0x12 0x10>;
};
};