On 07/02/2022 00:18, David Virag wrote: > Add initial Exynos7885 device tree nodes with dts for the Samsung Galaxy > A8 (2018), a.k.a. "jackpotlte", with model number "SM-A530F". > Currently this includes some clock support, UART support, and I2C nodes. > > Signed-off-by: David Virag <virag.david003@xxxxxxxxx> > --- > Changes in v2: > - Remove address-cells, and size-cells from dts, since they are > already in the dtsi. > - Lower case hex in memory node > - Fix node names with underscore instead of hyphen > - Fix line breaks > - Fix "-key" missing from gpio keys node names > - Use the form without "key" in gpio key labels on all keys > - Suffix pin configuration node names with "-pins" > - Remove "fimc_is_mclk" nodes from pinctrl dtsi for now > - Use macros for "samsung,pin-con-pdn", and "samsung,pin-con-pdn" > - Add comment about Arm PMU > - Rename "clock-oscclk" to "osc-clock" > - Include exynos-syscon-restart.dtsi instead of rewriting its contents > > Changes in v3: > - Fix typo (seperate -> separate) > > Changes in v4: > - Fixed leading 0x in clock-controller nodes > - Actually suffixed pin configuration node names with "-pins" > - Seperated Cortex-A53 and Cortex-A73 PMU > > Changes in v5: > - Use "-gpio-bank" suffix in gpio bank nodes > - Remove interrupts from gpio-keys > - Move oscclk clock-frequency to board dts > - Seperate cmu_core clock names into 4 lines > - Use EXYNOS5420_PIN_DRV_LVx macros > - Add missing include from pinctrl dtsi > - Drop decon pinctrl nodes > - Order pinctrls by addresses > > arch/arm64/boot/dts/exynos/Makefile | 7 +- > .../boot/dts/exynos/exynos7885-jackpotlte.dts | 93 ++ > .../boot/dts/exynos/exynos7885-pinctrl.dtsi | 855 ++++++++++++++++++ > arch/arm64/boot/dts/exynos/exynos7885.dtsi | 440 +++++++++ > 4 files changed, 1392 insertions(+), 3 deletions(-) > create mode 100644 arch/arm64/boot/dts/exynos/exynos7885-jackpotlte.dts > create mode 100644 arch/arm64/boot/dts/exynos/exynos7885-pinctrl.dtsi > create mode 100644 arch/arm64/boot/dts/exynos/exynos7885.dtsi > Tried to apply and there was a conflict in Makefile, so this looks like based on something wrong. Patches should be based on maintainer's tree, which can be easily achieved by basing just on linux-next. Anyway, I fixed the conflicts but it fails new pinctrl schema (already in next) with few errors. This looks like the same error exynos850 had: https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git/commit/?h=next/dt64&id=daeb1c2b50fb98118d6318b5fdbd9ef9bdfaeaf5 also maybe: https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git/commit/?h=next/dt64&id=f377d4d4beafca755d2b6e6368895b1f3fb383c6 DTSI or schema might need adjustement. > diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile > index b41e86df0a84..c68c4ad577ac 100644 > --- a/arch/arm64/boot/dts/exynos/Makefile > +++ b/arch/arm64/boot/dts/exynos/Makefile > @@ -1,6 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0 > dtb-$(CONFIG_ARCH_EXYNOS) += \ > - exynos5433-tm2.dtb \ > - exynos5433-tm2e.dtb \ > - exynos7-espresso.dtb \ > + exynos5433-tm2.dtb \ > + exynos5433-tm2e.dtb \ > + exynos7-espresso.dtb \ > + exynos7885-jackpotlte.dtb \ Please rebase. > exynosautov9-sadk.dtb > diff --git a/arch/arm64/boot/dts/exynos/exynos7885-jackpotlte.dts b/arch/arm64/boot/dts/exynos/exynos7885-jackpotlte.dts > new file mode 100644 > index 000000000000..d707dba906d1 > --- /dev/null > +++ b/arch/arm64/boot/dts/exynos/exynos7885-jackpotlte.dts > @@ -0,0 +1,93 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Samsung Galaxy A8 2018 (jackpotlte/SM-A530F) device tree source > + * > + * Copyright (c) 2021 Samsung Electronics Co., Ltd. > + * Copyright (c) 2021 Dávid Virág > + * No need for blank line. > + */ > + > +/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 A8 (2018)"; > + compatible = "samsung,jackpotlte", "samsung,exynos7885"; > + chassis-type = "handset"; > + > + aliases { > + serial0 = &serial_0; > + serial1 = &serial_1; > + serial2 = &serial_2; > + }; > + > + chosen { > + stdout-path = &serial_2; > + }; > + > + memory@80000000 { > + device_type = "memory"; > + reg = <0x0 0x80000000 0x3da00000>, > + <0x0 0xc0000000 0x40000000>, > + <0x8 0x80000000 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; > + }; > + }; > +}; > + > +&serial_2 { > + status = "okay"; > +}; > + > +&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>; > + }; > +}; > + > +&oscclk { Order overriden nodes alphabeticall by label name, so (ossclk, pinctrl_alive, serial). Best regards, Krzysztof