Skip to content

DTS: add device tree for MagentaTV ONE (S905X5L)#23

Open
simonhust wants to merge 1 commit into
CoreELEC:5.15.196_20260225from
simonhust:s905x5l
Open

DTS: add device tree for MagentaTV ONE (S905X5L)#23
simonhust wants to merge 1 commit into
CoreELEC:5.15.196_20260225from
simonhust:s905x5l

Conversation

@simonhust

@simonhust simonhust commented Jun 29, 2026

Copy link
Copy Markdown

Board DTS derived from working vendor fdt.dtb analysis. Inherits from s6_s905x5l_bn201.dts and coreelec_s6_common.dtsi.

@simonhust

simonhust commented Jun 29, 2026

Copy link
Copy Markdown
Author
kodi_screenshot

DEMSG

@vpeter4

vpeter4 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Is there some special reason to use &{/}? Just put content under root node directly because there is no other dts using such construct.

@simonhust

Copy link
Copy Markdown
Author

The reason we keep this single &{/} for auge_sound is that auge_sound does not have a label in coreelec_s6_common.dtsi or coreelec_common.dtsi.

@vpeter4

vpeter4 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

auge_sound does not have a label

What label? It is just node under root like you moved all others?

@simonhust

Copy link
Copy Markdown
Author

This time should be ok. https://paste.coreelec.org/TediousGooey

@vpeter4

vpeter4 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Looks ok. Maybe you could also remove dummy-charger and dummy-battery because our kernel doesn't support it.

@simonhust

Copy link
Copy Markdown
Author

Done.

@Portisch

Copy link
Copy Markdown
Contributor

This is the clean up on the DTB:

diff --git a/arch/arm64/boot/dts/amlogic/s6_s905x5l_magentatv_one.dts b/arch/arm64/boot/dts/amlogic/s6_s905x5l_magentatv_one.dts
index 870644a7e3..5470189960 100644
--- a/arch/arm64/boot/dts/amlogic/s6_s905x5l_magentatv_one.dts
+++ b/arch/arm64/boot/dts/amlogic/s6_s905x5l_magentatv_one.dts
@@ -5,155 +5,23 @@
 	model = "MagentaTV ONE";
 	coreelec-dt-id = "s6_s905x5l_magenta_tv_one";
 
