From 638391bb9e83dcdbd9cc849afb9e55d9af07d43a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Duje=20Mihanovi=C4=87?= Date: Sun, 27 Apr 2025 20:15:13 +0200 Subject: [PATCH] linux-samsung-coreprimevelte: use patch files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bundle patch files with the aport instead of using a custom tarball. This allows using official tarballs and also gives more transparency. Besides this, there's other small changes: * Update to 6.14.4 * Add zstd to makedepends (fixes compile error) * Drop unneeded CC assignment * Drop unneeded mkdir call (nitpick from pmaports!6409) Signed-off-by: Duje Mihanović Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6459 [ci:skip-build]: already built successfully in CI --- ...indings-marvell-Document-PXA1908-SoC.patch | 35 + ...atforms-Add-config-for-Marvell-PXA19.patch | 38 + ...S-for-Marvell-PXA1908-and-samsung-co.patch | 679 ++++++++++++++++++ ...myself-as-Marvell-PXA1908-maintainer.patch | 38 + ...iex-document-use-with-the-SD8777-chi.patch | 38 + ...x-add-support-for-the-SD8777-chipset.patch | 117 +++ ..._sdio-Add-support-for-SD8777-chipset.patch | 73 ++ .../0008-fill-in-dt-nodes.patch | 367 ++++++++++ ...c-host-Disable-Tuning-failed-message.patch | 27 + .../linux-samsung-coreprimevelte/APKBUILD | 45 +- .../config-samsung-coreprimevelte.aarch64 | 5 +- 11 files changed, 1449 insertions(+), 13 deletions(-) create mode 100644 device/community/linux-samsung-coreprimevelte/0001-dt-bindings-marvell-Document-PXA1908-SoC.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0002-arm64-Kconfig.platforms-Add-config-for-Marvell-PXA19.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0003-arm64-dts-Add-DTS-for-Marvell-PXA1908-and-samsung-co.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0004-MAINTAINERS-add-myself-as-Marvell-PXA1908-maintainer.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0005-dt-bindings-mwifiex-document-use-with-the-SD8777-chi.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0006-net-mwifiex-add-support-for-the-SD8777-chipset.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0007-Bluetooth-btmrvl_sdio-Add-support-for-SD8777-chipset.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0008-fill-in-dt-nodes.patch create mode 100644 device/community/linux-samsung-coreprimevelte/0009-DONOTMERGE-mmc-host-Disable-Tuning-failed-message.patch diff --git a/device/community/linux-samsung-coreprimevelte/0001-dt-bindings-marvell-Document-PXA1908-SoC.patch b/device/community/linux-samsung-coreprimevelte/0001-dt-bindings-marvell-Document-PXA1908-SoC.patch new file mode 100644 index 000000000..1bc097b15 --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0001-dt-bindings-marvell-Document-PXA1908-SoC.patch @@ -0,0 +1,35 @@ +From 190ff7d174393b29010f152f4281fed9423e7556 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duje=20Mihanovi=C4=87?= +Date: Fri, 21 Jul 2023 22:37:51 +0200 +Subject: [PATCH 01/10] dt-bindings: marvell: Document PXA1908 SoC +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add dt binding for the Marvell PXA1908 SoC. + +Reviewed-by: Krzysztof Kozlowski +Signed-off-by: Duje Mihanović +--- + Documentation/devicetree/bindings/arm/mrvl/mrvl.yaml | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/Documentation/devicetree/bindings/arm/mrvl/mrvl.yaml b/Documentation/devicetree/bindings/arm/mrvl/mrvl.yaml +index 4c43eaf3632e..f73bb8ec3a1a 100644 +--- a/Documentation/devicetree/bindings/arm/mrvl/mrvl.yaml ++++ b/Documentation/devicetree/bindings/arm/mrvl/mrvl.yaml +@@ -35,6 +35,11 @@ properties: + - enum: + - dell,wyse-ariel + - const: marvell,mmp3 ++ - description: PXA1908 based boards ++ items: ++ - enum: ++ - samsung,coreprimevelte ++ - const: marvell,pxa1908 + + additionalProperties: true + +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0002-arm64-Kconfig.platforms-Add-config-for-Marvell-PXA19.patch b/device/community/linux-samsung-coreprimevelte/0002-arm64-Kconfig.platforms-Add-config-for-Marvell-PXA19.patch new file mode 100644 index 000000000..6cd23a053 --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0002-arm64-Kconfig.platforms-Add-config-for-Marvell-PXA19.patch @@ -0,0 +1,38 @@ +From e36e75d3689f0226b2c1c6e1dc1d9e3105d5591b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duje=20Mihanovi=C4=87?= +Date: Fri, 21 Jul 2023 22:37:49 +0200 +Subject: [PATCH 02/10] arm64: Kconfig.platforms: Add config for Marvell + PXA1908 platform +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add ARCH_MMP configuration option for Marvell PXA1908 SoC. + +Signed-off-by: Duje Mihanović +--- + arch/arm64/Kconfig.platforms | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms +index 02f9248f7c84..5cca61f4f4d7 100644 +--- a/arch/arm64/Kconfig.platforms ++++ b/arch/arm64/Kconfig.platforms +@@ -178,6 +178,14 @@ config ARCH_MESON + This enables support for the arm64 based Amlogic SoCs + such as the s905, S905X/D, S912, A113X/D or S905X/D2 + ++config ARCH_MMP ++ bool "Marvell MMP SoC Family" ++ select PINCTRL ++ select PINCTRL_SINGLE ++ help ++ This enables support for Marvell MMP SoC family, currently ++ supporting PXA1908 aka IAP140. ++ + config ARCH_MVEBU + bool "Marvell EBU SoC Family" + select ARMADA_AP806_SYSCON +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0003-arm64-dts-Add-DTS-for-Marvell-PXA1908-and-samsung-co.patch b/device/community/linux-samsung-coreprimevelte/0003-arm64-dts-Add-DTS-for-Marvell-PXA1908-and-samsung-co.patch new file mode 100644 index 000000000..a31378afb --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0003-arm64-dts-Add-DTS-for-Marvell-PXA1908-and-samsung-co.patch @@ -0,0 +1,679 @@ +From dcf05aef367d2b591d506fc81491e7c9fa113a3c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duje=20Mihanovi=C4=87?= +Date: Fri, 21 Jul 2023 22:37:50 +0200 +Subject: [PATCH 03/10] arm64: dts: Add DTS for Marvell PXA1908 and + samsung,coreprimevelte +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add DTS for Marvell PXA1908 SoC and Samsung Galaxy Core Prime Value +Edition LTE, a smartphone based on said SoC. + +Signed-off-by: Duje Mihanović +--- + arch/arm64/boot/dts/marvell/Makefile | 3 + + .../pxa1908-samsung-coreprimevelte.dts | 332 ++++++++++++++++++ + arch/arm64/boot/dts/marvell/pxa1908.dtsi | 300 ++++++++++++++++ + 3 files changed, 635 insertions(+) + create mode 100644 arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts + create mode 100644 arch/arm64/boot/dts/marvell/pxa1908.dtsi + +diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile +index ce751b5028e2..39c5749e631d 100644 +--- a/arch/arm64/boot/dts/marvell/Makefile ++++ b/arch/arm64/boot/dts/marvell/Makefile +@@ -32,3 +32,6 @@ dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-base.dtb + dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-pro.dtb + dtb-$(CONFIG_ARCH_MVEBU) += cn9131-cf-solidwan.dtb + dtb-$(CONFIG_ARCH_MVEBU) += cn9132-clearfog.dtb ++ ++# MMP SoC Family ++dtb-$(CONFIG_ARCH_MMP) += pxa1908-samsung-coreprimevelte.dtb +diff --git a/arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts b/arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts +new file mode 100644 +index 000000000000..b9ae01587c49 +--- /dev/null ++++ b/arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts +@@ -0,0 +1,332 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++#include "pxa1908.dtsi" ++#include ++#include ++ ++/ { ++ model = "Samsung Galaxy Core Prime VE LTE"; ++ compatible = "samsung,coreprimevelte", "marvell,pxa1908"; ++ ++ aliases { ++ mmc0 = &sdh2; /* eMMC */ ++ mmc1 = &sdh0; /* SD card */ ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ ++ stdout-path = "serial0:115200n8"; ++ ++ fb0: framebuffer@17177000 { ++ compatible = "simple-framebuffer"; ++ reg = <0 0x17177000 0 (480 * 800 * 4)>; ++ width = <480>; ++ height = <800>; ++ stride = <(480 * 4)>; ++ format = "a8r8g8b8"; ++ }; ++ }; ++ ++ /* Bootloader fills this in */ ++ memory { ++ device_type = "memory"; ++ reg = <0 0 0 0>; ++ }; ++ ++ reserved-memory { ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ ++ framebuffer@17000000 { ++ reg = <0 0x17000000 0 0x1800000>; ++ no-map; ++ }; ++ ++ gpu@9000000 { ++ reg = <0 0x9000000 0 0x1000000>; ++ }; ++ ++ /* Communications processor, aka modem */ ++ cp@5000000 { ++ reg = <0 0x5000000 0 0x3000000>; ++ }; ++ ++ cm3@a000000 { ++ reg = <0 0xa000000 0 0x80000>; ++ }; ++ ++ seclog@8000000 { ++ reg = <0 0x8000000 0 0x100000>; ++ }; ++ ++ ramoops@8100000 { ++ compatible = "ramoops"; ++ reg = <0 0x8100000 0 0x40000>; ++ record-size = <0x8000>; ++ console-size = <0x20000>; ++ max-reason = <5>; ++ }; ++ }; ++ ++ ++ i2c-muic { ++ compatible = "i2c-gpio"; ++ sda-gpios = <&gpio 30 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; ++ scl-gpios = <&gpio 29 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; ++ i2c-gpio,delay-us = <3>; ++ i2c-gpio,timeout-ms = <100>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c_muic_pins>; ++ ++ muic: extcon@14 { ++ compatible = "siliconmitus,sm5504-muic"; ++ reg = <0x14>; ++ interrupt-parent = <&gpio>; ++ interrupts = <0 IRQ_TYPE_EDGE_FALLING>; ++ }; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&gpio_keys_pins>; ++ autorepeat; ++ ++ key-home { ++ label = "Home"; ++ linux,code = ; ++ gpios = <&gpio 50 GPIO_ACTIVE_LOW>; ++ }; ++ ++ key-volup { ++ label = "Volume Up"; ++ linux,code = ; ++ gpios = <&gpio 16 GPIO_ACTIVE_LOW>; ++ }; ++ ++ key-voldown { ++ label = "Volume Down"; ++ linux,code = ; ++ gpios = <&gpio 17 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++&smmu { ++ status = "okay"; ++}; ++ ++&pmx { ++ pinctrl-single,gpio-range = <&range 55 55 0>, ++ <&range 110 32 0>, ++ <&range 52 1 0>; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&board_pins_0 &board_pins_1 &board_pins_2>; ++ ++ board_pins_0: board-pins-0 { ++ pinctrl-single,pins = < ++ 0x160 0 ++ 0x164 0 ++ 0x168 0 ++ 0x16c 0 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0x288 0x388>; ++ }; ++ ++ board_pins_1: board-pins-1 { ++ pinctrl-single,pins = < ++ 0x44 1 ++ 0x48 1 ++ 0x20 1 ++ 0x18 1 ++ 0x14 1 ++ 0x10 1 ++ 0xc 1 ++ 0x8 1 ++ 0x68 1 ++ 0x58 0 ++ 0x54 0 ++ 0x7c 0 ++ 0x6c 0 ++ 0x70 0 ++ 0x4c 1 ++ 0x50 1 ++ 0xac 0 ++ 0x90 0 ++ 0x8c 0 ++ 0x88 0 ++ 0x84 0 ++ 0xc8 0 ++ 0x128 0 ++ 0x190 0 ++ 0x194 0 ++ 0x1a0 0 ++ 0x114 0 ++ 0x118 0 ++ 0x1d8 0 ++ 0x1e4 0 ++ 0xe8 0 ++ 0x100 0 ++ 0x204 0 ++ 0x210 0 ++ 0x218 0 ++ >; ++ pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xc000>; ++ pinctrl-single,low-power-mode = <0x288 0x388>; ++ }; ++ ++ board_pins_2: board-pins-2 { ++ pinctrl-single,pins = < ++ 0x260 0 ++ 0x264 0 ++ 0x268 0 ++ 0x26c 0 ++ 0x270 0 ++ 0x274 0 ++ 0x78 0 ++ 0x74 0 ++ 0xb0 1 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ uart0_pins: uart0-pins { ++ pinctrl-single,pins = < ++ 0x198 6 ++ 0x19c 6 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ gpio_keys_pins: gpio-keys-pins { ++ pinctrl-single,pins = < ++ 0x11c 0 ++ 0x120 0 ++ 0x1a4 0 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0xa0000 0x8000 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ i2c_muic_pins: i2c-muic-pins { ++ pinctrl-single,pins = < ++ 0x154 0 ++ 0x150 0 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0x288 0x388>; ++ }; ++ ++ sdh0_pins_0: sdh0-pins-0 { ++ pinctrl-single,pins = < ++ 0x108 0 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh0_pins_1: sdh0-pins-1 { ++ pinctrl-single,pins = < ++ 0x94 0 ++ 0x98 0 ++ 0x9c 0 ++ 0xa0 0 ++ 0xa4 0 ++ >; ++ pinctrl-single,drive-strength = <0x800 0x1800>; ++ pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh0_pins_2: sdh0-pins-2 { ++ pinctrl-single,pins = < ++ 0xa8 0 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0x208 0x388>; ++ }; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_pins>; ++}; ++ ++&twsi0 { ++ status = "okay"; ++}; ++ ++&twsi1 { ++ status = "okay"; ++}; ++ ++&twsi2 { ++ status = "okay"; ++}; ++ ++&twsi3 { ++ status = "okay"; ++}; ++ ++&usb { ++ extcon = <&muic>, <&muic>; ++}; ++ ++&sdh2 { ++ /* Disabled for now because initialization fails with -ETIMEDOUT. */ ++ status = "disabled"; ++ bus-width = <8>; ++ non-removable; ++ mmc-ddr-1_8v; ++}; ++ ++&sdh0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdh0_pins_0 &sdh0_pins_1 &sdh0_pins_2>; ++ cd-gpios = <&gpio 11 0>; ++ cd-inverted; ++ bus-width = <4>; ++ wp-inverted; ++}; +diff --git a/arch/arm64/boot/dts/marvell/pxa1908.dtsi b/arch/arm64/boot/dts/marvell/pxa1908.dtsi +new file mode 100644 +index 000000000000..cf2b9109688c +--- /dev/null ++++ b/arch/arm64/boot/dts/marvell/pxa1908.dtsi +@@ -0,0 +1,300 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++/dts-v1/; ++ ++#include ++#include ++ ++/ { ++ model = "Marvell Armada PXA1908"; ++ compatible = "marvell,pxa1908"; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ interrupt-parent = <&gic>; ++ ++ cpus { ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ cpu0: cpu@0 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <0 0>; ++ enable-method = "psci"; ++ }; ++ ++ cpu1: cpu@1 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <0 1>; ++ enable-method = "psci"; ++ }; ++ ++ cpu2: cpu@2 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <0 2>; ++ enable-method = "psci"; ++ }; ++ ++ cpu3: cpu@3 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <0 3>; ++ enable-method = "psci"; ++ }; ++ }; ++ ++ pmu { ++ compatible = "arm,cortex-a53-pmu"; ++ interrupts = , ++ , ++ , ++ ; ++ interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; ++ }; ++ ++ psci { ++ compatible = "arm,psci-0.2"; ++ method = "smc"; ++ }; ++ ++ timer { ++ compatible = "arm,armv8-timer"; ++ interrupts = , ++ , ++ , ++ ; ++ }; ++ ++ soc { ++ compatible = "simple-bus"; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ ++ smmu: iommu@c0010000 { ++ compatible = "arm,mmu-400"; ++ reg = <0 0xc0010000 0 0x10000>; ++ #global-interrupts = <1>; ++ #iommu-cells = <1>; ++ interrupts = , ++ ; ++ status = "disabled"; ++ }; ++ ++ gic: interrupt-controller@d1df9000 { ++ compatible = "arm,gic-400"; ++ reg = <0 0xd1df9000 0 0x1000>, ++ <0 0xd1dfa000 0 0x2000>, ++ /* The subsequent registers are guesses. */ ++ <0 0xd1dfc000 0 0x2000>, ++ <0 0xd1dfe000 0 0x2000>; ++ interrupts = ; ++ interrupt-controller; ++ #interrupt-cells = <3>; ++ }; ++ ++ apb@d4000000 { ++ compatible = "simple-bus"; ++ reg = <0 0xd4000000 0 0x200000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges = <0 0 0xd4000000 0x200000>; ++ ++ pdma: dma-controller@0 { ++ compatible = "marvell,pdma-1.0"; ++ reg = <0 0x10000>; ++ interrupts = ; ++ dma-channels = <30>; ++ #dma-cells = <2>; ++ }; ++ ++ twsi1: i2c@10800 { ++ compatible = "mrvl,mmp-twsi"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0x10800 0x64>; ++ interrupts = ; ++ clocks = <&apbc PXA1908_CLK_TWSI1>; ++ mrvl,i2c-fast-mode; ++ status = "disabled"; ++ }; ++ ++ twsi0: i2c@11000 { ++ compatible = "mrvl,mmp-twsi"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0x11000 0x64>; ++ interrupts = ; ++ clocks = <&apbc PXA1908_CLK_TWSI0>; ++ mrvl,i2c-fast-mode; ++ status = "disabled"; ++ }; ++ ++ twsi3: i2c@13800 { ++ compatible = "mrvl,mmp-twsi"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0x13800 0x64>; ++ interrupts = ; ++ clocks = <&apbc PXA1908_CLK_TWSI3>; ++ mrvl,i2c-fast-mode; ++ status = "disabled"; ++ }; ++ ++ apbc: clock-controller@15000 { ++ compatible = "marvell,pxa1908-apbc"; ++ reg = <0x15000 0x1000>; ++ #clock-cells = <1>; ++ }; ++ ++ uart0: serial@17000 { ++ compatible = "mrvl,mmp-uart", "intel,xscale-uart"; ++ reg = <0x17000 0x1000>; ++ interrupts = ; ++ clocks = <&apbc PXA1908_CLK_UART0>; ++ reg-shift = <2>; ++ }; ++ ++ uart1: serial@18000 { ++ compatible = "mrvl,mmp-uart", "intel,xscale-uart"; ++ reg = <0x18000 0x1000>; ++ interrupts = ; ++ clocks = <&apbc PXA1908_CLK_UART1>; ++ reg-shift = <2>; ++ }; ++ ++ gpio: gpio@19000 { ++ compatible = "marvell,mmp-gpio"; ++ reg = <0x19000 0x800>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ clocks = <&apbc PXA1908_CLK_GPIO>; ++ interrupts = ; ++ interrupt-names = "gpio_mux"; ++ interrupt-controller; ++ #interrupt-cells = <2>; ++ ranges = <0 0x19000 0x800>; ++ ++ gpio@0 { ++ reg = <0x0 0x4>; ++ }; ++ ++ gpio@4 { ++ reg = <0x4 0x4>; ++ }; ++ ++ gpio@8 { ++ reg = <0x8 0x4>; ++ }; ++ ++ gpio@100 { ++ reg = <0x100 0x4>; ++ }; ++ }; ++ ++ pmx: pinmux@1e000 { ++ compatible = "marvell,pxa1908-padconf", "pinconf-single"; ++ reg = <0x1e000 0x330>; ++ ++ #pinctrl-cells = <1>; ++ pinctrl-single,register-width = <32>; ++ pinctrl-single,function-mask = <7>; ++ ++ range: gpio-range { ++ #pinctrl-single,gpio-range-cells = <3>; ++ }; ++ }; ++ ++ uart2: serial@36000 { ++ compatible = "mrvl,mmp-uart", "intel,xscale-uart"; ++ reg = <0x36000 0x1000>; ++ interrupts = ; ++ clocks = <&apbcp PXA1908_CLK_UART2>; ++ reg-shift = <2>; ++ }; ++ ++ twsi2: i2c@37000 { ++ compatible = "mrvl,mmp-twsi"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0x37000 0x64>; ++ interrupts = ; ++ clocks = <&apbcp PXA1908_CLK_TWSI2>; ++ mrvl,i2c-fast-mode; ++ status = "disabled"; ++ }; ++ ++ apbcp: clock-controller@3b000 { ++ compatible = "marvell,pxa1908-apbcp"; ++ reg = <0x3b000 0x1000>; ++ #clock-cells = <1>; ++ }; ++ ++ mpmu: clock-controller@50000 { ++ compatible = "marvell,pxa1908-mpmu"; ++ reg = <0x50000 0x1000>; ++ #clock-cells = <1>; ++ }; ++ }; ++ ++ axi@d4200000 { ++ compatible = "simple-bus"; ++ reg = <0 0xd4200000 0 0x200000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges = <0 0 0xd4200000 0x200000>; ++ ++ usbphy: phy@7000 { ++ compatible = "marvell,pxa1928-usb-phy"; ++ reg = <0x7000 0x200>; ++ clocks = <&apmu PXA1908_CLK_USB>; ++ #phy-cells = <0>; ++ }; ++ ++ usb: usb@8000 { ++ compatible = "chipidea,usb2"; ++ reg = <0x8000 0x200>; ++ interrupts = ; ++ clocks = <&apmu PXA1908_CLK_USB>; ++ phys = <&usbphy>; ++ phy-names = "usb-phy"; ++ }; ++ ++ sdh0: mmc@80000 { ++ compatible = "mrvl,pxav3-mmc"; ++ reg = <0x80000 0x120>; ++ interrupts = ; ++ clocks = <&apmu PXA1908_CLK_SDH0>; ++ clock-names = "io"; ++ mrvl,clk-delay-cycles = <31>; ++ }; ++ ++ sdh1: mmc@80800 { ++ compatible = "mrvl,pxav3-mmc"; ++ reg = <0x80800 0x120>; ++ interrupts = ; ++ clocks = <&apmu PXA1908_CLK_SDH1>; ++ clock-names = "io"; ++ mrvl,clk-delay-cycles = <31>; ++ }; ++ ++ sdh2: mmc@81000 { ++ compatible = "mrvl,pxav3-mmc"; ++ reg = <0x81000 0x120>; ++ interrupts = ; ++ clocks = <&apmu PXA1908_CLK_SDH2>; ++ clock-names = "io"; ++ mrvl,clk-delay-cycles = <31>; ++ }; ++ ++ apmu: clock-controller@82800 { ++ compatible = "marvell,pxa1908-apmu"; ++ reg = <0x82800 0x400>; ++ #clock-cells = <1>; ++ }; ++ }; ++ }; ++}; +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0004-MAINTAINERS-add-myself-as-Marvell-PXA1908-maintainer.patch b/device/community/linux-samsung-coreprimevelte/0004-MAINTAINERS-add-myself-as-Marvell-PXA1908-maintainer.patch new file mode 100644 index 000000000..be153a848 --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0004-MAINTAINERS-add-myself-as-Marvell-PXA1908-maintainer.patch @@ -0,0 +1,38 @@ +From ba2b00d1d612aad8a30b6e5e9be05f646d31eae3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duje=20Mihanovi=C4=87?= +Date: Fri, 21 Jul 2023 22:37:52 +0200 +Subject: [PATCH 04/10] MAINTAINERS: add myself as Marvell PXA1908 maintainer +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add myself as the maintainer for Marvell PXA1908 SoC support. + +Signed-off-by: Duje Mihanović +--- + MAINTAINERS | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/MAINTAINERS b/MAINTAINERS +index 00e94bec401e..09ff1ea93aca 100644 +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -2671,6 +2671,15 @@ F: drivers/irqchip/irq-mvebu-* + F: drivers/pinctrl/mvebu/ + F: drivers/rtc/rtc-armada38x.c + ++ARM/Marvell PXA1908 SOC support ++M: Duje Mihanović ++L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) ++S: Maintained ++T: git https://gitlab.com/LegoLivesMatter/linux ++F: arch/arm64/boot/dts/marvell/pxa1908* ++F: drivers/clk/mmp/clk-pxa1908*.c ++F: include/dt-bindings/clock/marvell,pxa1908.h ++ + ARM/Mediatek RTC DRIVER + M: Eddie Huang + M: Sean Wang +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0005-dt-bindings-mwifiex-document-use-with-the-SD8777-chi.patch b/device/community/linux-samsung-coreprimevelte/0005-dt-bindings-mwifiex-document-use-with-the-SD8777-chi.patch new file mode 100644 index 000000000..324f1b176 --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0005-dt-bindings-mwifiex-document-use-with-the-SD8777-chi.patch @@ -0,0 +1,38 @@ +From a6e97443320fca535c1b43f6dff27a41f7ac746e Mon Sep 17 00:00:00 2001 +From: Karel Balej +Date: Sat, 28 Oct 2023 13:04:01 +0200 +Subject: [PATCH 05/10] dt-bindings: mwifiex: document use with the SD8777 + chipset + +Document the corresponding compatible string for the use of this driver +with the Marvell SD8777 wireless chipset. + +Signed-off-by: Karel Balej +--- + .../devicetree/bindings/net/wireless/marvell,sd8787.yaml | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Documentation/devicetree/bindings/net/wireless/marvell,sd8787.yaml b/Documentation/devicetree/bindings/net/wireless/marvell,sd8787.yaml +index 930b700b73d0..4f1c231bae01 100644 +--- a/Documentation/devicetree/bindings/net/wireless/marvell,sd8787.yaml ++++ b/Documentation/devicetree/bindings/net/wireless/marvell,sd8787.yaml +@@ -4,7 +4,7 @@ + $id: http://devicetree.org/schemas/net/wireless/marvell,sd8787.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# + +-title: Marvell 8787/8897/8978/8997 (sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices ++title: Marvell 8777/8787/8897/8978/8997 (sd8777/sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices + + maintainers: + - Brian Norris +@@ -18,6 +18,7 @@ description: + properties: + compatible: + enum: ++ - marvell,sd8777 + - marvell,sd8787 + - marvell,sd8897 + - marvell,sd8978 +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0006-net-mwifiex-add-support-for-the-SD8777-chipset.patch b/device/community/linux-samsung-coreprimevelte/0006-net-mwifiex-add-support-for-the-SD8777-chipset.patch new file mode 100644 index 000000000..424fd293a --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0006-net-mwifiex-add-support-for-the-SD8777-chipset.patch @@ -0,0 +1,117 @@ +From d573a9b9731267edd933edca7edae50b2254b777 Mon Sep 17 00:00:00 2001 +From: Karel Balej +Date: Sat, 28 Oct 2023 13:09:06 +0200 +Subject: [PATCH 06/10] net: mwifiex: add support for the SD8777 chipset + +Marvell SD8777 is a wireless chipset used for instance in the PXA1908 +SoC found for example in the samsung,coreprimevelte smartphone, with +which this was tested. The driver seems to be compatible with this +chipset so enable this support by adding the necessary information based +on the downstream code. + +Signed-off-by: Karel Balej +--- + drivers/net/wireless/marvell/mwifiex/Kconfig | 4 ++-- + drivers/net/wireless/marvell/mwifiex/sdio.c | 19 +++++++++++++++++++ + drivers/net/wireless/marvell/mwifiex/sdio.h | 1 + + include/linux/mmc/sdio_ids.h | 1 + + 4 files changed, 23 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/wireless/marvell/mwifiex/Kconfig b/drivers/net/wireless/marvell/mwifiex/Kconfig +index b182f7155d66..a7bd2c5735f6 100644 +--- a/drivers/net/wireless/marvell/mwifiex/Kconfig ++++ b/drivers/net/wireless/marvell/mwifiex/Kconfig +@@ -10,13 +10,13 @@ config MWIFIEX + mwifiex. + + config MWIFIEX_SDIO +- tristate "Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897/SD8977/SD8978/SD8987/SD8997" ++ tristate "Marvell WiFi-Ex Driver for SD8777/SD8786/SD8787/SD8797/SD8887/SD8897/SD8977/SD8978/SD8987/SD8997" + depends on MWIFIEX && MMC + select FW_LOADER + select WANT_DEV_COREDUMP + help + This adds support for wireless adapters based on Marvell +- 8786/8787/8797/8887/8897/8977/8978/8987/8997 chipsets with ++ 8777/8786/8787/8797/8887/8897/8977/8978/8987/8997 chipsets with + SDIO interface. SD8978 is also known as NXP IW416. + + If you choose to build it as a module, it will be called +diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c +index 490ffd981164..48a40a04f50b 100644 +--- a/drivers/net/wireless/marvell/mwifiex/sdio.c ++++ b/drivers/net/wireless/marvell/mwifiex/sdio.c +@@ -318,6 +318,21 @@ static const struct mwifiex_sdio_card_reg mwifiex_reg_sd89xx = { + 0x68, 0x69, 0x6a}, + }; + ++static const struct mwifiex_sdio_device mwifiex_sdio_sd8777 = { ++ .firmware = SD8777_DEFAULT_FW_NAME, ++ .reg = &mwifiex_reg_sd87xx, ++ .max_ports = 16, ++ .mp_agg_pkt_limit = 8, ++ .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K, ++ .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K, ++ .mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K, ++ .supports_sdio_new_mode = false, ++ .has_control_mask = true, ++ .can_dump_fw = false, ++ .can_auto_tdls = false, ++ .can_ext_scan = true, ++}; ++ + static const struct mwifiex_sdio_device mwifiex_sdio_sd8786 = { + .firmware = SD8786_DEFAULT_FW_NAME, + .reg = &mwifiex_reg_sd87xx, +@@ -516,6 +531,7 @@ static struct memory_type_mapping mem_type_mapping_tbl[] = { + }; + + static const struct of_device_id mwifiex_sdio_of_match_table[] __maybe_unused = { ++ { .compatible = "marvell,sd8777" }, + { .compatible = "marvell,sd8787" }, + { .compatible = "marvell,sd8897" }, + { .compatible = "marvell,sd8978" }, +@@ -954,6 +970,8 @@ static void mwifiex_sdio_coredump(struct device *dev) + + /* WLAN IDs */ + static const struct sdio_device_id mwifiex_ids[] = { ++ {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8777_WLAN), ++ .driver_data = (unsigned long)&mwifiex_sdio_sd8777}, + {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8786_WLAN), + .driver_data = (unsigned long) &mwifiex_sdio_sd8786}, + {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8787_WLAN), +@@ -3201,6 +3219,7 @@ MODULE_AUTHOR("Marvell International Ltd."); + MODULE_DESCRIPTION("Marvell WiFi-Ex SDIO Driver version " SDIO_VERSION); + MODULE_VERSION(SDIO_VERSION); + MODULE_LICENSE("GPL v2"); ++MODULE_FIRMWARE(SD8777_DEFAULT_FW_NAME); + MODULE_FIRMWARE(SD8786_DEFAULT_FW_NAME); + MODULE_FIRMWARE(SD8787_DEFAULT_FW_NAME); + MODULE_FIRMWARE(SD8797_DEFAULT_FW_NAME); +diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.h b/drivers/net/wireless/marvell/mwifiex/sdio.h +index 65d142286c46..c6425191ad84 100644 +--- a/drivers/net/wireless/marvell/mwifiex/sdio.h ++++ b/drivers/net/wireless/marvell/mwifiex/sdio.h +@@ -18,6 +18,7 @@ + + #include "main.h" + ++#define SD8777_DEFAULT_FW_NAME "mrvl/sd8777_uapsta.bin" + #define SD8786_DEFAULT_FW_NAME "mrvl/sd8786_uapsta.bin" + #define SD8787_DEFAULT_FW_NAME "mrvl/sd8787_uapsta.bin" + #define SD8797_DEFAULT_FW_NAME "mrvl/sd8797_uapsta.bin" +diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h +index 7cddfdac2f57..c49138fcd79a 100644 +--- a/include/linux/mmc/sdio_ids.h ++++ b/include/linux/mmc/sdio_ids.h +@@ -94,6 +94,7 @@ + #define SDIO_DEVICE_ID_MARVELL_8797_BT 0x912a + #define SDIO_DEVICE_ID_MARVELL_8897_WLAN 0x912d + #define SDIO_DEVICE_ID_MARVELL_8897_BT 0x912e ++#define SDIO_DEVICE_ID_MARVELL_8777_WLAN 0x9131 + #define SDIO_DEVICE_ID_MARVELL_8887_F0 0x9134 + #define SDIO_DEVICE_ID_MARVELL_8887_WLAN 0x9135 + #define SDIO_DEVICE_ID_MARVELL_8887_BT 0x9136 +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0007-Bluetooth-btmrvl_sdio-Add-support-for-SD8777-chipset.patch b/device/community/linux-samsung-coreprimevelte/0007-Bluetooth-btmrvl_sdio-Add-support-for-SD8777-chipset.patch new file mode 100644 index 000000000..8896eb3ae --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0007-Bluetooth-btmrvl_sdio-Add-support-for-SD8777-chipset.patch @@ -0,0 +1,73 @@ +From b44fdb5aee57ce73ed4d694dd53068a941a49e84 Mon Sep 17 00:00:00 2001 +From: blacksilver +Date: Wed, 1 Nov 2023 10:33:06 +0100 +Subject: [PATCH 07/10] Bluetooth: btmrvl_sdio: Add support for SD8777 chipset + +Support for Marvell's chipset SD8777 is added. +Existing btmrvl_reg_87xx register definition is reused. +--- + drivers/bluetooth/btmrvl_sdio.c | 14 ++++++++++++++ + include/linux/mmc/sdio_ids.h | 1 + + 2 files changed, 15 insertions(+) + +diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c +index 07cd308f7abf..44181fef227c 100644 +--- a/drivers/bluetooth/btmrvl_sdio.c ++++ b/drivers/bluetooth/btmrvl_sdio.c +@@ -41,6 +41,7 @@ static struct memory_type_mapping mem_type_mapping_tbl[] = { + }; + + static const struct of_device_id btmrvl_sdio_of_match_table[] __maybe_unused = { ++ { .compatible = "marvell,sd8777-bt" }, + { .compatible = "marvell,sd8897-bt" }, + { .compatible = "marvell,sd8997-bt" }, + { } +@@ -233,6 +234,15 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8688 = { + .supports_fw_dump = false, + }; + ++static const struct btmrvl_sdio_device btmrvl_sdio_sd8777 = { ++ .helper = NULL, ++ .firmware = "mrvl/sd8777_uapsta.bin", ++ .reg = &btmrvl_reg_87xx, ++ .support_pscan_win_report = false, ++ .sd_blksz_fw_dl = 256, ++ .supports_fw_dump = false, ++}; ++ + static const struct btmrvl_sdio_device btmrvl_sdio_sd8787 = { + .helper = NULL, + .firmware = "mrvl/sd8787_uapsta.bin", +@@ -300,6 +310,9 @@ static const struct sdio_device_id btmrvl_sdio_ids[] = { + /* Marvell SD8688 Bluetooth device */ + { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8688_BT), + .driver_data = (unsigned long)&btmrvl_sdio_sd8688 }, ++ /* Marvell SD8777 Bluetooth device */ ++ { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8777_BT), ++ .driver_data = (unsigned long)&btmrvl_sdio_sd8777 }, + /* Marvell SD8787 Bluetooth device */ + { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8787_BT), + .driver_data = (unsigned long)&btmrvl_sdio_sd8787 }, +@@ -1770,6 +1783,7 @@ MODULE_VERSION(VERSION); + MODULE_LICENSE("GPL v2"); + MODULE_FIRMWARE("mrvl/sd8688_helper.bin"); + MODULE_FIRMWARE("mrvl/sd8688.bin"); ++MODULE_FIRMWARE("mrvl/sd8777_uapsta.bin"); + MODULE_FIRMWARE("mrvl/sd8787_uapsta.bin"); + MODULE_FIRMWARE("mrvl/sd8797_uapsta.bin"); + MODULE_FIRMWARE("mrvl/sd8887_uapsta.bin"); +diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h +index c49138fcd79a..57b1a3e69fb6 100644 +--- a/include/linux/mmc/sdio_ids.h ++++ b/include/linux/mmc/sdio_ids.h +@@ -95,6 +95,7 @@ + #define SDIO_DEVICE_ID_MARVELL_8897_WLAN 0x912d + #define SDIO_DEVICE_ID_MARVELL_8897_BT 0x912e + #define SDIO_DEVICE_ID_MARVELL_8777_WLAN 0x9131 ++#define SDIO_DEVICE_ID_MARVELL_8777_BT 0x9132 + #define SDIO_DEVICE_ID_MARVELL_8887_F0 0x9134 + #define SDIO_DEVICE_ID_MARVELL_8887_WLAN 0x9135 + #define SDIO_DEVICE_ID_MARVELL_8887_BT 0x9136 +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0008-fill-in-dt-nodes.patch b/device/community/linux-samsung-coreprimevelte/0008-fill-in-dt-nodes.patch new file mode 100644 index 000000000..b1f306a1d --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0008-fill-in-dt-nodes.patch @@ -0,0 +1,367 @@ +From 6d6d401236ce807f88d61ac76adcca25f4e03dcc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duje=20Mihanovi=C4=87?= +Date: Mon, 25 Dec 2023 22:23:27 +0100 +Subject: [PATCH 08/10] fill in dt nodes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +DONOTMERGE: arm64: dts: samsung,coreprimevelte: add touchscreen + +arm64: dts: samsung,coreprimevelte: Add KTD2801 binding + +Add Kinetic KTD2801 backlight driver binding to samsung,coreprimevelte. + +Signed-off-by: Duje Mihanović + +DONOTMERGE: arm64: dts: samsung,coreprimevelte: add SDIO + +This includes WiFi and Bluetooth. + +arm64: dts: samsung-coreprimevelte: enable eMMC + +arm64: dts: samsung-coreprimevelte: add vibrator +--- + .../pxa1908-samsung-coreprimevelte.dts | 270 +++++++++++++++++- + arch/arm64/boot/dts/marvell/pxa1908.dtsi | 7 + + 2 files changed, 275 insertions(+), 2 deletions(-) + +diff --git a/arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts b/arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts +index b9ae01587c49..d6607194922f 100644 +--- a/arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts ++++ b/arch/arm64/boot/dts/marvell/pxa1908-samsung-coreprimevelte.dts +@@ -10,6 +10,7 @@ / { + aliases { + mmc0 = &sdh2; /* eMMC */ + mmc1 = &sdh0; /* SD card */ ++ mmc2 = &sdh1; /* SDIO */ + serial0 = &uart0; + }; + +@@ -116,6 +117,27 @@ key-voldown { + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + }; ++ ++ backlight { ++ compatible = "kinetic,ktd2801"; ++ ctrl-gpios = <&gpio 97 GPIO_ACTIVE_HIGH>; ++ max-brightness = <210>; ++ }; ++ ++ wlan_pwrseq: pwrseq0 { ++ compatible = "mmc-pwrseq-simple"; ++ powerdown-gpios = <&gpio 57 GPIO_ACTIVE_HIGH>; ++ reset-gpios = <&gpio 58 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ vibrator { ++ compatible = "pwm-vibrator"; ++ pwm-names = "enable"; ++ pwms = <&pwm 100000>; ++ enable-gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vibrator_pin>; ++ }; + }; + + &smmu { +@@ -287,6 +309,162 @@ sdh0_pins_2: sdh0-pins-2 { + pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; + pinctrl-single,low-power-mode = <0x208 0x388>; + }; ++ ++ sdh1_pins_0: sdh1-pins-0 { ++ pinctrl-single,pins = < ++ 0x170 1 ++ 0x174 1 ++ 0x178 1 ++ 0x17c 1 ++ 0x180 1>; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh1_pins_1: sdh1-pins-1 { ++ pinctrl-single,pins = <0x184 1>; ++ pinctrl-single,drive-strength = <0x800 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0x208 0x388>; ++ }; ++ ++ sdh1_pins_2: sdh1-pins-2 { ++ pinctrl-single,pins = <0xec 0>; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh1_edge_wakeup_pin: sdh1-edge-wakeup-pin { ++ pinctrl-single,pins = <0x178 1>; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh1_fast_pins_0: sdh1-fast-pins-0 { ++ pinctrl-single,pins = < ++ 0x170 1 ++ 0x174 1 ++ 0x178 1 ++ 0x17c 1 ++ 0x180 1 ++ >; ++ pinctrl-single,drive-strength = <0x1800 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh1_fast_pins_1: sdh1-fast-pins-1 { ++ pinctrl-single,pins = < ++ 0x184 1 ++ >; ++ pinctrl-single,drive-strength = <0x1800 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0x208 0x388>; ++ }; ++ ++ sdh2_pins_0: sdh2-pins-0 { ++ pinctrl-single,pins = < ++ 0x24 1 ++ 0x28 1 ++ 0x2c 1 ++ 0x30 1 ++ 0x34 1 ++ 0x38 1 ++ 0x3c 1 ++ 0x40 1 ++ >; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh2_pins_1: sdh2-pins-1 { ++ pinctrl-single,pins = <0x64 1>; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0x208 0x388>; ++ }; ++ ++ sdh2_pins_2: sdh2-pins-2 { ++ pinctrl-single,pins = <0x5c 1>; ++ pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; ++ pinctrl-single,low-power-mode = <0x288 0x388>; ++ }; ++ ++ sdh2_fast_pins_0: sdh2-fast-pins-0 { ++ pinctrl-single,pins = < ++ 0x24 1 ++ 0x28 1 ++ 0x2c 1 ++ 0x30 1 ++ 0x34 1 ++ 0x38 1 ++ 0x3c 1 ++ 0x40 1 ++ >; ++ pinctrl-single,drive-strength = <0x1800 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; ++ ++ sdh2_fast_pins_1: sdh2-fast-pins-1 { ++ pinctrl-single,pins = <0x64 1>; ++ pinctrl-single,drive-strength = <0x1800 0x1800>; ++ pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0x208 0x388>; ++ }; ++ ++ sdh2_fast_pins_2: sdh2-fast-pins-2 { ++ pinctrl-single,pins = <0x5c 1>; ++ pinctrl-single,drive-strength = <0x1800 0x1800>; ++ pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; ++ pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; ++ pinctrl-single,low-power-mode = <0x288 0x388>; ++ }; ++ ++ vibrator_pin: vibrator-pin { ++ pinctrl-single,pins = <0x12c 0>; ++ pinctrl-single,drive-strength = <0x1000 0x1800>; ++ pinctrl-single,bias-pullup = <0x8000 0xc000 0x8000 0xc000>; ++ pinctrl-single,bias-pulldown = <0xa000 0xa000 0 0xa000>; ++ pinctrl-single,input-schmitt = <0 0x30>; ++ pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; ++ pinctrl-single,low-power-mode = <0 0x388>; ++ }; + }; + + &uart0 { +@@ -304,10 +482,53 @@ &twsi1 { + + &twsi2 { + status = "okay"; ++ ++ pmic@30 { ++ compatible = "marvell,88pm886-a1"; ++ reg = <0x30>; ++ interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>; ++ interrupt-parent = <&gic>; ++ wakeup-source; ++ ++ regulators { ++ ldo2: ldo2 { ++ regulator-min-microvolt = <1900000>; ++ regulator-max-microvolt = <3100000>; ++ }; ++ ++ ldo6: ldo6 { ++ regulator-boot-on; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <3300000>; ++ }; ++ ++ ldo14: ldo14 { ++ regulator-boot-on; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <3300000>; ++ }; ++ ++ /* for sdh1 */ ++ ldo15: ldo15 { ++ regulator-always-on; ++ }; ++ }; ++ }; + }; + + &twsi3 { + status = "okay"; ++ ++ touchscreen@50 { ++ compatible = "imagis,ist3032c"; ++ reg = <0x50>; ++ interrupt-parent = <&gpio>; ++ interrupts = <72 IRQ_TYPE_EDGE_FALLING>; ++ vdd-supply = <&ldo2>; ++ touchscreen-size-x = <480>; ++ touchscreen-size-y = <800>; ++ linux,keycodes = , ; ++ }; + }; + + &usb { +@@ -315,8 +536,9 @@ &usb { + }; + + &sdh2 { +- /* Disabled for now because initialization fails with -ETIMEDOUT. */ +- status = "disabled"; ++ pinctrl-names = "default", "state_uhs"; ++ pinctrl-0 = <&sdh2_pins_0 &sdh2_pins_1 &sdh2_pins_2>; ++ pinctrl-1 = <&sdh2_fast_pins_0 &sdh2_fast_pins_1 &sdh2_fast_pins_2>; + bus-width = <8>; + non-removable; + mmc-ddr-1_8v; +@@ -329,4 +551,48 @@ &sdh0 { + cd-inverted; + bus-width = <4>; + wp-inverted; ++ vqmmc-supply = <&ldo6>; ++ vmmc-supply = <&ldo14>; ++}; ++ ++&sdh1 { ++ status = "okay"; ++ pinctrl-names = "default", "state_uhs"; ++ pinctrl-0 = <&sdh1_pins_0 &sdh1_pins_1 &sdh1_pins_2>; ++ pinctrl-1 = <&sdh1_fast_pins_0 &sdh1_fast_pins_1 &sdh1_pins_2>; ++ pinctrl-2 = <&sdh1_edge_wakeup_pin>; ++ bus-width = <4>; ++ max-frequency = <200000000>; ++ cap-sd-highspeed; ++ sd-uhs-sdr50; ++ sd-uhs-sdr104; ++ keep-power-in-suspend; ++ wakeup-source; ++ cap-sdio-irq; ++ mmc-pwrseq = <&wlan_pwrseq>; ++ non-removable; ++ cap-power-off-card; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mwifiex: wifi@1 { ++ compatible = "marvell,sd8777"; ++ reg = <1>; ++ interrupt-parent = <&gpio>; ++ interrupts = <38 IRQ_TYPE_LEVEL_LOW>; ++ marvell,wakeup-pin = <3>; ++ }; ++ ++ btmrvl: bluetooth@2 { ++ compatible = "marvell,sd8777-bt"; ++ reg = <2>; ++ interrupt-parent = <&gpio>; ++ interrupts = <40 IRQ_TYPE_LEVEL_LOW>; ++ ++ marvell,cal-data = /bits/ 8 < ++ 0x00 0x1c 0xfa 0x37 0xff 0xff 0xff 0xff 0x00 0x0d 0x7f 0x01 ++ 0xce 0xba 0x00 0x00 0x00 0x2d 0xc6 0xc0 0x00 0x00 0x00 0x00 ++ 0x00 0xf0 0x00 0x00>; ++ }; + }; +diff --git a/arch/arm64/boot/dts/marvell/pxa1908.dtsi b/arch/arm64/boot/dts/marvell/pxa1908.dtsi +index cf2b9109688c..94fe11dd77b4 100644 +--- a/arch/arm64/boot/dts/marvell/pxa1908.dtsi ++++ b/arch/arm64/boot/dts/marvell/pxa1908.dtsi +@@ -195,6 +195,13 @@ gpio@100 { + }; + }; + ++ pwm: pwm@1ac00 { ++ compatible = "marvell,pxa250-pwm"; ++ reg = <0x1ac00 0x10>; ++ #pwm-cells = <1>; ++ clocks = <&apbc PXA1908_CLK_PWM3>; ++ }; ++ + pmx: pinmux@1e000 { + compatible = "marvell,pxa1908-padconf", "pinconf-single"; + reg = <0x1e000 0x330>; +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/0009-DONOTMERGE-mmc-host-Disable-Tuning-failed-message.patch b/device/community/linux-samsung-coreprimevelte/0009-DONOTMERGE-mmc-host-Disable-Tuning-failed-message.patch new file mode 100644 index 000000000..70005a62a --- /dev/null +++ b/device/community/linux-samsung-coreprimevelte/0009-DONOTMERGE-mmc-host-Disable-Tuning-failed-message.patch @@ -0,0 +1,27 @@ +From 044c7923fbf91b6bc29ad2f87d41fbb6e9548f7f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duje=20Mihanovi=C4=87?= +Date: Sun, 3 Nov 2024 19:38:26 +0100 +Subject: [PATCH 09/10] DONOTMERGE: mmc: host: Disable "Tuning failed" message + +--- + drivers/mmc/host/sdhci.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c +index f4a7733a8ad2..3ce110283c43 100644 +--- a/drivers/mmc/host/sdhci.c ++++ b/drivers/mmc/host/sdhci.c +@@ -2901,8 +2901,8 @@ int __sdhci_execute_tuning(struct sdhci_host *host, u32 opcode) + + } + +- pr_info("%s: Tuning failed, falling back to fixed sampling clock\n", +- mmc_hostname(host->mmc)); ++ /*pr_info("%s: Tuning failed, falling back to fixed sampling clock\n", ++ mmc_hostname(host->mmc));*/ + sdhci_reset_tuning(host); + return -EAGAIN; + } +-- +2.49.0 + diff --git a/device/community/linux-samsung-coreprimevelte/APKBUILD b/device/community/linux-samsung-coreprimevelte/APKBUILD index 395d80caf..15739fe63 100644 --- a/device/community/linux-samsung-coreprimevelte/APKBUILD +++ b/device/community/linux-samsung-coreprimevelte/APKBUILD @@ -2,26 +2,39 @@ _flavor=samsung-coreprimevelte pkgname=linux-$_flavor -pkgver=6.14.0 -#_pkgver=${pkgver/_/-} -_pkgver=6.14 -pkgrel=2 +pkgver=6.14.4 +pkgrel=0 pkgdesc="Samsung Galaxy Core Prime VE LTE mainline kernel" arch="aarch64" _carch="arm64" -url="https://gitlab.com/LegoLivesMatter/linux" +url="https://kernel.org" license="GPL-2.0-only" options="!strip !check !tracedeps pmb:cross-native pmb:kconfigcheck-community" makedepends="bash bc bison devicepkg-dev findutils flex gmp-dev mpc1-dev -mpfr-dev openssl-dev perl postmarketos-installkernel dtc" +mpfr-dev openssl-dev perl postmarketos-installkernel dtc zstd" # Source _config=config-$_flavor.$arch + +case $pkgver in + *.*.*) _kernver=${pkgver%.0};; + *.*) _kernver=$pkgver;; +esac + source=" - $pkgname-$_pkgver.tar.gz::$url/-/archive/v$_pkgver-pxa1908/linux-v$_pkgver-pxa1908.tar.gz + https://cdn.kernel.org/pub/linux/kernel/v${_kernver%%.*}.x/linux-$_kernver.tar.xz + 0001-dt-bindings-marvell-Document-PXA1908-SoC.patch + 0002-arm64-Kconfig.platforms-Add-config-for-Marvell-PXA19.patch + 0003-arm64-dts-Add-DTS-for-Marvell-PXA1908-and-samsung-co.patch + 0004-MAINTAINERS-add-myself-as-Marvell-PXA1908-maintainer.patch + 0005-dt-bindings-mwifiex-document-use-with-the-SD8777-chi.patch + 0006-net-mwifiex-add-support-for-the-SD8777-chipset.patch + 0007-Bluetooth-btmrvl_sdio-Add-support-for-SD8777-chipset.patch + 0008-fill-in-dt-nodes.patch + 0009-DONOTMERGE-mmc-host-Disable-Tuning-failed-message.patch $_config " -builddir="$srcdir"/linux-v$_pkgver-pxa1908 +builddir="$srcdir"/linux-"$_kernver" prepare() { default_prepare @@ -30,12 +43,11 @@ prepare() { build() { unset LDFLAGS - make ARCH="$_carch" CC="${CC:-gcc}" \ + make ARCH="$_carch" \ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))"-$_flavor } package() { - mkdir -p "$pkgdir"/boot make zinstall modules_install dtbs_install \ ARCH=$_carch \ INSTALL_MOD_STRIP=1 \ @@ -48,6 +60,15 @@ package() { } sha512sums=" -bf15ebccd9c60df5ddb47769b574e6e5be39abc663b492c814003819a56351d0a299a7e45a8f5fd13444c6fdd9be6e2206a745eedb55a2de9299a96c5bd25150 linux-samsung-coreprimevelte-6.14.tar.gz -46f584fa16af8bf4cd9f3fc73d892be64aa7d006b76b4ea5a20eb18f5f6749cd7b9f0236572db41ccf46b4a62c802a09e174b4615874f7fc2d21a9f02544e205 config-samsung-coreprimevelte.aarch64 +e59a65d821011d559c7879c70bb14736fb357b750a4513f12a231ccd9c4f4a8cdf1f6a773b42138b6a08fdabca2f473f4fada2e9dfe6ff288de90f3161768cb9 linux-6.14.4.tar.xz +e95e139fb2caea614380f2d955b6148923e401516af793b3efed8a0f7911fbb1b2f1cc7b596fb7e11b13ecd821b66beaf496501c021776bfc830c578d9351002 0001-dt-bindings-marvell-Document-PXA1908-SoC.patch +da0c6e04d62d5a1198f5f9e08ca918b01fe2ac7d7c92d49081191018ca2565bffb46190bad844187b538903511bf75e1e602a2ff8506a0489718711c90bbcb8f 0002-arm64-Kconfig.platforms-Add-config-for-Marvell-PXA19.patch +99e2612aade3e897c69d158977f65bbe8f35500591d7e68983337ca53d1cf06ffe3ba69c82e4321bd972a888737d4e0de06625803fb9a918b482914c5885a148 0003-arm64-dts-Add-DTS-for-Marvell-PXA1908-and-samsung-co.patch +d15455e76dd11be47892334e81a23fb686efc5fc3c2e579bed13a765c7868991952fef28d92182e47c26e72f6647db79c2b6183ffa153ea07dc0be1c76a5c67f 0004-MAINTAINERS-add-myself-as-Marvell-PXA1908-maintainer.patch +c50ce6639860b1067e5b6ae6171edaff4f98790de4cfc5effb875163d657e1b64c672d22fd9852e6b2f616814ad3d34e06a78d0297b5e8fd9c489ecdbc9b957c 0005-dt-bindings-mwifiex-document-use-with-the-SD8777-chi.patch +8bdac2fa23c8015d3f6f8019f1712567c7499e20104a64263fca16cfc553062558f33b581e8dc7fd705dc1cb0d5a7149bceb471433d62341b534749368f0fc9a 0006-net-mwifiex-add-support-for-the-SD8777-chipset.patch +92f1d45ff11c3b6ac3fd973fb40a2065154350baa214d0c76600104f340509d1b1dfbaa5ca426a14b0b0b1e0aecfbd1cf615f3f65947d6958a6befa5d5778429 0007-Bluetooth-btmrvl_sdio-Add-support-for-SD8777-chipset.patch +85cf4c38e3f50dee01c24771557a31722d084e92d5415294d0c36e14c736ec9a86d3d53e4156246e2a2824013373234d2244463245e7617509ab55aee6990304 0008-fill-in-dt-nodes.patch +5426f06fb0f0275694695f4ad474d73b594d6187eecd7923d10299c236bddf7525ba4a215978e84b268ad8a5d50f310688453842b3a5b03e2124b8426c4eb572 0009-DONOTMERGE-mmc-host-Disable-Tuning-failed-message.patch +c94cccca6d053ac08d034072f113fda86fad0b2fbee6fa203681de44a61f920fb2dae973d107b98c40e5ca542444e1be3c046ed24268b4060b3a9b085639d778 config-samsung-coreprimevelte.aarch64 " diff --git a/device/community/linux-samsung-coreprimevelte/config-samsung-coreprimevelte.aarch64 b/device/community/linux-samsung-coreprimevelte/config-samsung-coreprimevelte.aarch64 index 47cd22196..7a7d716fa 100644 --- a/device/community/linux-samsung-coreprimevelte/config-samsung-coreprimevelte.aarch64 +++ b/device/community/linux-samsung-coreprimevelte/config-samsung-coreprimevelte.aarch64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.14.0 Kernel Configuration +# Linux/arm64 6.14.4 Kernel Configuration # CONFIG_CC_VERSION_TEXT="aarch64-alpine-linux-musl-gcc (Alpine 14.2.0) 14.2.0" CONFIG_CC_IS_GCC=y @@ -17,6 +17,7 @@ CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y CONFIG_PAHOLE_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y @@ -410,6 +411,7 @@ CONFIG_QCOM_FALKOR_ERRATUM_1009=y CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QCOM_FALKOR_ERRATUM_E1041=y CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y +CONFIG_ROCKCHIP_ERRATUM_3568002=y CONFIG_ROCKCHIP_ERRATUM_3588001=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y # end of ARM errata workarounds via the alternatives framework @@ -3157,6 +3159,7 @@ CONFIG_HID_THRUSTMASTER=m CONFIG_THRUSTMASTER_FF=y CONFIG_HID_UDRAW_PS3=m CONFIG_HID_U2FZERO=m +# CONFIG_HID_UNIVERSAL_PIDFF is not set CONFIG_HID_WACOM=m CONFIG_HID_WIIMOTE=m CONFIG_HID_WINWING=m