]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
arm64: dts: exynos: gs101-oriole: move common Pixel6 & 6Pro parts into a .dtsi
authorAndré Draszik <andre.draszik@linaro.org>
Fri, 17 Jan 2025 17:09:56 +0000 (17:09 +0000)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tue, 4 Feb 2025 08:43:51 +0000 (09:43 +0100)
In order to support Pixel 6 (Oriole), Pixel 6 Pro (Raven), Pixel 6a
(Bluejay), and all other versions correctly, we have to be able to
distinguish them properly as we add support for more features.

For example, Raven has a larger display. There are other differences,
like battery design capacity, etc.

Move all the parts that are common for now into a
gs101-pixel-common.dtsi, and just leave the display related things in
gs101-oriole.dts.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
Reviewed-by: Peter Griffin <peter.griffin@linaro.org>
Link: https://lore.kernel.org/r/20250117-gs101-simplefb-v4-3-a5b90ca2f917@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
arch/arm64/boot/dts/exynos/google/gs101-oriole.dts
arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi [new file with mode: 0644]

index d3dd411c9bd0ce7902997fef10b14f3e66f45140..8df42bedbc036b5e97f6238d64820370043ffef2 100644 (file)
 
 /dts-v1/;
 
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/usb/pd.h>
-#include "gs101-pinctrl.h"
-#include "gs101.dtsi"
+#include "gs101-pixel-common.dtsi"
 
 / {
        model = "Oriole";
        compatible = "google,gs101-oriole", "google,gs101";
-
-       aliases {
-               serial0 = &serial_0;
-       };
-
-       chosen {
-               /* Bootloader expects bootargs specified otherwise it crashes */
-               bootargs = "";
-               stdout-path = &serial_0;
-
-               /* Use display framebuffer as setup by bootloader */
-               framebuffer0: framebuffer-0 {
-                       compatible = "simple-framebuffer";
-                       memory-region = <&cont_splash_mem>;
-                       width = <1080>;
-                       height = <2400>;
-                       stride = <(1080 * 4)>;
-                       format = "a8r8g8b8";
-               };
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-               pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>;
-               pinctrl-names = "default";
-
-               button-vol-down {
-                       label = "KEY_VOLUMEDOWN";
-                       linux,code = <KEY_VOLUMEDOWN>;
-                       gpios = <&gpa7 3 GPIO_ACTIVE_LOW>;
-                       wakeup-source;
-               };
-
-               button-vol-up {
-                       label = "KEY_VOLUMEUP";
-                       linux,code = <KEY_VOLUMEUP>;
-                       gpios = <&gpa8 1 GPIO_ACTIVE_LOW>;
-                       wakeup-source;
-               };
-
-               button-power {
-                       label = "KEY_POWER";
-                       linux,code = <KEY_POWER>;
-                       gpios = <&gpa10 1 GPIO_ACTIVE_LOW>;
-                       wakeup-source;
-               };
-       };
-
-       /* TODO: Remove this once PMIC is implemented  */
-       reg_placeholder: regulator-0 {
-               compatible = "regulator-fixed";
-               regulator-name = "placeholder_reg";
-       };
-
-       /* TODO: Remove this once S2MPG11 slave PMIC is implemented  */
-       ufs_0_fixed_vcc_reg: regulator-1 {
-               compatible = "regulator-fixed";
-               regulator-name = "ufs-vcc";
-               gpio = <&gpp0 1 GPIO_ACTIVE_HIGH>;
-               regulator-boot-on;
-               enable-active-high;
-       };
-
-       reserved-memory {
-               cont_splash_mem: splash@fac00000 {
-                       reg = <0x0 0xfac00000 (1080 * 2400 * 4)>;
-                       no-map;
-               };
-       };
-};
-
-&ext_24_5m {
-       clock-frequency = <24576000>;
-};
-
-&ext_200m {
-       clock-frequency = <200000000>;
-};
-
-&hsi2c_8 {
-       status = "okay";
-
-       eeprom: eeprom@50 {
-               compatible = "atmel,24c08";
-               reg = <0x50>;
-       };
-};
-
-&hsi2c_12 {
-       status = "okay";
-       /* TODO: add the devices once drivers exist */
-
-       usb-typec@25 {
-               compatible = "maxim,max77759-tcpci", "maxim,max33359";
-               reg = <0x25>;
-               interrupts-extended = <&gpa8 2 IRQ_TYPE_LEVEL_LOW>;
-               pinctrl-0 = <&typec_int>;
-               pinctrl-names = "default";
-
-               connector {
-                       compatible = "usb-c-connector";
-                       label = "USB-C";
-                       data-role = "dual";
-                       power-role = "dual";
-                       self-powered;
-                       try-power-role = "sink";
-                       op-sink-microwatt = <2600000>;
-                       slow-charger-loop;
-                       /*
-                        * max77759 operating in reverse boost mode (0xA) can
-                        * source up to 1.5A while extboost can only do ~1A.
-                        * Since extboost is the primary path, advertise 900mA.
-                        */
-                       source-pdos = <PDO_FIXED(5000, 900,
-                                                (PDO_FIXED_SUSPEND
-                                                 | PDO_FIXED_USB_COMM
-                                                 | PDO_FIXED_DATA_SWAP
-                                                 | PDO_FIXED_DUAL_ROLE))>;
-                       sink-pdos = <PDO_FIXED(5000, 3000,
-                                              (PDO_FIXED_DATA_SWAP
-                                               | PDO_FIXED_USB_COMM
-                                               | PDO_FIXED_HIGHER_CAP
-                                               | PDO_FIXED_DUAL_ROLE))
-                                    PDO_FIXED(9000, 2200, 0)
-                                    PDO_PPS_APDO(5000, 11000, 3000)>;
-                       sink-vdos = <VDO_IDH(1, 1, IDH_PTYPE_PERIPH, 0,
-                                            IDH_PTYPE_DFP_HOST, 2, 0x18d1)
-                                    VDO_CERT(0x0)
-                                    VDO_PRODUCT(0x4ee1, 0x0)
-                                    VDO_UFP(UFP_VDO_VER1_2,
-                                            (DEV_USB2_CAPABLE
-                                             | DEV_USB3_CAPABLE),
-                                            UFP_RECEPTACLE, 0,
-                                            AMA_VCONN_NOT_REQ, 0,
-                                            UFP_ALTMODE_NOT_SUPP,
-                                            UFP_USB32_GEN1)
-                                    /* padding */ 0
-                                    VDO_DFP(DFP_VDO_VER1_1,
-                                            (HOST_USB2_CAPABLE
-                                             | HOST_USB3_CAPABLE),
-                                            DFP_RECEPTACLE, 0)>;
-                       sink-vdos-v1 = <VDO_IDH(1, 1, IDH_PTYPE_PERIPH, 0,
-                                               0, 0, 0x18d1)
-                                       VDO_CERT(0x0)
-                                       VDO_PRODUCT(0x4ee1, 0x0)>;
-                       /*
-                        * Until bootloader is updated to set those two when
-                        * console is enabled, we disable PD here.
-                        */
-                       pd-disable;
-                       typec-power-opmode = "default";
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
-
-                                       usbc0_orien_sw: endpoint {
-                                               remote-endpoint = <&usbdrd31_phy_orien_switch>;
-                                       };
-                               };
-
-                               port@1 {
-                                       reg = <1>;
-
-                                       usbc0_role_sw: endpoint {
-                                               remote-endpoint = <&usbdrd31_dwc3_role_switch>;
-                                       };
-                               };
-                       };
-               };
-       };
-};
-
-&pinctrl_far_alive {
-       key_voldown: key-voldown-pins {
-               samsung,pins = "gpa7-3";
-               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
-               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
-               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
-       };
-
-       key_volup: key-volup-pins {
-               samsung,pins = "gpa8-1";
-               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
-               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
-               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
-       };
-
-       typec_int: typec-int-pins {
-               samsung,pins = "gpa8-2";
-               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
-               samsung,pin-pud = <GS101_PIN_PULL_UP>;
-               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
-       };
-};
-
-&pinctrl_gpio_alive {
-       key_power: key-power-pins {
-               samsung,pins = "gpa10-1";
-               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
-               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
-               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
-       };
-};
-
-&serial_0 {
-       status = "okay";
-};
-
-&ufs_0 {
-       status = "okay";
-       vcc-supply = <&ufs_0_fixed_vcc_reg>;
-};
-
-&ufs_0_phy {
-       status = "okay";
-};
-
-&usbdrd31 {
-       vdd10-supply = <&reg_placeholder>;
-       vdd33-supply = <&reg_placeholder>;
-       status = "okay";
-};
-
-&usbdrd31_dwc3 {
-       dr_mode = "otg";
-       usb-role-switch;
-       role-switch-default-mode = "peripheral";
-       maximum-speed = "super-speed-plus";
-       status = "okay";
-
-       port {
-               usbdrd31_dwc3_role_switch: endpoint {
-                       remote-endpoint = <&usbc0_role_sw>;
-               };
-       };
-};
-
-&usbdrd31_phy {
-       orientation-switch;
-       /* TODO: Update these once PMIC is implemented */
-       pll-supply = <&reg_placeholder>;
-       dvdd-usb20-supply = <&reg_placeholder>;
-       vddh-usb20-supply = <&reg_placeholder>;
-       vdd33-usb20-supply = <&reg_placeholder>;
-       vdda-usbdp-supply = <&reg_placeholder>;
-       vddh-usbdp-supply = <&reg_placeholder>;
-       status = "okay";
-
-       port {
-               usbdrd31_phy_orien_switch: endpoint {
-                       remote-endpoint = <&usbc0_orien_sw>;
-               };
-       };
-};
-
-&usi_uart {
-       samsung,clkreq-on; /* needed for UART mode */
-       status = "okay";
-};
-
-&usi8 {
-       samsung,mode = <USI_V2_I2C>;
-       status = "okay";
 };
 
