Devicetree
 help / color / mirror / Atom feed
* [PATCH 0/2] Add support for Samsung Galaxy Tab A 10.1 (2019, 4G)
@ 2026-11-09 20:07 Umer Uddin via B4 Relay
  2026-11-09 20:07 ` [PATCH 1/2] dt-bindings: arm: samsung: samsung-boards: Add bindings for SM-T515 board Umer Uddin via B4 Relay
  2026-11-09 20:07 ` [PATCH 2/2] arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G) Umer Uddin via B4 Relay
  0 siblings, 2 replies; 4+ messages in thread
From: Umer Uddin via B4 Relay @ 2026-11-09 20:07 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Peter Griffin, Alim Akhtar, Rob Herring,
	Conor Dooley, Krzysztof Kozlowski
  Cc: linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
	Umer Uddin

Hi guys,

This series adds support for Samsung Galaxy Tab A 10.1 (2019, 4G).

The device trees have been tested with dtbs_check W=1
and results in no warnings.

This initial bringup consists of:
 * pinctrl
 * internal eMMC
 * gpio-keys
 * simple-framebuffer

This is enough to reach a shell in an initramfs. More platform support
will be added in the future.

The preferred way to boot kernel is by using a shim bootloader called
uniLoader [1], which works around some issues with the stock bootloader,
primarily the decon trigger control quirk, causing the framebuffer to not
refresh.

[1] https://github.com/ivoszbg/uniLoader

Signed-off-by: Umer Uddin <umer.uddin@mentallysanemainliners.org>
---
Umer Uddin (2):
      dt-bindings: arm: samsung: samsung-boards: Add bindings for SM-T515 board
      arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G)

 .../bindings/arm/samsung/samsung-boards.yaml       |   1 +
 arch/arm64/boot/dts/exynos/Makefile                |   1 +
 .../arm64/boot/dts/exynos/exynos7885-gta3xllte.dts | 130 +++++++++++++++++++++
 3 files changed, 132 insertions(+)
---
base-commit: c916d326360966fa41b1d9c3fb659215053387f5
change-id: 20261109-gta3xllte-support-f64df476d3c6

Best regards,
--  
Umer Uddin <umer.uddin@mentallysanemainliners.org>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] dt-bindings: arm: samsung: samsung-boards: Add bindings for SM-T515 board
  2026-11-09 20:07 [PATCH 0/2] Add support for Samsung Galaxy Tab A 10.1 (2019, 4G) Umer Uddin via B4 Relay
@ 2026-11-09 20:07 ` Umer Uddin via B4 Relay
  2026-11-09 20:07 ` [PATCH 2/2] arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G) Umer Uddin via B4 Relay
  1 sibling, 0 replies; 4+ messages in thread
From: Umer Uddin via B4 Relay @ 2026-11-09 20:07 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Peter Griffin, Alim Akhtar, Rob Herring,
	Conor Dooley, Krzysztof Kozlowski
  Cc: linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
	Umer Uddin

From: Umer Uddin <umer.uddin@mentallysanemainliners.org>

Add devicetree bindings for Samsung Galaxy Tab A 10.1 (2019, 4G) board.

Signed-off-by: Umer Uddin <umer.uddin@mentallysanemainliners.org>
---
 Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
index db19a686f490..6ac7f895351e 100644
--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
+++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
@@ -226,6 +226,7 @@ properties:
       - description: Exynos7885 based boards
         items:
           - enum:
+              - samsung,gta3xllte               # Samsung Galaxy Tab A 10.1 (2019, 4G)
               - samsung,jackpotlte              # Samsung Galaxy A8 (2018)
           - const: samsung,exynos7885
 

