// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
 */

/dts-v1/;

#include "sm8350-sony-xperia-sagami.dtsi"

/ {
	model = "Sony Xperia 1 III";
	compatible = "sony,pdx215-generic", "qcom,sm8350";
};

&i2c13 {
	pmic@75 {
		compatible = "dlg,slg51000";
		reg = <0x75>;
		dlg,cs-gpios = <&pm8350b_gpios 1 GPIO_ACTIVE_HIGH>;

		pinctrl-names = "default";
		pinctrl-0 = <&cam_pwr_a_cs>;

		regulators {
			slg51000_a_ldo1: ldo1 {
				regulator-name = "slg51000_a_ldo1";
				regulator-min-microvolt = <2400000>;
				regulator-max-microvolt = <3300000>;
			};

			slg51000_a_ldo2: ldo2 {
				regulator-name = "slg51000_a_ldo2";
				regulator-min-microvolt = <2400000>;
				regulator-max-microvolt = <3300000>;
			};

			slg51000_a_ldo3: ldo3 {
				regulator-name = "slg51000_a_ldo3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3750000>;
			};

			slg51000_a_ldo4: ldo4 {
				regulator-name = "slg51000_a_ldo4";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3750000>;
			};

			slg51000_a_ldo5: ldo5 {
				regulator-name = "slg51000_a_ldo5";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1200000>;
			};

			slg51000_a_ldo6: ldo6 {
				regulator-name = "slg51000_a_ldo6";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1200000>;
			};

			slg51000_a_ldo7: ldo7 {
				regulator-name = "slg51000_a_ldo7";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3750000>;
			};
		};
	};
};

&pm8350b_gpios {
	gpio-line-names = "CAM_PWR_A_CS", /* GPIO_1 */
			  "NC",
			  "NC",
			  "NC",
			  "SNAPSHOT_N",
			  "CAM_PWR_LD_EN",
			  "NC",
			  "FOCUS_N";

	cam_pwr_a_cs: cam-pwr-a-cs-state {
		pins = "gpio1";
		function = "normal";
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
		power-source = <1>;
		drive-push-pull;
		output-high;
	};
};

&pm8350c_gpios {
	gpio-line-names = "FL_STROBE_TRIG_WIDE", /* GPIO_1 */
			  "FL_STROBE_TRIG_TELE",
			  "NC",
			  "WLC_TXPWR_EN",
			  "NC",
			  "RGBC_IR_PWR_EN",
			  "NC",
			  "NC",
			  "WIDEC_PWR_EN";
};

