mbox series

[v1,0/3] X1E Dell XPS 9345 support

Message ID 20240919170018.13672-1-alex.vinarskis@gmail.com
Headers show
Series X1E Dell XPS 9345 support | expand

Message

Aleksandrs Vinarskis Sept. 19, 2024, 4:59 p.m. UTC
Introduce support for the mentioned laptop.

Very similar to other X1E laptops, device tree was derived by analyzing dtsi of
existing models and ACPI tables of this laptop [1]. Most notable difference were
* TZ protected SPI19.
* Keyboard only working after suspend/resume sequence, will do a follow up patch
to i2c-hid.
* Lots of small deviations in LDOs voltages.

Successfully tested with Debian 12 and Gnome, although this required additional
patches, namely harcode GPU chipid, apply [2] and _revert_ [3] - same as in Abel
Vesa's branches. Without last two the boot process is terminated by TZ. Firmware
for GPU/aDSP/cDSP was extracted from Windows, WiFi firmware from upstream
linux-firmware.

Quite a few things alraedy work, details in patches, quite a few still in WIP or
TODOs. Since fixing these may take me a while due to lack of documentation,
sending current progress as its very much usable.

[1] https://github.com/aarch64-laptops/build/blob/master/misc/dell-xps-9345/acpi/DSDT.dsl
[2] https://lore.kernel.org/all/20240830-x1e80100-bypass-pdc-v1-1-d4c00be0c3e3@linaro.org/
[3] https://lore.kernel.org/all/20240708-x1e80100-pd-mapper-v1-1-854386af4cf5@linaro.org/

Aleksandrs Vinarskis (3):
  dt-bindings: arm: qcom: Add Dell XPS 13 9345
  firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
  arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345

 .../devicetree/bindings/arm/qcom.yaml         |   1 +
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../dts/qcom/x1e80100-dell-tributo-13.dts     | 860 ++++++++++++++++++
 drivers/firmware/qcom/qcom_scm.c              |   1 +
 4 files changed, 863 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts

Comments

Krzysztof Kozlowski Sept. 20, 2024, 12:52 p.m. UTC | #1
On 19/09/2024 18:59, Aleksandrs Vinarskis wrote:
> +			panic-indicator;
> +		};
> +	};
> +
> +	pmic-glink {
> +		compatible = "qcom,x1e80100-pmic-glink",
> +					 "qcom,sm8550-pmic-glink",
> +					 "qcom,pmic-glink";

Misaligned. These start with previous ".


> +		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> +							<&tlmm 123 GPIO_ACTIVE_HIGH>;


Even more misaligned. I guess this comment applies to multiple places.


> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		/* Right-side USB Type-C 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 USB Type-C 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>;
> +					};
> +				};
> +			};
> +		};
> +	};
> +
> +	reserved-memory {
> +		linux,cma {
> +			compatible = "shared-dma-pool";
> +			size = <0x0 0x8000000>;
> +			reusable;
> +			linux,cma-default;
> +		};
> +	};
> +
> +	vph_pwr: vph-pwr-regulator {

regulator-foo-bar (so regulator-vph-pwr), which will also point to the
need of reordering the nods. They are sorted alphabetically.

Best regards,
Krzysztof