-- 
2.56.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G)
  2026-11-09 20:07 [PATCH 0/2] Add support for Samsung Galaxy Tab A 10.1 (2019, 4G) Umer Uddin via B4 Relay
  2026-11-09 20:07 ` [PATCH 1/2] dt-bindings: arm: samsung: samsung-boards: Add bindings for SM-T515 board Umer Uddin via B4 Relay
@ 2026-11-09 20:07 ` Umer Uddin via B4 Relay
  2026-11-09 20:18   ` sashiko-bot
  1 sibling, 1 reply; 4+ messages in thread
From: Umer Uddin via B4 Relay @ 2026-11-09 20:07 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Peter Griffin, Alim Akhtar, Rob Herring,
	Conor Dooley, Krzysztof Kozlowski
  Cc: linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
	Umer Uddin

From: Umer Uddin <umer.uddin@mentallysanemainliners.org>

Add initial support for Samsung Galaxy Tab A 10.1 (2019) is a tablet that
is based on Exynos7885, this patch adds support for the LTE variant.

This device tree adds support for the following:

- SimpleFB
- 2GB RAM
- Buttons
- Internal eMMC

Signed-off-by: Umer Uddin <umer.uddin@mentallysanemainliners.org>
---
 arch/arm64/boot/dts/exynos/Makefile                |   1 +
 .../arm64/boot/dts/exynos/exynos7885-gta3xllte.dts | 130 +++++++++++++++++++++
 2 files changed, 131 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile
index 7534b773d28f..f1946a95cb42 100644
--- a/arch/arm64/boot/dts/exynos/Makefile
+++ b/arch/arm64/boot/dts/exynos/Makefile
@@ -12,6 +12,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += \
 	exynos7870-j6lte.dtb		\
 	exynos7870-j7xelte.dtb		\
 	exynos7870-on7xelte.dtb		\
+	exynos7885-gta3xllte.dtb	\
 	exynos7885-jackpotlte.dtb	\
 	exynos850-a217f.dtb		\
 	exynos850-e850-96.dtb		\
diff --git a/arch/arm64/boot/dts/exynos/exynos7885-gta3xllte.dts b/arch/arm64/boot/dts/exynos/exynos7885-gta3xllte.dts
new file mode 100644
index 000000000000..0e4e6c0b20e1
--- /dev/null
+++ b/arch/arm64/boot/dts/exynos/exynos7885-gta3xllte.dts
@@ -0,0 +1,130 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Samsung Galaxy Tab A 10.1 (2019, 4G) (gta3xllte/SM-T515) device tree source
+ *
+ * Copyright (c) 2026, Umer Uddin <umer.uddin@mentallysanemainliners.org>
+ */
+
+/dts-v1/;
+#include "exynos7885.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+	model = "Samsung Galaxy Tab A 10.1 (2019, 4G)";
+	compatible = "samsung,gta3xllte", "samsung,exynos7885";
+	chassis-type = "handset";
+
+	aliases {
+		mmc0 = &mmc_0;
+		serial0 = &serial_0;
+		serial1 = &serial_1;
+		serial2 = &serial_2;
+	};
+
+	chosen {
+		#address-cells = <2>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0: framebuffer@ec000000 {
+			compatible = "simple-framebuffer";
+			reg = <0 0xec000000 0x01400000>;
+			width = <1200>;
+			height = <1920>;
+			stride = <(1200 * 4)>;
+			format = "a8r8g8b8";
+		};
+	};
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <1>;
+		ranges;
+
+		cont_splash_mem: framebuffer@ec000000 {
+			reg = <0 0xec000000 0x01400000>;
+			no-map;
+		};
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x0 0x80000000 0x3dd00000>,
+		      <0x0 0xc0000000 0x40000000>;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&key_volup &key_voldown &key_power>;
+
+		volup-key {
+			label = "Volume Up";
+			linux,code = <KEY_VOLUMEUP>;
+			gpios = <&gpa1 5 GPIO_ACTIVE_LOW>;
+		};
+
+		voldown-key {
+			label = "Volume Down";
+			linux,code = <KEY_VOLUMEDOWN>;
+			gpios = <&gpa1 6 GPIO_ACTIVE_LOW>;
+		};
+
+		power-key {
+			label = "Power";
+			linux,code = <KEY_POWER>;
+			gpios = <&gpa1 7 GPIO_ACTIVE_LOW>;
+			wakeup-source;
+		};
+	};
+};
+
+&mmc_0 {
+	mmc-hs200-1_8v;
+	mmc-hs400-1_8v;
+	cap-mmc-highspeed;
+	non-removable;
+	mmc-hs400-enhanced-strobe;
+	card-detect-delay = <200>;
+	clock-frequency = <800000000>;
+	bus-width = <8>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <0 4>;
+	samsung,dw-mshc-ddr-timing = <2 4>;
+	samsung,dw-mshc-hs400-timing = <0 2>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd0_clk_fast_slew_rate_3x &sd0_cmd &sd0_rdqs
+		     &sd0_bus1 &sd0_bus4 &sd0_bus8>;
+
+	status = "okay";
+};
+
+&oscclk {
+	clock-frequency = <26000000>;
+};
+
+&pinctrl_alive {
+	key_volup: key-volup-pins {
+		samsung,pins = "gpa1-5";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	key_voldown: key-voldown-pins {
+		samsung,pins = "gpa1-6";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	key_power: key-power-pins {
+		samsung,pins = "gpa1-7";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+};

-- 
2.56.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G)
  2026-11-09 20:07 ` [PATCH 2/2] arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G) Umer Uddin via B4 Relay
