Re: [PATCH v4] ARM: dts: exynos: Add Samsung Galaxy Tab 3 8.0 boards

From: Krzysztof Kozlowski
Date: Sun Jun 04 2023 - 15:15:45 EST


On 04/06/2023 18:56, Artur Weber wrote:
> Introduce support for the Galaxy Tab 3 8.0 series of boards:
>
> - Samsung Galaxy Tab 3 8.0 WiFi (SM-T310/lt01wifi)
> - Samsung Galaxy Tab 3 8.0 3G (SM-T311/lt013g)
> - Samsung Galaxy Tab 3 8.0 LTE (SM-T315/lt01lte)
>
> What works:
>
> - Display and backlight
> - Touchscreen
> - GPIO buttons, hall sensor
> - WiFi and Bluetooth
> - USB, fuel gauge, charging
> - Accelerometer and magnetometer
> - Audio: speaker, microphone, headset
> - WiFi model only: light sensor
>
> Signed-off-by: Artur Weber <aweber.kernel@xxxxxxxxx>
> ---
> This is an updated version of "[PATCH v3 13/13] ARM: dts: exynos: Add Samsung
> Galaxy Tab 3 8.0 boards"[1].
>
> Changed in v4:
> - Added touchkey keycodes
> - Added audio nodes
> - Added MMC aliases
> - Fixed dtbs_check warnings
> - Fixed indentation in pinctrl sleep state overrides
>
> Changed in v3:
> - Addressed review comments
> - Removed rtc node (RTC is provided by PMIC)
> - Added CPU thermal node
> - Fixed dtbs_check warnings
> - Added common changes from next/dt
>
> Should pass dtbs_check with no errors, provided that the following patches
> are present:
>
> Backlight node is adapted to changes from "[PATCH v2 1/4] dt-bindings:
> backlight: lp855x: convert to YAML and modernize"[2]. The whole patchset
> has been reviewed, waiting for any further reviews or a merge.
>
> Touchkey keycode property is added by "[PATCH 1/2] dt-bindings: mms114: Add
> linux,keycodes property for touch keys"[3]. So far only the bindings part
> of the patch has been acked, otherwise everything is awaiting review.
>
> Display bindings have been added by "[PATCH v5 1/3] dt-bindings: display:
> panel: Add Samsung S6D7AA0 LCD panel controller"[4]. These are already
> reviewed and merged into the DRM tree.
>
> [1] https://lore.kernel.org/linux-devicetree/20230501195525.6268-14-aweber.kernel@xxxxxxxxx/
> [2] https://lore.kernel.org/linux-devicetree/20230519180728.2281-2-aweber.kernel@xxxxxxxxx/
> [3] https://lore.kernel.org/linux-devicetree/20230521145843.19489-2-aweber.kernel@xxxxxxxxx/
> [4] https://lore.kernel.org/linux-devicetree/20230519170354.29610-2-aweber.kernel@xxxxxxxxx/
> ---
> arch/arm/boot/dts/Makefile | 3 +
> arch/arm/boot/dts/exynos4212-tab3-3g8.dts | 29 +
> arch/arm/boot/dts/exynos4212-tab3-lte8.dts | 44 +
> arch/arm/boot/dts/exynos4212-tab3-wifi8.dts | 26 +
> arch/arm/boot/dts/exynos4212-tab3.dtsi | 1303 +++++++++++++++++++
> 5 files changed, 1405 insertions(+)
> create mode 100644 arch/arm/boot/dts/exynos4212-tab3-3g8.dts
> create mode 100644 arch/arm/boot/dts/exynos4212-tab3-lte8.dts
> create mode 100644 arch/arm/boot/dts/exynos4212-tab3-wifi8.dts
> create mode 100644 arch/arm/boot/dts/exynos4212-tab3.dtsi
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 59829fc90315..6a4ca481171e 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -217,6 +217,9 @@ dtb-$(CONFIG_ARCH_EXYNOS4) += \
> exynos4210-smdkv310.dtb \
> exynos4210-trats.dtb \
> exynos4210-universal_c210.dtb \
> + exynos4212-tab3-3g8.dtb \
> + exynos4212-tab3-lte8.dtb \
> + exynos4212-tab3-wifi8.dtb \
> exynos4412-i9300.dtb \
> exynos4412-i9305.dtb \
> exynos4412-itop-elite.dtb \
> diff --git a/arch/arm/boot/dts/exynos4212-tab3-3g8.dts b/arch/arm/boot/dts/exynos4212-tab3-3g8.dts
> new file mode 100644
> index 000000000000..d96b2dd44608
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4212-tab3-3g8.dts
> @@ -0,0 +1,29 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4212 based Galaxy Tab 3 8.0 3G board device tree
> + * source
> + *
> + * Copyright (c) 2013 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com
> + */
> +
> +/dts-v1/;
> +#include "exynos4212-tab3.dtsi"
> +
> +/ {
> + model = "Samsung Galaxy Tab 3 8.0 3G (SM-T311) based on Exynos4212";
> + compatible = "samsung,t311", "samsung,tab3", "samsung,exynos4212", "samsung,exynos4";
> + chassis-type = "tablet";
> +};
> +
> +/* Pin control sleep state overrides */
> +&sleep0 {
> + PIN_SLP(gpb-5, INPUT, UP);
> +};
> +
> +&sleep1 {
> + PIN_SLP(gpl0-0, OUT0, NONE);
> + PIN_SLP(gpl1-0, OUT0, NONE);
> + PIN_SLP(gpl2-4, OUT0, NONE);
> + PIN_SLP(gpm3-3, OUT1, NONE);
> +};
> diff --git a/arch/arm/boot/dts/exynos4212-tab3-lte8.dts b/arch/arm/boot/dts/exynos4212-tab3-lte8.dts
> new file mode 100644
> index 000000000000..bbb398eca7b0
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4212-tab3-lte8.dts
> @@ -0,0 +1,44 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4212 based Galaxy Tab 3 8.0 LTE board device tree
> + * source
> + *
> + * Copyright (c) 2013 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com
> + */
> +
> +/dts-v1/;
> +#include "exynos4212-tab3.dtsi"
> +
> +/ {
> + model = "Samsung Galaxy Tab 3 8.0 LTE (SM-T315) based on Exynos4212";
> + compatible = "samsung,t315", "samsung,tab3", "samsung,exynos4212", "samsung,exynos4";
> + chassis-type = "tablet";
> +};
> +
> +/* Pin control sleep state overrides */
> +&sleep0 {
> + PIN_SLP(gpa0-4, INPUT, UP);
> + PIN_SLP(gpa0-5, INPUT, UP);
> +
> + PIN_SLP(gpb-5, INPUT, UP);
> +
> + PIN_SLP(gpc0-0, PREV, NONE);
> + PIN_SLP(gpc1-3, INPUT, NONE);
> +
> + PIN_SLP(gpf1-6, INPUT, NONE);
> + PIN_SLP(gpf2-2, PREV, NONE);
> +};
> +
> +&sleep1 {
> + PIN_SLP(gpl0-0, PREV, NONE);
> +
> + PIN_SLP(gpl1-0, PREV, NONE);
> +
> + PIN_SLP(gpl2-1, INPUT, DOWN);
> + PIN_SLP(gpl2-2, INPUT, DOWN);
> + PIN_SLP(gpl2-4, OUT0, NONE);
> + PIN_SLP(gpl2-5, PREV, NONE);
> +
> + PIN_SLP(gpm3-3, OUT1, NONE);
> +};
> diff --git a/arch/arm/boot/dts/exynos4212-tab3-wifi8.dts b/arch/arm/boot/dts/exynos4212-tab3-wifi8.dts
> new file mode 100644
> index 000000000000..54cb01703b60
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4212-tab3-wifi8.dts
> @@ -0,0 +1,26 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4212 based Galaxy Tab 3 8.0 WiFi board device tree
> + * source
> + *
> + * Copyright (c) 2013 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com
> + */
> +
> +/dts-v1/;
> +#include "exynos4212-tab3.dtsi"
> +
> +/ {
> + model = "Samsung Galaxy Tab 3 8.0 WiFi (SM-T310) based on Exynos4212";
> + compatible = "samsung,t310", "samsung,tab3", "samsung,exynos4212", "samsung,exynos4";
> + chassis-type = "tablet";
> +};
> +
> +&i2c_lightsensor {
> + status = "okay";
> +
> + lightsensor@10 {
> + compatible = "capella,cm3323";
> + reg = <0x10>;
> + };
> +};
> diff --git a/arch/arm/boot/dts/exynos4212-tab3.dtsi b/arch/arm/boot/dts/exynos4212-tab3.dtsi
> new file mode 100644
> index 000000000000..e014100e11f8
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4212-tab3.dtsi
> @@ -0,0 +1,1303 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4212 based Galaxy Tab 3 board common source
> + *
> + * Copyright (c) 2013 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com
> + */
> +
> +/dts-v1/;
> +#include "exynos4212.dtsi"
> +#include "exynos4412-ppmu-common.dtsi"
> +#include "exynos-mfc-reserved-memory.dtsi"
> +#include <dt-bindings/clock/samsung,s2mps11.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/input/gpio-keys.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include "exynos-pinctrl.h"
> +
> +/*
> + * This device does not use the built-in RTC; instead, the RTC in the
> + * S5M8786 PMIC is used instead. Remove the unused node to avoid DTB check
> + * warnings.
> + */
> +/delete-node/ &rtc;

This is not the solution. The S3C RTC is there. Just like all other
boards we have two RTCs and DTS should be complete. Definitely you
should not remove something just because there were warnings. Instead
warnings should be fixed.

Best regards,
Krzysztof