From ccbc2b02c22e79f08edb3d7e1584910c0f38e213 Mon Sep 17 00:00:00 2001 From: Mateusz Majewski Date: Tue, 16 Jan 2024 15:08:39 +0100 Subject: [PATCH 1/6] ARM: dts: samsung: exynos5422-odroidxu3: disable thermal polling After having switched to dynamic trip points, we no longer have a hardware limit for trip point count and can support as many as we want without polling. Signed-off-by: Mateusz Majewski Link: https://lore.kernel.org/r/20240116140839.1029395-1-m.majewski2@samsung.com Signed-off-by: Krzysztof Kozlowski --- .../dts/samsung/exynos5422-odroidxu3-common.dtsi | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/arch/arm/boot/dts/samsung/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/samsung/exynos5422-odroidxu3-common.dtsi index b4a851aa8881..4a4c55a4beb3 100644 --- a/arch/arm/boot/dts/samsung/exynos5422-odroidxu3-common.dtsi +++ b/arch/arm/boot/dts/samsung/exynos5422-odroidxu3-common.dtsi @@ -55,7 +55,7 @@ fan0: pwm-fan { thermal-zones { cpu0_thermal: cpu0-thermal { thermal-sensors = <&tmu_cpu0>; - polling-delay-passive = <250>; + polling-delay-passive = <0>; polling-delay = <0>; trips { cpu0_alert0: cpu-alert-0 { @@ -78,12 +78,6 @@ cpu0_crit0: cpu-crit-0 { hysteresis = <0>; /* millicelsius */ type = "critical"; }; - /* - * Exynos542x supports only 4 trip-points - * so for these polling mode is required. - * Start polling at temperature level of last - * interrupt-driven trip: cpu0_alert2 - */ cpu0_alert3: cpu-alert-3 { temperature = <70000>; /* millicelsius */ hysteresis = <10000>; /* millicelsius */ @@ -144,7 +138,7 @@ cpu0_cooling_map4: map4 { }; cpu1_thermal: cpu1-thermal { thermal-sensors = <&tmu_cpu1>; - polling-delay-passive = <250>; + polling-delay-passive = <0>; polling-delay = <0>; trips { cpu1_alert0: cpu-alert-0 { @@ -217,7 +211,7 @@ cpu1_cooling_map4: map4 { }; cpu2_thermal: cpu2-thermal { thermal-sensors = <&tmu_cpu2>; - polling-delay-passive = <250>; + polling-delay-passive = <0>; polling-delay = <0>; trips { cpu2_alert0: cpu-alert-0 { @@ -290,7 +284,7 @@ cpu2_cooling_map4: map4 { }; cpu3_thermal: cpu3-thermal { thermal-sensors = <&tmu_cpu3>; - polling-delay-passive = <250>; + polling-delay-passive = <0>; polling-delay = <0>; trips { cpu3_alert0: cpu-alert-0 { @@ -363,7 +357,7 @@ cpu3_cooling_map4: map4 { }; gpu_thermal: gpu-thermal { thermal-sensors = <&tmu_gpu>; - polling-delay-passive = <250>; + polling-delay-passive = <0>; polling-delay = <0>; trips { gpu_alert0: gpu-alert-0 { From 8f51b5290ff4f8a9f1c634cf42ca37cd9e90018c Mon Sep 17 00:00:00 2001 From: Mark Hasemeyer Date: Wed, 20 Dec 2023 16:54:20 -0700 Subject: [PATCH 2/6] ARM: dts: samsung: exynos5420-peach: Enable cros-ec-spi as wake source The cros_ec driver currently assumes that cros-ec-spi compatible device nodes are a wakeup-source even though the wakeup-source property is not defined. Add the wakeup-source property to all cros-ec-spi compatible device nodes to match expected behavior. Signed-off-by: Mark Hasemeyer Link: https://lore.kernel.org/r/20231220165423.v2.6.I06b059021de1bf6103e60a73211f078f2af75d17@changeid Signed-off-by: Krzysztof Kozlowski --- arch/arm/boot/dts/samsung/exynos5420-peach-pit.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/samsung/exynos5420-peach-pit.dts b/arch/arm/boot/dts/samsung/exynos5420-peach-pit.dts index 4e757b6e28e1..3759742d38ca 100644 --- a/arch/arm/boot/dts/samsung/exynos5420-peach-pit.dts +++ b/arch/arm/boot/dts/samsung/exynos5420-peach-pit.dts @@ -967,6 +967,7 @@ cros_ec: cros-ec@0 { reg = <0>; spi-max-frequency = <3125000>; google,has-vbc-nvram; + wakeup-source; controller-data { samsung,spi-feedback-delay = <1>; From df294f4ec618c9f0d7e9a2fde1c541b731972389 Mon Sep 17 00:00:00 2001 From: Mark Hasemeyer Date: Wed, 20 Dec 2023 16:54:21 -0700 Subject: [PATCH 3/6] ARM: dts: samsung: exynos5800-peach: Enable cros-ec-spi as wake source The cros_ec driver currently assumes that cros-ec-spi compatible device nodes are a wakeup-source even though the wakeup-source property is not defined. Add the wakeup-source property to all cros-ec-spi compatible device nodes to match expected behavior. Signed-off-by: Mark Hasemeyer Link: https://lore.kernel.org/r/20231220165423.v2.7.Idc995ce08a52ba4c5fde0685118ddf2873fc8acd@changeid Signed-off-by: Krzysztof Kozlowski --- arch/arm/boot/dts/samsung/exynos5800-peach-pi.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/samsung/exynos5800-peach-pi.dts b/arch/arm/boot/dts/samsung/exynos5800-peach-pi.dts index f91bc4ae008e..9bbbdce9103a 100644 --- a/arch/arm/boot/dts/samsung/exynos5800-peach-pi.dts +++ b/arch/arm/boot/dts/samsung/exynos5800-peach-pi.dts @@ -949,6 +949,7 @@ cros_ec: cros-ec@0 { reg = <0>; spi-max-frequency = <3125000>; google,has-vbc-nvram; + wakeup-source; controller-data { samsung,spi-feedback-delay = <1>; From 497b447cf89b87c8fb0d0b27994258ed18ac355e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20J=C3=BCcker?= Date: Fri, 22 Dec 2023 00:02:57 +0100 Subject: [PATCH 4/6] ARM: dts: samsung: exynos4412-p4note: add accelerometer and gyro to p4note MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add entries for LSM330DLC accelerometer and gyro to the p4note. Signed-off-by: Martin Jücker Link: https://lore.kernel.org/r/20231221230258.56272-1-martin.juecker@gmail.com Signed-off-by: Krzysztof Kozlowski --- .../boot/dts/samsung/exynos4412-p4note.dtsi | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/arch/arm/boot/dts/samsung/exynos4412-p4note.dtsi b/arch/arm/boot/dts/samsung/exynos4412-p4note.dtsi index 0b89d5682f85..39a3d1cbe4c3 100644 --- a/arch/arm/boot/dts/samsung/exynos4412-p4note.dtsi +++ b/arch/arm/boot/dts/samsung/exynos4412-p4note.dtsi @@ -362,6 +362,39 @@ &hsotg { status = "okay"; }; +&i2c_1 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-slave-addr = <0x10>; + samsung,i2c-max-bus-freq = <400000>; + pinctrl-0 = <&i2c1_bus>; + pinctrl-names = "default"; + status = "okay"; + + accelerometer@19 { + compatible = "st,lsm330dlc-accel"; + reg = <0x19>; + interrupt-parent = <&gpx0>; + interrupts = <0 IRQ_TYPE_EDGE_RISING>; + pinctrl-0 = <&accelerometer_irq>; + pinctrl-names = "default"; + mount-matrix = "1", "0", "0", + "0", "-1", "0", + "0", "0", "-1"; + }; + + gyro@6b { + compatible = "st,lsm330dlc-gyro"; + reg = <0x6b>; + interrupt-parent = <&gpx0>; + interrupts = <6 IRQ_TYPE_EDGE_RISING>; + pinctrl-0 = <&gyro_data_enable &gyro_irq>; + pinctrl-names = "default"; + mount-matrix = "1", "0", "0", + "0", "-1", "0", + "0", "0", "-1"; + }; +}; + &i2c_3 { samsung,i2c-sda-delay = <100>; samsung,i2c-slave-addr = <0x10>; @@ -844,6 +877,12 @@ bt_shutdown: bt-shutdown-pins { samsung,pin-pud = ; }; + gyro_data_enable: gyro-data-enable-pins { + samsung,pins = "gpl2-0"; + samsung,pin-function = ; + samsung,pin-pud = ; + }; + uart_sel: uart-sel-pins { samsung,pins = "gpl2-7"; samsung,pin-function = ; @@ -894,12 +933,24 @@ ak8975_irq: ak8975-irq-pins { samsung,pin-pud = ; }; + accelerometer_irq: accelerometer-irq-pins { + samsung,pins = "gpx0-0"; + samsung,pin-function = ; + samsung,pin-pud = ; + }; + stmpe_adc_irq: stmpe-adc-irq-pins { samsung,pins = "gpx0-1"; samsung,pin-function = ; samsung,pin-pud = ; }; + gyro_irq: gyro-irq-pins { + samsung,pins = "gpx0-6"; + samsung,pin-function = ; + samsung,pin-pud = ; + }; + max77686_irq: max77686-irq-pins { samsung,pins = "gpx0-7"; samsung,pin-pud = ; From 9a5dbb835fd396c78da34b26ee91db6d529d096d Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Tue, 30 Jan 2024 21:40:41 +0100 Subject: [PATCH 5/6] ARM: dts: samsung: exynos5420-galaxy-tab: decrease available memory The last 6 MiB are used by trustzone firmware, and cannot be used by Linux. Currently we are saved by that the proprietary bootloader (sboot) passes available memory to kernel through ATAG_MEM. Change memory range in any case so that we do not have to rely on ATAG_MEM. Signed-off-by: Henrik Grimler Link: https://lore.kernel.org/r/20240130-galaxy-tab-s-cleanup-v1-3-d4e17857241d@grimler.se Signed-off-by: Krzysztof Kozlowski --- arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi b/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi index f525b2f5e4e0..3532f1e8e902 100644 --- a/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi +++ b/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi @@ -39,7 +39,7 @@ chosen { memory@20000000 { device_type = "memory"; - reg = <0x20000000 0xc0000000>; + reg = <0x20000000 0xbfa00000>; }; firmware@2073000 { From 60f1164e21cc04666d23b63e1153af74e7a5650d Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Tue, 6 Feb 2024 17:02:27 +0100 Subject: [PATCH 6/6] ARM: dts: samsung: exynos5420-galaxy-tab-common: add wifi node By using brcm/brcmfmac4354-sdio.bin from linux-firmware together with nvram.txt from vendor firmware wifi works well on the chagall-wifi and klimt-lte. Signed-off-by: Henrik Grimler Link: https://lore.kernel.org/r/20240206-galaxy-tab-s-cleanup-v2-1-89025c6c66c5@grimler.se Signed-off-by: Krzysztof Kozlowski --- .../samsung/exynos5420-galaxy-tab-common.dtsi | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi b/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi index 3532f1e8e902..246040967082 100644 --- a/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi +++ b/arch/arm/boot/dts/samsung/exynos5420-galaxy-tab-common.dtsi @@ -30,6 +30,7 @@ / { aliases { mmc0 = &mmc_0; + mmc1 = &mmc_1; mmc2 = &mmc_2; }; @@ -87,6 +88,13 @@ key-volume-down { linux,code = ; }; }; + + mmc1_pwrseq: pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&gpy7 7 GPIO_ACTIVE_LOW>; + clocks = <&s2mps11_osc S2MPS11_CLK_BT>; + clock-names = "ext_clock"; + }; }; &cci { @@ -620,6 +628,25 @@ &mmc_0 { vqmmc-supply = <&ldo3_reg>; }; +/* WiFi */ +&mmc_1 { + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + card-detect-delay = <200>; + keep-power-in-suspend; + mmc-pwrseq = <&mmc1_pwrseq>; + non-removable; + pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>, + <&sd1_bus4>, <&wifi_en>; + pinctrl-names = "default"; + vqmmc-supply = <&ldo2_reg>; + samsung,dw-mshc-ciu-div = <1>; + samsung,dw-mshc-ddr-timing = <0 2>; + samsung,dw-mshc-sdr-timing = <0 1>; + status = "okay"; +}; + /* External sdcard */ &mmc_2 { status = "okay"; @@ -649,6 +676,11 @@ s2mps11_irq: s2mps11-irq-pins { samsung,pin-pud = ; samsung,pin-drv = ; }; + + wifi_en: wifi-en-pins { + samsung,pins = "gpy7-7"; + samsung,pin-pud = ; + }; }; &rtc {