@ 2026-11-09 20:18   ` sashiko-bot
  0 siblings, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-11-09 20:18 UTC (permalink / raw)
  To: Umer Uddin; +Cc: devicetree, robh, conor+dt

Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [Low] arm64: dts: exynos: chassis-type set to handset instead of
  tablet on gta3xllte
- [Low] arm64: dts: exynos: unused irq.h include and DTS coding style
  ordering
--

commit f760d421e0674fc017d8f648d9b5b6eeebf73f43
Author: Umer Uddin <umer.uddin@mentallysanemainliners.org>

arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G)

This commit adds initial device tree support for the LTE variant of the
Exynos7885-based Samsung Galaxy Tab A 10.1 (2019) tablet.

> diff --git a/arch/arm64/boot/dts/exynos/exynos7885-gta3xllte.dts b/arch/arm64/boot/dts/exynos/exynos7885-gta3xllte.dts
> new file mode 100644
> index 0000000000000..0e4e6c0b20e15
> --- /dev/null
> +++ b/arch/arm64/boot/dts/exynos/exynos7885-gta3xllte.dts
> @@ -0,0 +1,130 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung Galaxy Tab A 10.1 (2019, 4G) (gta3xllte/SM-T515) device tree source
> + *
> + * Copyright (c) 2026, Umer Uddin <umer.uddin@mentallysanemainliners.org>
> + */
> +
> +/dts-v1/;
> +#include "exynos7885.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +/ {
> +	model = "Samsung Galaxy Tab A 10.1 (2019, 4G)";
> +	compatible = "samsung,gta3xllte", "samsung,exynos7885";
> +	chassis-type = "handset";

[Severity: Low]
Should chassis-type be "tablet" instead of "handset"?  The kernel exposes
this property at /sys/firmware/devicetree/base/chassis-type, so "handset"
causes userspace services such as systemd-hostnamed to misidentify this
tablet as a phone.

> +
> +	aliases {
> +		mmc0 = &mmc_0;
> +		serial0 = &serial_0;
> +		serial1 = &serial_1;
> +		serial2 = &serial_2;
> +	};
> +
> +	chosen {
> +		#address-cells = <2>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		framebuffer0: framebuffer@ec000000 {
> +			compatible = "simple-framebuffer";
> +			reg = <0 0xec000000 0x01400000>;
> +			width = <1200>;
> +			height = <1920>;
> +			stride = <(1200 * 4)>;
> +			format = "a8r8g8b8";
> +		};
> +	};
> +
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		cont_splash_mem: framebuffer@ec000000 {
> +			reg = <0 0xec000000 0x01400000>;
> +			no-map;
> +		};
> +	};
> +
> +	memory@80000000 {
> +		device_type = "memory";
> +		reg = <0x0 0x80000000 0x3dd00000>,
> +		      <0x0 0xc0000000 0x40000000>;
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&key_volup &key_voldown &key_power>;
> +
> +		volup-key {
> +			label = "Volume Up";
> +			linux,code = <KEY_VOLUMEUP>;
> +			gpios = <&gpa1 5 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		voldown-key {
> +			label = "Volume Down";
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			gpios = <&gpa1 6 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		power-key {
> +			label = "Power";
> +			linux,code = <KEY_POWER>;
> +			gpios = <&gpa1 7 GPIO_ACTIVE_LOW>;
> +			wakeup-source;
> +		};
> +	};
> +};
> +
> +&mmc_0 {
> +	mmc-hs200-1_8v;
> +	mmc-hs400-1_8v;
> +	cap-mmc-highspeed;
> +	non-removable;
> +	mmc-hs400-enhanced-strobe;
> +	card-detect-delay = <200>;
> +	clock-frequency = <800000000>;
> +	bus-width = <8>;
> +	samsung,dw-mshc-ciu-div = <3>;
> +	samsung,dw-mshc-sdr-timing = <0 4>;
> +	samsung,dw-mshc-ddr-timing = <2 4>;
> +	samsung,dw-mshc-hs400-timing = <0 2>;
> +
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd0_clk_fast_slew_rate_3x &sd0_cmd &sd0_rdqs
> +		     &sd0_bus1 &sd0_bus4 &sd0_bus8>;
> +
> +	status = "okay";
> +};

[Severity: Low]
This isn't a bug, but a few places here deviate from the DTS coding style:

dt-bindings/interrupt-controller/irq.h is included at the top of the file
but never used.

Under the root node, gpio-keys is placed after reserved-memory and
memory@80000000 instead of in alphabetical order, and its child nodes
(volup-key, voldown-key, power-key) are not ordered alphabetically either.

In chosen and reserved-memory, ranges is placed after #address-cells and
#size-cells rather than before standard properties.

In &mmc_0, the standard pinctrl-0 and pinctrl-names properties are placed
after the vendor-specific samsung,dw-mshc-* properties, and pinctrl-names
is placed before pinctrl-0 in both gpio-keys and &mmc_0.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261109-gta3xllte-support-v1-0-dc0c4bfa8b44@mentallysanemainliners.org?part=2

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-11-09 20:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-09 20:07 [PATCH 0/2] Add support for Samsung Galaxy Tab A 10.1 (2019, 4G) Umer Uddin via B4 Relay
2026-11-09 20:07 ` [PATCH 1/2] dt-bindings: arm: samsung: samsung-boards: Add bindings for SM-T515 board Umer Uddin via B4 Relay
2026-11-09 20:07 ` [PATCH 2/2] arm64: exynos: Add initial support for Samsung Galaxy Tab A 10.1 (2019, 4G) Umer Uddin via B4 Relay
2026-11-09 20:18   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox