On 04/08/2024 10:10, Marcus Glocker wrote: > Hi, > > We recently added initial support in OpenBSD for the Samsung Galaxy > Book4 Edge by below DTS diff. Please write commig msgs matching Linux kernel style, see submitting patches. That's not a letter but explanation of what and why you are doing. > > - x1e80100-samsung-galaxy-book4-edge.dts: > Is a copy of x1e80100-crd.dts, and then modified to our needs. > > - x1e80100.dtsi: > Includes the UFSHCI peaces, which was basically pulled from > sc7180.dtsi. > > Main stuff working: > > - UFSHCI. > - Keyboard. > - Touch-pad. > - USB (as far tested). > > Main stuff not working yet: > > - Touch-screen: Pin 51, which mostly works on the other X1E80100 > models, is creating an interrupt storm on the Samsung Galaxy Book4 > Edge. Probing the other pins didn't showed success yet. Not sure at > this point what the problem is. > > Regards, > Marcus > > > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts > new file mode 100644 > index 000000000000..83751455211a > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts > @@ -0,0 +1,986 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > + > +#include "x1e80100.dtsi" > +#include "x1e80100-pmics.dtsi" > + > +/ { > + model = "Samsung Galaxy Book4 Edge"; > + compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100"; It does not look like you tested the DTS against bindings. Please run `make dtbs_check W=1` (see Documentation/devicetree/bindings/writing-schema.rst or https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/ for instructions). > + chassis-type = "laptop"; > + > + pmic-glink { > + compatible = "qcom,x1e80100-pmic-glink", > + "qcom,sm8550-pmic-glink", > + "qcom,pmic-glink"; > + #address-cells = <1>; > + #size-cells = <0>; > + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>, > + <&tlmm 123 GPIO_ACTIVE_HIGH>, > + <&tlmm 125 GPIO_ACTIVE_HIGH>; > + > + /* Left-side rear port */ > + connector@0 { > + compatible = "usb-c-connector"; > + reg = <0>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss0_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss0_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss0_ss_in: endpoint { > + remote-endpoint = <&usb_1_ss0_qmpphy_out>; > + }; > + }; > + }; > + }; > + > + /* Left-side front port */ > + connector@1 { > + compatible = "usb-c-connector"; > + reg = <1>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss1_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss1_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss1_ss_in: endpoint { > + remote-endpoint = <&usb_1_ss1_qmpphy_out>; > + }; > + }; > + }; > + }; > + > + /* Right-side port */ > + connector@2 { > + compatible = "usb-c-connector"; > + reg = <2>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss2_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss2_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss2_ss_in: endpoint { > + remote-endpoint = <&usb_1_ss2_qmpphy_out>; > + }; > + }; > + }; > + }; > + }; > + > + reserved-memory { > + linux,cma { > + compatible = "shared-dma-pool"; > + size = <0x0 0x8000000>; > + reusable; > + linux,cma-default; > + }; > + }; > + > + sound { > + compatible = "qcom,x1e80100-sndcard"; > + model = "X1E80100-CRD"; That's not a CRD board. > + audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT", > + "TwitterLeft IN", "WSA WSA_SPK2 OUT", > + "WooferRight IN", "WSA2 WSA_SPK2 OUT", > + "TwitterRight IN", "WSA2 WSA_SPK2 OUT", Is this correct? > + "IN1_HPHL", "HPHL_OUT", > + "IN2_HPHR", "HPHR_OUT", > + "AMIC2", "MIC BIAS2", And this? > + "VA DMIC0", "MIC BIAS3", > + "VA DMIC1", "MIC BIAS3", > + "VA DMIC2", "MIC BIAS1", > + "VA DMIC3", "MIC BIAS1", > + "VA DMIC0", "VA MIC BIAS3", > + "VA DMIC1", "VA MIC BIAS3", > + "VA DMIC2", "VA MIC BIAS1", > + "VA DMIC3", "VA MIC BIAS1", > + "TX SWR_INPUT1", "ADC2_OUTPUT"; > + > + wsa-dai-link { > + link-name = "WSA Playback"; > + > + cpu { > + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>; > + }; > + > + codec { > + sound-dai = <&left_woofer>, <&left_tweeter>, > + <&swr0 0>, <&lpass_wsamacro 0>, > + <&right_woofer>, <&right_tweeter>, > + <&swr3 0>, <&lpass_wsa2macro 0>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + > + va-dai-link { > + link-name = "VA Capture"; > + > + cpu { > + sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>; > + }; > + > + codec { > + sound-dai = <&lpass_vamacro 0>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + }; > + > + vph_pwr: vph-pwr-regulator { Use consistent naming, so either prefix or suffix, not both. E.g. consistent regualtor-foo. ... > +&i2c8 { > + clock-frequency = <400000>; > + > + status = "disabled"; > + > + touchscreen@5d { > + compatible = "hid-over-i2c"; > + reg = <0x5d>; > + > + hid-descr-addr = <0x1>; > + /* > + * Pin 51 is creating an interrupt storm. Hence, choosing > + * some other pin which just does nothing. But obviously, No, you cannot add incorrect hardware description. > + * the touchscreen won't work for now. So disable the device. > + */ > + //interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>; Odd indentation. ... > diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi > index 7bca5fcd7d52..62d8a91dd707 100644 > --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi > +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi > @@ -2878,6 +2878,77 @@ mmss_noc: interconnect@1780000 { > #interconnect-cells = <2>; > }; > > + ufs_mem_hc: ufshc@1d84000 { ufs@ > + compatible = "qcom,x1e80100-ufshc", "qcom,ufshc", Nope, pleasr test before. It does not look like you tested the DTS against bindings. Please run `make dtbs_check W=1` (see Documentation/devicetree/bindings/writing-schema.rst or https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/ for instructions). Please run scripts/checkpatch.pl and fix reported warnings. Then please run `scripts/checkpatch.pl --strict` and (probably) fix more warnings. Some warnings can be ignored, especially from --strict run, but the code here looks like it needs a fix. Feel free to get in touch if the warning is not clear. Best regards, Krzysztof