-	ir_wakeup_key {
-		key_num = <16>;
-		wakeup_key = <0xba45bd02 0x0 0x74
-			0xef10fe01 0x0 0x74
-			0xef10fb04 0x0 0x74
-			0xf20dfe01 0x0 0x74
-			0xe51afb04 0x0 0x74
-			0x3ac5bd02 0x1 0x85
-			0xb8477788 0x0 0x66
-			0x6516 0x0 0x74
-			0x6416 0x0 0x74
-			0x19ae9 0x0 0x74
-			0x23dc80dd 0x0 0x74
-			0x23dcfd01 0x0 0x74
-			0x629dfd01 0x1 0x44
-			0x19aa2 0x1 0x44
-			0xde217788 0x0 0x74
-			0x9c637788 0x1 0x44>;
-	};
-
-	/delete-node/ gpio_leds;
-	/delete-node/ gpioleds;
-
-	reserved-memory {
-		/delete-node/ heap-fb;
-		dmaheap_fb_reserved: heap-fb {
-			compatible = "shared-dma-pool";
-			reusable;
-			/* 1080p FB needs ~16MB; set 64MB for safe margin */
-			size = <0x0 0x4000000>;
-			alignment = <0x0 0x400000>;
-		};
-	};
-
 	gpioleds {
-		compatible = "gpio-leds";
-		status = "okay";
+		sys_led {
+			gpios = <&gpio GPIOF_4 GPIO_ACTIVE_HIGH>;
+		};
 
-		red {
+		red_led {
 			label = "red_led";
 			gpios = <&gpio GPIOA_8 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 			linux,default-trigger = "rc_feedback";
 		};
-
-		green {
-			label = "green_led";
-			gpios = <&gpio GPIOF_4 GPIO_ACTIVE_HIGH>;
-			default-state = "on";
-		};
-	};
-
-	/* Drop unused bn201 nodes */
-	/delete-node/ custom_maps;
-	/delete-node/ gpio_keypad;
-	/delete-node/ dvb-extern;
-	/delete-node/ dvb-demux;
-
-	/* DVB: 3 frontends */
-	dvb-extern {
-		compatible = "amlogic, dvb-extern";
-		dev_name = "dvb-extern";
-		status = "disabled";
-
-		dvb_power_gpio = <&gpio GPIOZ_5 GPIO_ACTIVE_HIGH>;
-		dvb_power_value = <1>;
-		dvb_power_dir = <0>;
-
-		fe_num = <3>;
-		fe0_demod = "internal";
-		fe0_tuner0 = <0>;
-		fe1_demod = "internal";
-		fe1_tuner0 = <1>;
-		fe2_demod = "cxd2856";
-		fe2_i2c_adap_id = <&i2c4>;
-		fe2_demod_i2c_addr = <0xD8>;
-		fe2_reset_value = <0>;
-		fe2_reset_gpio = <&gpio GPIOZ_4 GPIO_ACTIVE_HIGH>;
-		fe2_reset_dir = <0>;
-		fe2_ant_poweron_value = <0>;
-		fe2_ts = <0>;
-		fe2_tuner1 = <3>;
-
-		tuner_num = <4>;
-		tuner0_name = "r836_tuner";
-		tuner0_i2c_adap = <&i2c3>;
-		tuner0_i2c_addr = <0x1a>;
-		tuner0_xtal = <0>;
-		tuner0_xtal_mode = <0>;
-		tuner0_xtal_cap = <16>;
-		tuner0_lt_out = <1>;
-
-		tuner1_name = "r836_tuner";
-		tuner1_i2c_adap = <&i2c3>;
-		tuner1_i2c_addr = <0x3a>;
-		tuner1_xtal = <0>;
-		tuner1_xtal_mode = <0>;
-		tuner1_xtal_cap = <16>;
-		tuner1_lt_out = <1>;
-
-		tuner2_name = "av2018_tuner";
-		tuner2_i2c_adap = <&i2c3>;
-		tuner2_i2c_addr = <0xC4>;
-		tuner2_lt_out = <1>;
-
-		tuner3_name = "av2018_tuner";
-		tuner3_lt_out = <1>;
-	};
-
-	dvb-demux {
-		compatible = "amlogic sc2, dvb-demux";
-		dev_name = "dvb-demux";
-		status = "disabled";
-
-		reg = <0x0 0xfe000000 0x0 0x480000>;
-
-		dmxdev_num = <0x11>;
-		tsn_from = "demod";
-
-		ts0_sid = <0x10>;
-		ts0 = "serial-4wire";
-		ts0_control = <0x0>;
-		ts0_invert = <0>;
-
-		ts1_sid = <0x11>;
-		ts1 = "parallel";
-		ts1_control = <0x0>;
-		ts1_invert = <0>;
-
-		ts2_sid = <0x12>;
-		ts2 = "parallel";
-		ts2_control = <0x0>;
-		ts2_invert = <0>;
-
-		ts3_sid = <0x7>;
 	};
 
 	/* GPIO keypad: reset + mute */
 	gpio_keypad {
-		compatible = "amlogic, gpio_keypad";
-		status = "okay";
-		scan_period = <20>;
-		key_num = <2>;
 		key_name = "reset", "mute";
 		key_code = <KEY_RESTART SW_MUTE_DEVICE>;
-		key_type = <EV_KEY EV_SW>;
-		key-gpios = <&gpio GPIOD_2 GPIO_ACTIVE_HIGH
-			     &gpio GPIOA_11 GPIO_ACTIVE_HIGH>;
-		detect_mode = <0>;
 	};
 
 	/* WiFi PWM config */
@@ -161,31 +29,10 @@
 		pwm_channel1_conf {
 			pwms = <&pwm_e 0 0x774d 0>;
 			duty-cycle = <0x3ba6>;
-			times = <7>;
 		};
 		pwm_channel2_conf {
 			pwms = <&pwm_e 1 0x7724 0>;
 			duty-cycle = <0x3b92>;
-			times = <10>;
-		};
-	};
-
-	/* Audio: override coreelec's auge_sound — add suffix-name + dummy_codec */
-	auge_sound {
-		aml-audio-card,dai-link@0 {
-			suffix-name = "alsaPORT-spdifb";
-		};
-		aml-audio-card,dai-link@1 {
-			suffix-name = "alsaPORT-i2s";
-			codec {
-				sound-dai = <&dummy_codec>;
-			};
-		};
-		aml-audio-card,dai-link@2 {
-			suffix-name = "alsaPORT-spdif";
-		};
-		aml-audio-card,dai-link@3 {
-			suffix-name = "alsaPORT-i2s2hdmi";
 		};
 	};
 };