&tlmm {
	gpio-line-names = "APPS_I2C_0_SDA", /* GPIO_0 */
			  "APPS_I2C_0_SCL",
			  "UWIDEC_PWR_EN",
			  "HAP_RST_N",
			  "WLC_I2C_SDA",
			  "WLC_I2C_SCL",
			  "PM8008_1_RESET_N",
			  "WLC_INT_N",
			  "OIS_TELE_I2C_SDA",
			  "OIS_TELE_I2C_SCL",
			  "PM8350_OPTION", /* GPIO_10 */
			  "NC",
			  "APPS_I2C_1_SDA",
			  "APPS_I2C_1_SCL",
			  "NC",
			  "NC",
			  "CAM1_RESET_N",
			  "LEO_CAM0_RESET_N",
			  "DEBUG_UART_TX",
			  "DEBUG_UART_RX",
			  "TS_I2C_SDA", /* GPIO_20 */
			  "TS_I2C_SCL",
			  "TS_RESET_N",
			  "TS_INT_N",
			  "DISP_RESET_N",
			  "SW_SERVICE",
			  "DISP_ERR_FG",
			  "TX_GTR_THRES_IN",
			  "NC",
			  "NC",
			  "NC", /* GPIO_30 */
			  "NC",
			  "NC",
			  "NC",
			  "NC",
			  "NC",
			  "SPK_AMP_INT_N",
			  "SPK_AMP_RESET_N",
			  "FP_INT_N",
			  "FP_RESET_N",
			  "NC", /* GPIO_40 */
			  "NC",
			  "DEBUG_GPIO0",
			  "FORCE_USB_BOOT",
			  "FP_SPI_MISO",
			  "FP_SPI_MOSI",
			  "FP_SPI_CLK",
			  "FP_SPI_CS_N",
			  "SPK_AMP_I2C_SDA",
			  "SPK_AMP_I2C_SCL",
			  "NC", /* GPIO_50 */
			  "HAP_INT_N",
			  "CAMSENSOR_I2C_SDA",
			  "CAMSENSOR_I2C_SCL",
			  "SBU_SW_OE",
			  "SBU_SW_SEL",
			  "NFC_ESE_SPI_MISO",
			  "NFC_ESE_SPI_MOSI",
			  "NFC_ESE_SPI_CLK",
			  "NFC_ESE_SPI_CS",
			  "NFC_I2C_SDA", /* GPIO_60 */
			  "NFC_I2C_SCL",
			  "NFC_EN",
			  "NFC_CLK_REQ",
			  "HST_WLAN_EN",
			  "HST_BT_EN",
			  "HW_ID_0",
			  "HW_ID_1",
			  "HST_BT_UART_CTS",
			  "HST_BT_UART_RFR",
			  "HST_BT_UART_TX", /* GPIO_70 */
			  "HST_BT_UART_RX",
			  "HAP_I2C_SDA",
			  "HAP_I2C_SCL",
			  "RF_LCD_ID_EN",
			  "RF_ID_EXTENSION",
			  "NC",
			  "NC",
			  "NC",
			  "NC",
			  "HALL_INT_N", /* GPIO_80 */
			  "USB_CC_DIR",
			  "DISP_VSYNC",
			  "NC",
			  "NC",
			  "CAM_SOF_TELE",
			  "NFC_DWL_REQ",
			  "NFC_IRQ",
			  "WCD_RST_N",
			  "ALS_PROX_INT_N",
			  "NC", /* GPIO_90 */
			  "NC",
			  "TRAY_DET",
			  "UDON_SWITCH_SEL",
			  "PCIE0_RESET_N",
			  "PCIE0_CLK_REQ_N",
			  "PCIE0_WAKE_N",
			  "CAM_SOF",
			  "RF_ID_EXTENSION_2",
			  "RGBC_IR_INT",
			  "CAM_MCLK0", /* GPIO_100 */
			  "CAM_MCLK1",
			  "CAM_MCLK2",
			  "CAM_MCLK3",
			  "CAM_MCLK4",
			  "NC",
			  "CAM2_RESET_N",
			  "CCI_I2C0_SDA",
			  "CCI_I2C0_SCL",
			  "CCI_I2C1_SDA",
			  "CCI_I2C1_SCL", /* GPIO_110 */
			  "CCI_I2C2_SDA",
			  "CCI_I2C2_SCL",
			  "CCI_I2C3_SDA",
			  "CCI_I2C3_SCL",
			  "NC",
			  "PM8008_1_IRQ",
			  "CAM3_RESET_N",
			  "IMU1_INT",
			  "EXT_VD0_XVS",
			  "NC", /* GPIO_120 */
			  "NC",
			  "NC",
			  "NC",
			  "NC",
			  "HAP_I2S_CLK",
			  "HAP_I2S_DOUT",
			  "HAP_TRG1",
			  "HAP_I2S_SYNC",
			  "HST_BT_WLAN_SLIMBUS_CLK",
			  "HST_BT_WLAN_SLIMBUS_DAT0", /* GPIO_130 */
			  "NC",
			  "UIM2_DETECT_EN",
			  "UIM2_DATA",
			  "UIM2_CLK",
			  "UIM2_RESET",
			  "UIM2_PRESENT",
			  "UIM1_DATA",
			  "UIM1_CLK",
			  "UIM1_RESET",
			  "TRAY_DET", /* GPIO_140 */
			  "SM_RFFE0_CLK",
			  "SM_RFFE0_DATA",
			  "SM_RFFE1_CLK",
			  "SM_RFFE1_DATA",
			  "SM_MSS_GRFC4",
			  "SM_MSS_GRFC5",
			  "SM_MSS_GRFC6",
			  "SM_MSS_GRFC7",
			  "SM_RFFE4_CLK",
			  "SM_RFFE4_DATA", /* GPIO_150 */
			  "WLAN_COEX_UART1_RX",
			  "WLAN_COEX_UART1_TX",
			  "HST_SW_CTRL",
			  "DISP_VDDR_EN",
			  "NC",
			  "NC",
			  "PA_INDICATOR_OR",
			  "TOF_RST_N",
			  "QLINK0_REQ",
			  "QLINK0_EN", /* GPIO_160 */
			  "QLINK0_WMSS_RESET_N",
			  "QLINK1_REQ",
			  "QLINK1_EN",
			  "QLINK1_WMSS_RESET_N",
			  "PM8008_2_IRQ",
			  "TELEC_PWR_EN",
			  "PM8008_2_RESET_N",
			  "WCD_SWR_TX_CLK",
			  "WCD_SWR_TX_DATA0",
			  "WCD_SWR_TX_DATA1", /* GPIO_170 */
			  "WCD_SWR_RX_CLK",
			  "WCD_SWR_RX_DATA0",
			  "WCD_SWR_RX_DATA1",
			  "SM_DMIC1_CLK",
			  "SM_DMIC1_DATA",
			  "SM_DMIC2_CLK",
			  "SM_DMIC2_DATA",
			  "SPK_AMP_I2S_CLK",
			  "SPK_AMP_I2S_WS",
			  "SPK_AMP_I2S_ASP_DIN", /* GPIO_180 */
			  "SPK_AMP_I2S_ASP_DOUT",
			  "WCD_SWR_TX_DATA2",
			  "NC",
			  "NC",
			  "NC",
			  "NC",
			  "IMU_SPI_MISO",
			  "IMU_SPI_MOSI",
			  "IMU_SPI_CLK",
			  "IMU_SPI_CS_N", /* GPIO_190 */
			  "MAG_I2C_SDA",
			  "MAG_I2C_SCL",
			  "SENSOR_I2C_SDA",
			  "SENSOR_I2C_SCL",
			  "NC",
			  "NC",
			  "NC",
			  "NC",
			  "HST_BLE_UART_TX",
			  "HST_BLE_UART_RX", /* GPIO_200 */
			  "HST_WLAN_UART_TX",
			  "HST_WLAN_UART_RX";
};