-&usi12 {
-       samsung,mode = <USI_V2_I2C>;
+&cont_splash_mem {
+       reg = <0x0 0xfac00000 (1080 * 2400 * 4)>;
        status = "okay";
 };
 
-&watchdog_cl0 {
-       timeout-sec = <30>;
+&framebuffer0 {
+       width = <1080>;
+       height = <2400>;
+       stride = <(1080 * 4)>;
+       format = "a8r8g8b8";
        status = "okay";
 };
diff --git a/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi b/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi
new file mode 100644 (file)
index 0000000..b252304
--- /dev/null
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Device Tree nodes common for all GS101-based Pixel
+ *
+ * Copyright 2021-2023 Google LLC
+ * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/usb/pd.h>
+#include "gs101-pinctrl.h"
+#include "gs101.dtsi"
+
+/ {
+       aliases {
+               serial0 = &serial_0;
+       };
+
+       chosen {
+               /* Bootloader expects bootargs specified otherwise it crashes */
+               bootargs = "";
+               stdout-path = &serial_0;
+
+               /* Use display framebuffer as setup by bootloader */
+               framebuffer0: framebuffer-0 {
+                       compatible = "simple-framebuffer";
+                       memory-region = <&cont_splash_mem>;
+                       /* format properties to be added by actual board */
+                       status = "disabled";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>;
+               pinctrl-names = "default";
+
+               button-vol-down {
+                       label = "KEY_VOLUMEDOWN";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&gpa7 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               button-vol-up {
+                       label = "KEY_VOLUMEUP";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&gpa8 1 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               button-power {
+                       label = "KEY_POWER";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&gpa10 1 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+       };
+
+       /* TODO: Remove this once PMIC is implemented  */
+       reg_placeholder: regulator-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "placeholder_reg";
+       };
+
+       /* TODO: Remove this once S2MPG11 slave PMIC is implemented  */
+       ufs_0_fixed_vcc_reg: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "ufs-vcc";
+               gpio = <&gpp0 1 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               enable-active-high;
+       };
+
+       reserved-memory {
+               cont_splash_mem: splash@fac00000 {
+                       /* size to be updated by actual board */
+                       reg = <0x0 0xfac00000 0x0>;
+                       no-map;
+                       status = "disabled";
+               };
+       };
+};
+
+&ext_24_5m {
+       clock-frequency = <24576000>;
+};
+
+&ext_200m {
+       clock-frequency = <200000000>;
+};
+
+&hsi2c_8 {
+       status = "okay";
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c08";
+               reg = <0x50>;
+       };
+};
+
+&hsi2c_12 {
+       status = "okay";
+       /* TODO: add the devices once drivers exist */
+
+       usb-typec@25 {
+               compatible = "maxim,max77759-tcpci", "maxim,max33359";
+               reg = <0x25>;
+               interrupts-extended = <&gpa8 2 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&typec_int>;
+               pinctrl-names = "default";
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       data-role = "dual";
+                       power-role = "dual";
+                       self-powered;
+                       try-power-role = "sink";
+                       op-sink-microwatt = <2600000>;
+                       slow-charger-loop;
+                       /*
+                        * max77759 operating in reverse boost mode (0xA) can
+                        * source up to 1.5A while extboost can only do ~1A.
+                        * Since extboost is the primary path, advertise 900mA.
+                        */
+                       source-pdos = <PDO_FIXED(5000, 900,
+                                                (PDO_FIXED_SUSPEND
+                                                 | PDO_FIXED_USB_COMM
+                                                 | PDO_FIXED_DATA_SWAP
+                                                 | PDO_FIXED_DUAL_ROLE))>;
+                       sink-pdos = <PDO_FIXED(5000, 3000,
+                                              (PDO_FIXED_DATA_SWAP
+                                               | PDO_FIXED_USB_COMM
+                                               | PDO_FIXED_HIGHER_CAP
+                                               | PDO_FIXED_DUAL_ROLE))
+                                    PDO_FIXED(9000, 2200, 0)
+                                    PDO_PPS_APDO(5000, 11000, 3000)>;
+                       sink-vdos = <VDO_IDH(1, 1, IDH_PTYPE_PERIPH, 0,
+                                            IDH_PTYPE_DFP_HOST, 2, 0x18d1)
+                                    VDO_CERT(0x0)
+                                    VDO_PRODUCT(0x4ee1, 0x0)
+                                    VDO_UFP(UFP_VDO_VER1_2,
+                                            (DEV_USB2_CAPABLE
+                                             | DEV_USB3_CAPABLE),
+                                            UFP_RECEPTACLE, 0,
+                                            AMA_VCONN_NOT_REQ, 0,
+                                            UFP_ALTMODE_NOT_SUPP,
+                                            UFP_USB32_GEN1)
+                                    /* padding */ 0
+                                    VDO_DFP(DFP_VDO_VER1_1,
+                                            (HOST_USB2_CAPABLE
+                                             | HOST_USB3_CAPABLE),
+                                            DFP_RECEPTACLE, 0)>;
+                       sink-vdos-v1 = <VDO_IDH(1, 1, IDH_PTYPE_PERIPH, 0,
+                                               0, 0, 0x18d1)
+                                       VDO_CERT(0x0)
+                                       VDO_PRODUCT(0x4ee1, 0x0)>;
+                       /*
+                        * Until bootloader is updated to set those two when
+                        * console is enabled, we disable PD here.
+                        */
+                       pd-disable;
+                       typec-power-opmode = "default";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usbc0_orien_sw: endpoint {
+                                               remote-endpoint = <&usbdrd31_phy_orien_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usbc0_role_sw: endpoint {
+                                               remote-endpoint = <&usbdrd31_dwc3_role_switch>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&pinctrl_far_alive {
+       key_voldown: key-voldown-pins {
+               samsung,pins = "gpa7-3";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       key_volup: key-volup-pins {
+               samsung,pins = "gpa8-1";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       typec_int: typec-int-pins {
+               samsung,pins = "gpa8-2";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+               samsung,pin-pud = <GS101_PIN_PULL_UP>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+};
+
+&pinctrl_gpio_alive {
+       key_power: key-power-pins {
+               samsung,pins = "gpa10-1";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+};
+
+&serial_0 {
+       status = "okay";
+};
+
+&ufs_0 {
+       status = "okay";
+       vcc-supply = <&ufs_0_fixed_vcc_reg>;
+};
+
+&ufs_0_phy {
+       status = "okay";
+};
+
+&usbdrd31 {
+       vdd10-supply = <&reg_placeholder>;
+       vdd33-supply = <&reg_placeholder>;
+       status = "okay";
+};
+
+&usbdrd31_dwc3 {
+       dr_mode = "otg";
+       usb-role-switch;
+       role-switch-default-mode = "peripheral";
+       maximum-speed = "super-speed-plus";
+       status = "okay";
+
+       port {
+               usbdrd31_dwc3_role_switch: endpoint {
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
+&usbdrd31_phy {
+       orientation-switch;
+       /* TODO: Update these once PMIC is implemented */
+       pll-supply = <&reg_placeholder>;
+       dvdd-usb20-supply = <&reg_placeholder>;
+       vddh-usb20-supply = <&reg_placeholder>;
+       vdd33-usb20-supply = <&reg_placeholder>;
+       vdda-usbdp-supply = <&reg_placeholder>;
+       vddh-usbdp-supply = <&reg_placeholder>;
+       status = "okay";
+
+       port {
+               usbdrd31_phy_orien_switch: endpoint {
+                       remote-endpoint = <&usbc0_orien_sw>;
+               };
+       };
+};
+
+&usi_uart {
+       samsung,clkreq-on; /* needed for UART mode */
+       status = "okay";
+};
+
+&usi8 {
+       samsung,mode = <USI_V2_I2C>;
+       status = "okay";
+};
+
+&usi12 {
+       samsung,mode = <USI_V2_I2C>;
+       status = "okay";
+};
+
+&watchdog_cl0 {
+       timeout-sec = <30>;
+       status = "okay";
+};