@@ -193,12 +40,10 @@
 /* Ethernet: internal RMII 100M PHY */
 &ethmac {
 	pinctrl-0 = <&eth_pins>;
-	pinctrl-names = "default";
 	phy-mode = "rmii";
 	phy-handle = <&internal_ephy>;
 	internal_phy = <1>;
 	mdns_wkup = <0>;
-	mac_wol = <0>;
 };
 
 &int_mdio {
@@ -210,77 +55,10 @@
 	gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
 };
 
-&i2c2 {
-	/delete-node/ sy602x_54@2a;
-};
-
-&i2c5 {
-	/delete-node/ sensor0@1a;
-};
-
-/* PCIe: enabled for Realtek RTL8852BE WiFi */
-&pcie {
-	reset-gpio = <&gpio GPIOX_0 GPIO_ACTIVE_HIGH>;
-	max-link-speed = <1>;
-	iommu-map = <0x100 &smmu 0x5 0x10>;
-	status = "okay";
-};
-
 &sd_emmc_b {
 	status = "disabled";
 };
 
-/* WiFi + BT — SDIO disabled, PCIe WiFi + UART BT */
-&sd_emmc_a {
-	status = "disabled";
-};
-
-/* Enable PWM for WiFi power sequencing */
-&pwm_e {
-	pinctrl-0 = <&pwm_e_pins1>;
-	pinctrl-names = "default";
-	status = "okay";
-};
-
-&aml_wifi {
-	status = "okay";
-	wifi_pwm_tee;
-	irq_trigger_type = "IRQF_TRIGGER_LOW";
-	wifi_static_buf = <0>;
-	pwm_config = <&wifi_pwm_conf>;
-	power_on-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
-	interrupt-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
-};
-
-&aml_bt {
-	status = "okay";
-	reset-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
-	btwakeup-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
-	hostwake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
-};
-
-/* UARTs */
-&uart_A {
-	status = "okay";
-	uart-has-rtscts;
-	interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-};
-
-/* DRM / FB */
-&fb {
-	status = "disabled";
-};
-
-&drm_vpu {
-	status = "okay";
-	logo_addr = "0x7f800000";
-};
-
-&drm_subsystem {
-	status = "okay";
-	fbdev_sizes = <1280 720 1280 1440 32>;
-};
-
 &amhdmitx {
 	vend_data {
 		vendor_name = "Magenta";

Result is "almost" the same, please test and if it works please update the PR commit.

@glsimon666

Copy link
Copy Markdown

Okay.

@simonhust simonhust force-pushed the s905x5l branch 2 times, most recently from 46aea5f to 8ab7cb4 Compare June 30, 2026 12:44
@simonhust

Copy link
Copy Markdown
Author

@Portisch Thank you for your review. All nodes have been cleaned up, except for those required to keep WiFi, Bluetooth, and audio working properly. https://paste.coreelec.org/MidwifeLandmark

@Portisch

Portisch commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

You can remove some nodes again as they are already set in base DTS, look at the comments.

@Portisch Portisch left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove these nodes as they are already set by base DTS.

Comment thread arch/arm64/boot/dts/amlogic/s6_s905x5l_magentatv_one.dts
};

/* BT over UART */
&aml_bt {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread arch/arm64/boot/dts/amlogic/s6_s905x5l_magentatv_one.dts
};

/* Enable PWM for WiFi power sequencing */
&pwm_e {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

};

/* WiFi: PWM-based power seq + TEE, extra props beyond bn201 */
&aml_wifi {

@Portisch Portisch Jun 30, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already set correct: https://github.com/CoreELEC/common_drivers/blob/5.15.196_20260225/arch/arm64/boot/dts/amlogic/s6_s905x5l_bn201.dts#L1532

Maybe only wifi_static_buf = <0>; is need!?
CE do set default wifi_static_buf = <2>;.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@simonhust

Copy link
Copy Markdown
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants