// 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 - */ /dts-v1/; #include #include #include #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 = ; gpios = <&gpa7 3 GPIO_ACTIVE_LOW>; wakeup-source; }; button-vol-up { label = "KEY_VOLUMEUP"; linux,code = ; gpios = <&gpa8 1 GPIO_ACTIVE_LOW>; wakeup-source; }; button-power { label = "KEY_POWER"; linux,code = ; 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 = ; sink-pdos = ; sink-vdos = ; sink-vdos-v1 = ; /* * 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 = ; samsung,pin-pud = ; samsung,pin-drv = ; }; key_volup: key-volup-pins { samsung,pins = "gpa8-1"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; }; typec_int: typec-int-pins { samsung,pins = "gpa8-2"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; }; }; &pinctrl_gpio_alive { key_power: key-power-pins { samsung,pins = "gpa10-1"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; }; }; &serial_0 { status = "okay"; }; &ufs_0 { status = "okay"; vcc-supply = <&ufs_0_fixed_vcc_reg>; }; &ufs_0_phy { status = "okay"; }; &usbdrd31 { vdd10-supply = <®_placeholder>; vdd33-supply = <®_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 = <®_placeholder>; dvdd-usb20-supply = <®_placeholder>; vddh-usb20-supply = <®_placeholder>; vdd33-usb20-supply = <®_placeholder>; vdda-usbdp-supply = <®_placeholder>; vddh-usbdp-supply = <®_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 = ; status = "okay"; }; &usi12 { samsung,mode = ; status = "okay"; }; &watchdog_cl0 { timeout-sec = <30>; status = "okay"; };