diff --git a/qcom/bt/Kbuild b/qcom/bt/Kbuild new file mode 100644 index 00000000..fda148df --- /dev/null +++ b/qcom/bt/Kbuild @@ -0,0 +1,36 @@ +ifeq ($(CONFIG_ARCH_PINEAPPLE),y) +dtbo-y += pineapple-kiwi-bt.dtbo +endif + +ifeq ($(CONFIG_ARCH_TUNA),y) +dtbo-y += tuna-wcn7750-bt.dtbo +dtbo-y += tuna-kiwi-bt.dtbo +endif + +ifeq ($(CONFIG_ARCH_KERA), y) +dtbo-y += kera-qca6750-bt.dtbo +dtbo-y += kera-wcn7750-bt.dtbo +endif + +ifeq ($(CONFIG_ARCH_SUN), y) +dtbo-y += sun-peach-bt.dtbo +dtbo-y += sun-kiwi-bt.dtbo +dtbo-y += sun-peach-bt-v8.dtbo +dtbo-y += sun-kiwi-bt-v8.dtbo +dtbo-y += sun-wcn786x-v8.dtbo +dtbo-y += sunp-hdk-peach-bt-v8.dtbo +endif + +ifeq ($(CONFIG_ARCH_RAVELIN), y) +dtbo-y += ravelin-bt.dtbo +endif + +ifeq ($(CONFIG_ARCH_PARROT), y) +dtbo-y += parrot-wcn3990-bt.dtbo +dtbo-y += parrot-wcn6750-bt.dtbo +endif + +always-y := $(dtb-y) $(dtbo-y) +subdir-y := $(dts-dirs) +clean-files := *.dtb *.dtbo + diff --git a/qcom/bt/Makefile b/qcom/bt/Makefile new file mode 100644 index 00000000..ef33f916 --- /dev/null +++ b/qcom/bt/Makefile @@ -0,0 +1,9 @@ +KBUILD_OPTIONS += KBUILD_EXTMOD_DTS=. + +all: dtbs + +clean: + $(MAKE) -C $(KERNEL_SRC) M=$(M) clean + +%: + $(MAKE) -C $(KERNEL_SRC) M=$(M) $@ $(KBUILD_OPTIONS) diff --git a/qcom/bt/bindings/bluetooth/btfm_slim.txt b/qcom/bt/bindings/bluetooth/btfm_slim.txt new file mode 100644 index 00000000..2f116b5a --- /dev/null +++ b/qcom/bt/bindings/bluetooth/btfm_slim.txt @@ -0,0 +1,16 @@ +* BTFM Slimbus Slave Driver +BTFM Slimbus Slave driver configure and initialize slimbus slave device. +Bluetooth A2DP, SCO and FM Audio data is transferred over slimbus interface. + +Required properties: + - compatible: Should be set to the following where 217 is manufacture id and 221 is prod id: + ex. HSP elmental address is 0x000120021702 + compatible = "slim217,221" + - reg should be filled as per specs + reg = <1 0>; + +Example: + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + }; diff --git a/qcom/bt/bindings/bluetooth/btpower.txt b/qcom/bt/bindings/bluetooth/btpower.txt new file mode 100644 index 00000000..c0227c2b --- /dev/null +++ b/qcom/bt/bindings/bluetooth/btpower.txt @@ -0,0 +1,60 @@ +* Bluetooth Controller +Bluetooth controller communicates with the Bluetooth Host using HCI Transport +layer. HCI Transport layer can be based on UART or USB serial communication +protocol. + +Required properties: +- compatible: "qcom," + chip: Should be set to one of the following: + qcom,qca6174 + qcom,wcn3990 + qcom,qca6390 + qcom,qca6490 + qcom,kiwi + - qcom,bt-reset-gpio: GPIO pin to bring BT Controller out of reset + +Optional properties: + - qcom,xo-clk-gpio: GPIO for enabling clock at bootstrap + - qcom,bt-vdd-pa-supply: Bluetooth VDD PA regulator handle + - qcom,bt-vdd-io-supply: Bluetooth VDD IO regulator handle + - qcom,bt-vdd-ldo-supply: Bluetooth VDD LDO regulator handle. Kept under + optional parameters as some of the chipsets doesn't require ldo + or it may use from same vddio. + - qcom,bt-vdd-xtal-supply: Bluetooth VDD XTAL regulator handle + - qcom,bt-vdd-core-supply: Bluetooth VDD CORE regulator handle + - qcom,bt-vdd-asd-supply: Bluetooth VDD regulator handle for antenna switch + - reg: Memory regions defined as starting address and size + - reg-names: Names of the memory regions defined in reg entry + diversity. + - qcom,bt-chip-pwd-supply: Chip power down gpio is required when bluetooth + module and other modules like wifi co-exist in a singe chip and + shares a common gpio to bring chip out of reset. + - qcom,-config: Specifies voltage/current levels for supply. Should specified + in pairs (min, max), units uV. There can be optional + load in curr, unit uA. Last entry specifies if the retention + mode is supported for the regulator. + - mboxes: Specifies mbox channel data for AOP messaging + - qcom,vreg_ipa: Specifies Voltage regulator used for QCA6490 Internal Power + Amp config + +Example: + bluetooth: bt_qca6490 { + compatible = "qcom,qca6390", "qcom,qca6490"; + pinctrl-names = "default"; + pinctrl-0 = <&bt_en_sleep>; + qcom,bt-reset-gpio = <&tlmm 81 0>; /* BT_EN */ + qcom,wl-reset-gpio = <&tlmm 80 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 82 0>; /* SW_CTRL */ + qcom,bt-xo-clk-gpio = <&tlmm 204 0>; /* XO */ + qcom,bt-vdd-aon-supply = <&S11B>; + qcom,bt-vdd-dig-supply = <&S11B>; + qcom,bt-vdd-rfa1-supply = <&S1C>; + qcom,bt-vdd-rfa2-supply = <&S12B>; + qcom,bt-vdd-asd-supply = <&L7E>; + + qcom,bt-vdd-aon-config = <966000 966000 0 1>; + qcom,bt-vdd-dig-config = <966000 966000 0 1>; + qcom,bt-vdd-rfa1-config = <1880000 1880000 0 1>; + qcom,bt-vdd-rfa2-config = <1350000 1350000 0 1>; + qcom,bt-vdd-asd-config = <2800000 2800000 0 1>; + }; diff --git a/qcom/bt/bindings/bt-fm/rtc6226_fm.txt b/qcom/bt/bindings/bt-fm/rtc6226_fm.txt new file mode 100644 index 00000000..d77417bf --- /dev/null +++ b/qcom/bt/bindings/bt-fm/rtc6226_fm.txt @@ -0,0 +1,13 @@ +Richwave FM radio device + +-FM RX playback with RDS +FM signal is demodulated then audio L/R samples are sent to external audio codec. +FM Rx RDS data received sent to host processor on I2C. + +Required Properties: +- compatible: "rtc6226" + +Example: + rtc6226 { + compatible = "rtc6226"; + }; diff --git a/qcom/bt/kera-qca6750-bt.dts b/qcom/bt/kera-qca6750-bt.dts new file mode 100644 index 00000000..e4d1e549 --- /dev/null +++ b/qcom/bt/kera-qca6750-bt.dts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "kera-qca6750-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Kera"; + compatible = "qcom,kera-atp", "qcom,kera", "qcom,atp", + "qcom,kera-cdp", "qcom,cdp", "qcom,kera-mtp", + "qcom,mtp", "qcom,kera-rcm", "qcom,rcm"; + qcom,msm-id = <686 0x10000>, <659 0x10000>; + qcom,board-id = <0x000021 0>, <0x010001 0>, <0x020001 0>, + <0x030001 0>, <0x040001 0>, <0x010008 0>, + <0x020008 0>, <0x030008 0>, <0x010015 0>, + <0x020015 0>, <0x030015 0>, <0x03000B 1>, + <0x050001 0>; +}; diff --git a/qcom/bt/kera-qca6750-bt.dtsi b/qcom/bt/kera-qca6750-bt.dtsi new file mode 100644 index 00000000..2bb610a9 --- /dev/null +++ b/qcom/bt/kera-qca6750-bt.dtsi @@ -0,0 +1,100 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include + +&pm8550vs_g_gpios { + bt_en: bt_en { + pins = "gpio4"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <1>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio81"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_wcn6750 { + compatible = "qcom,wcn6750-bt"; + + pinctrl-names = "bt_en", "sw_ctrl"; + pinctrl-0 = <&bt_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + + qcom,wl-reset-gpio = <&tlmm 35 0>; /* WCN_WLAN_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 81 0>; /* WCN_SW_CTRL */ + qcom,bt-reset-gpio = <&pm8550vs_g_gpios 4 0>; /* WCN_BT_EN */ + + qcom,bt-vdd-io-supply = <&L11B>; /* IO */ + qcom,bt-vdd-aon-supply = <&S3B>; + qcom,bt-vdd-dig-supply = <&S3B>; /* BT_CX_MX */ + qcom,bt-vdd-rfacmn-supply = <&S3B>; + qcom,bt-vdd-rfa-0p8-supply = <&S3B>; + qcom,bt-vdd-rfa1-supply = <&S1B>; /*RFA 1p7*/ + qcom,bt-vdd-rfa2-supply = <&S2B>; /*RFA 1p2*/ + qcom,bt-vdd-ipa-2p2-supply = <&S4B>; /*IPA 2p2*/ + + /* max voltage are set to regulator max voltage supported */ + qcom,bt-vdd-io-config = <1620000 1800000 0 1>; + qcom,bt-vdd-aon-config = <920000 2736000 0 1>; + qcom,bt-vdd-dig-config = <920000 2736000 0 1>; + qcom,bt-vdd-rfacmn-config = <920000 2736000 0 1>; + qcom,bt-vdd-rfa-0p8-config = <920000 2736000 0 1>; + qcom,bt-vdd-rfa1-config = <1856000 2044000 0 1>; + qcom,bt-vdd-rfa2-config = <1256000 2092000 0 1>; + qcom,bt-vdd-ipa-2p2-config = <2200000 2700000 0 1>; + }; + +}; + +&slim_msm { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; + qcom,btslimtx-channels = <159 160>; + qcom,btslimrx-channels = <157 158>; + }; + }; +}; + +//uart instance +&qupv3_se5_4uart { + status = "ok"; +}; + +// FM changes +&qupv3_se4_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 130 0>; + vdd-supply = <&L18B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L7B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; diff --git a/qcom/bt/kera-wcn7750-bt.dts b/qcom/bt/kera-wcn7750-bt.dts new file mode 100644 index 00000000..2ca4919b --- /dev/null +++ b/qcom/bt/kera-wcn7750-bt.dts @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "kera-wcn7750-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Kera"; + compatible = "qcom,kera-mtp", "qcom,kera", "qcom,mtp", + "qcom,kera-qrd", "qcom,qrd", "qcom,kera-rcm", + "qcom,rcm"; + qcom,msm-id = <686 0x10000>, <659 0x10000>; + qcom,board-id = <0x010008 1>, <0x020008 1>, <0x030008 1>, + <0x01000B 0>, <0x02000B 0>, <0x03000B 0>, + <0x010015 1>, <0x020015 1>, <0x030015 1>; +}; \ No newline at end of file diff --git a/qcom/bt/kera-wcn7750-bt.dtsi b/qcom/bt/kera-wcn7750-bt.dtsi new file mode 100644 index 00000000..ec9075b0 --- /dev/null +++ b/qcom/bt/kera-wcn7750-bt.dtsi @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include + +&pm8550vs_g_gpios { + bt_en: bt_en { + pins = "gpio4"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <2>; + }; + bt_fmd_clk_en: bt_fmd_clk_en { + pins = "gpio3"; + function = "normal"; + input-enable; + output-disable; + bias-disable; + power-source = <2>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio81"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_kera { + compatible = "qcom,wcn7750-bt"; + qcom,wcn7750-bt; + + nvmem-cell-names = "fmd_set", "fmd_chg_pon", "fmd_cnt2_stop"; + nvmem-cells = <&fmd_set>, <&fmd_chg_pon>, <&fmd_cnt2_stop>; + + pinctrl-names = "bt_en", "sw_ctrl", "bt_fmd_clk_en"; + pinctrl-0 = <&bt_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + pinctrl-2 = <&bt_fmd_clk_en>; + + clock-names = "bt_rf_clk1"; + clocks = <&rpmhcc RPMH_RF_CLK1>; + + mpm_wake_set_gpios = <81>; + qcom,wl-reset-gpio = <&tlmm 35 0>; /* WCN_WIFI_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 81 0>; /* WCN_SW_CTRL */ + qcom,bt-fmd-clk-gpio = <&pm8550vs_g_gpios 3 0>; /* FMD_CLK_EN */ + qcom,bt-reset-gpio = <&pm8550vs_g_gpios 4 0>; /* WCN_BT_EN */ + + qcom,bt-vdd-io-supply = <&L7B>; /* WCN_1P8_IO */ + qcom,bt-vdd-aon-supply = <&L11B>; /* AON LDO */ + qcom,bt-vdd-rfacmn-supply = <&S3B>; /* RF 0p8/CMN */ + qcom,bt-vdd-dig-supply = <&S3B>; /* BT LDO/BT_CX_MX */ + qcom,bt-vdd-rfa-0p8-supply = <&L6K>; /* RFA 0p8 / AV91C_VDD */ + qcom,bt-vdd-rfa1-supply = <&S1B>; /* RFA 1p7 */ + qcom,bt-vdd-rfa2-supply = <&S2B>; /* RFA 1p2 */ + qcom,bt-vdd-ipa-2p2-supply = <&S4B>; /* WCN_2p2_RFA */ + + qcom,bt-vdd-io-config = <1620000 1800000 0 1 1>; + qcom,bt-vdd-aon-config = <1800000 1800000 0 1 0>; + qcom,bt-vdd-rfacmn-config = <880000 2736000 0 1 0>; + qcom,bt-vdd-dig-config = <880000 2736000 0 1 0>; + qcom,bt-vdd-rfa-0p8-config = <900000 2000000 0 1 0>; + qcom,bt-vdd-rfa1-config = <1856000 2044000 0 1 0>; + qcom,bt-vdd-rfa2-config = <1256000 2092000 0 1 0>; + qcom,bt-vdd-ipa-2p2-config = <2156000 2700000 0 1 1>; + }; +}; + +&swr4 { + btswr_slave: btswr-slave { + compatible = "qcom,btfmswr_slave"; + reg = <0x02 0x08170220>; + }; +}; + +//uart instance +&qupv3_se5_4uart { + status = "ok"; +}; + +// FM changes +&qupv3_se4_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 130 0>; + vdd-supply = <&L18B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L7B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; diff --git a/qcom/bt/parrot-wcn3990-bt.dts b/qcom/bt/parrot-wcn3990-bt.dts new file mode 100644 index 00000000..5f4b2c38 --- /dev/null +++ b/qcom/bt/parrot-wcn3990-bt.dts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn3990-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot SoC"; + compatible = "qcom,parrot"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, + <613 0x10000>, <631 0x10000>, + <633 0x10000>, <634 0x10000>, + <638 0x10000>, <663 0x10000>, + <713 0x10000>, <714 0x10000>; + qcom,board-id = <33 0>, <34 1>, <34 3>, <34 0x601>, <34 0x603>, <0x1000B 0x600>, <0x1000B 0>; +}; + diff --git a/qcom/bt/parrot-wcn3990-bt.dtsi b/qcom/bt/parrot-wcn3990-bt.dtsi new file mode 100644 index 00000000..2633619c --- /dev/null +++ b/qcom/bt/parrot-wcn3990-bt.dtsi @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include + +&soc { + bluetooth: bt_wcn3990 { + compatible = "qcom,wcn3990"; + qcom,bt-sw-ctrl-gpio = <&tlmm 61 GPIO_ACTIVE_HIGH>; + qcom,bt-vdd-io-supply = <&L22B>; /* IO */ + qcom,bt-vdd-core-supply = <&L14B>; /* RFA */ + qcom,bt-vdd-pa-supply = <&L10E>; /* CH0 */ + qcom,bt-vdd-xtal-supply = <&L1E>; /* XO */ + + qcom,bt-vdd-io-config = <1700000 1900000 1 0>; + qcom,bt-vdd-core-config = <1304000 1304000 1 0>; + qcom,bt-vdd-pa-config = <3000000 3312000 1 0>; + qcom,bt-vdd-xtal-config = <1700000 1900000 1 0>; + }; + + slim_msm: slim@3340000 { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; /* BT SLIM EP address*/ + qcom,btslimtx-channels = <159 160>; + qcom,btslimrx-channels = <157 158>; + }; + }; + }; +}; + +//FM changes +&qupv3_se2_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 105 0>; + vdd-supply = <&L5E>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L22B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se11_4uart { + status = "ok"; +}; + + diff --git a/qcom/bt/parrot-wcn6750-bt.dts b/qcom/bt/parrot-wcn6750-bt.dts new file mode 100644 index 00000000..0746a3f3 --- /dev/null +++ b/qcom/bt/parrot-wcn6750-bt.dts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn6750-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot SoC"; + compatible = "qcom,parrot"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, + <613 0x10000>, <631 0x10000>, + <633 0x10000>, <634 0x10000>, + <638 0x10000>, <663 0x10000>, + <713 0x10000>, <714 0x10000>; + qcom,board-id = <34 0>, <34 2>, <34 4>, <34 5>, <34 6>, <34 0x600>, <34 0x602>, <34 0x604>, <0x1000B 1>, <0x1000B 2>, <0x1000B 0x601>; +}; + diff --git a/qcom/bt/parrot-wcn6750-bt.dtsi b/qcom/bt/parrot-wcn6750-bt.dtsi new file mode 100644 index 00000000..9dffa707 --- /dev/null +++ b/qcom/bt/parrot-wcn6750-bt.dtsi @@ -0,0 +1,78 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&soc { + bluetooth: bt_wcn6750 { + compatible = "qcom,wcn6750-bt"; + pinctrl-names = "default"; + pinctrl-0 = <&bt_en_sleep>; + qcom,bt-reset-gpio = <&tlmm 35 0>; /* BT_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 61 0>; /* SW_CTRL */ + qcom,wl-reset-gpio = <&tlmm 36 0>; /* WL_EN */ + tsens = "quiet-therm"; + + qcom,bt-vdd-io-supply = <&L22B>; /* IO */ + qcom,bt-vdd-aon-supply = <&S7B>; + qcom,bt-vdd-dig-supply = <&S7B>; /* BT_CX_MX */ + qcom,bt-vdd-rfacmn-supply = <&S7B>; + qcom,bt-vdd-rfa-0p8-supply = <&S7B>; + qcom,bt-vdd-rfa1-supply = <&S8E>; /*RFA 1p7*/ + qcom,bt-vdd-rfa2-supply = <&S8B>; /*RFA 1p2*/ + qcom,bt-vdd-ipa-2p2-supply = <&S9B>; /*IPA 2p2*/ + //qcom,bt-vdd-asd-supply = <&L11C>; + + /* max voltage are set to regulator max voltage supported */ + qcom,bt-vdd-io-config = <1800000 2000000 0 1>; + qcom,bt-vdd-aon-config = <824000 1174000 0 1>; + qcom,bt-vdd-dig-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfacmn-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfa-0p8-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfa1-config = <1872000 2040000 0 1>; + qcom,bt-vdd-rfa2-config = <1256000 1654000 0 1>; + qcom,bt-vdd-ipa-2p2-config = <2200000 2208000 0 1>; + //qcom,bt-vdd-asd-config = <2800000 3544000 0 1>; + }; + + slim_msm: slim@3340000 { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; /* BT SLIM EP address*/ + qcom,btslimtx-channels = <159 160>; + qcom,btslimrx-channels = <157 158>; + }; + }; + }; +}; + +//FM changes +&qupv3_se2_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 105 0>; + vdd-supply = <&L5E>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L22B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se11_4uart { + status = "ok"; +}; + diff --git a/qcom/bt/pineapple-kiwi-bt.dts b/qcom/bt/pineapple-kiwi-bt.dts new file mode 100644 index 00000000..bfef341e --- /dev/null +++ b/qcom/bt/pineapple-kiwi-bt.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "pineapple-kiwi-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple SoCs"; + compatible = "qcom,pineapple", "qcom,pineapplep"; + qcom,msm-id = <557 0x10000>, <577 0x10000>, <557 0x20000>, <577 0x20000>, + <696 0x20000>; + qcom,board-id = <0 0>; +}; diff --git a/qcom/bt/pineapple-kiwi-bt.dtsi b/qcom/bt/pineapple-kiwi-bt.dtsi new file mode 100644 index 00000000..17018223 --- /dev/null +++ b/qcom/bt/pineapple-kiwi-bt.dtsi @@ -0,0 +1,98 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&tlmm { + bt_en_sleep: bt_en_sleep { + mux { + pins = "gpio17"; + function = "gpio"; + }; + + config { + pins = "gpio17"; + drive-strength = <2>; + output-low; + bias-pull-down; + }; + }; +}; + +&soc { + bluetooth: bt_kiwi { + compatible = "qcom,kiwi"; + pinctrl-names = "bt_en_sleep"; + pinctrl-0 = <&bt_en_sleep>; + /* List of GPIOs to be setup for interrupt wakeup capable*/ + mpm_wake_set_gpios = <18>; + qcom,bt-reset-gpio = <&tlmm 17 0>; /* BT_EN */ + qcom,wl-reset-gpio = <&tlmm 16 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 18 0>; /* SW_CTRL */ + mboxes = <&qmp_aop 0>; + + qcom,bt-vdd18-aon-supply = <&L15B>; /* BT VDD1.8 AON */ + qcom,bt-vdd12-io-supply = <&L3C>; /* BT VDD1.2V IO */ + qcom,bt-ant-ldo-supply = <&L6K>; /* BT ANT */ + qcom,bt-vdd-dig-supply = <&S3C>; /* BT LDO*/ + qcom,bt-vdd-aon-supply = <&S3C>; /* BT AON LDO*/ + qcom,bt-vdd-rfaOp8-supply = <&S3C>; /* BT RFAOp8 CMN LDO*/ + qcom,bt-vdd-rfa1-supply = <&S1C>; /* BT RFA1.2 LDO */ + qcom,bt-vdd-rfa2-supply = <&S6C>; /* BT RFA1.8 LDO */ + + qcom,bt-vdd18-aon-config = <1800000 1800000 0 1>; + qcom,bt-vdd12-io-config = <1200000 1200000 0 1>; + qcom,bt-ant-ldo-config = <1800000 1800000 0 1>; + qcom,bt-vdd-aon-config = <916000 916000 0 1>; + qcom,bt-vdd-dig-config = <916000 916000 0 1>; + qcom,bt-vdd-rfaOp8-config = <916000 916000 0 1>; + qcom,bt-vdd-rfa1-config = <1316000 1316000 0 1>; + qcom,bt-vdd-rfa2-config = <1864000 1864000 0 1>; + qcom,pdc_init_table= + "{class: wlan_pdc, ss: rf, res: s3c.v, upval: 916}", + "{class: wlan_pdc, ss: rf, res: s3c.v, dwnval: 612}", + "{class: wlan_pdc, ss: rf, res: s1c.v, upval: 1316}", + "{class: wlan_pdc, ss: rf, res: s1c.v, dwnval: 944}", + "{class: wlan_pdc, ss: rf, res: s6c.v, upval: 1864}", + "{class: wlan_pdc, ss: rf, res: s6c.v, dwnval: 1820}"; + }; + slim_msm: slim@6C40000 { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; /* BT SLIM EP address*/ + qcom,btslimtx-channels = <159 160>; /* slimbus FM_Tx, SCO_Tx channels */ + qcom,btslimrx-channels = <157 158>; /* slimbus SCO_A2DP_Rx A2DP_Rx */ + }; + }; + }; +}; + +// FM changes +&qupv3_se6_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 85 0>; + vdd-supply = <&L16B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L15B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; diff --git a/qcom/bt/ravelin-bt.dts b/qcom/bt/ravelin-bt.dts new file mode 100755 index 00000000..29f9dabb --- /dev/null +++ b/qcom/bt/ravelin-bt.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "ravelin-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Ravelin SoC"; + compatible = "qcom,ravelin"; + qcom,msm-id = <568 0x10000>, <581 0x10000>, <582 0x10000>, <602 0x10000>, <653 0x10000>, + <654 0x10000>; + qcom,board-id = <0 0>, <0x1000B 0>, <0x1000B 0x600>, <33 0>, <34 0>, <34 0x601>, <34 2>; +}; + diff --git a/qcom/bt/ravelin-bt.dtsi b/qcom/bt/ravelin-bt.dtsi new file mode 100755 index 00000000..1a6b864a --- /dev/null +++ b/qcom/bt/ravelin-bt.dtsi @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include + +&soc { + bluetooth: bt_wcn3990 { + compatible = "qcom,wcn3990"; + qcom,bt-sw-ctrl-gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>; + qcom,bt-vdd-io-supply = <&L21B>; + qcom,bt-vdd-core-supply = <&L14B>; + qcom,bt-vdd-pa-supply = <&L7E>; + qcom,bt-vdd-xtal-supply = <&L23B>; + + qcom,bt-vdd-io-config = <1700000 1900000 1 0>; + qcom,bt-vdd-core-config = <1304000 1304000 1 0>; + qcom,bt-vdd-pa-config = <3000000 3312000 1 0>; + qcom,bt-vdd-xtal-config = <1700000 1900000 1 0>; + }; + + slim_msm: slim@3340000 { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; /* BT SLIM EP address*/ + qcom,btslimtx-channels = <159 160>; + qcom,btslimrx-channels = <157 158>; + }; + }; + }; +}; + +//uart instance +&qupv3_se2_4uart { + status = "ok"; +}; + diff --git a/qcom/bt/sun-kiwi-bt-v8.dts b/qcom/bt/sun-kiwi-bt-v8.dts new file mode 100644 index 00000000..5170bc27 --- /dev/null +++ b/qcom/bt/sun-kiwi-bt-v8.dts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "sun-kiwi-bt-v8.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Sun SoCs"; + compatible = "qcom,sun", "qcom,sunp"; + qcom,msm-id = <618 0x10000>, <618 0x20000>, <639 0x10000>, <639 0x20000>, + <0x100026a 0x10000>, <0x100026a 0x20000>, + <0x100027f 0x10000>, <0x100027f 0x20000>; + qcom,board-id = <0x60001 0>, <0x50008 0>, <0x20015 0>, <0x60108 0>; +}; diff --git a/qcom/bt/sun-kiwi-bt-v8.dtsi b/qcom/bt/sun-kiwi-bt-v8.dtsi new file mode 100644 index 00000000..2932d11d --- /dev/null +++ b/qcom/bt/sun-kiwi-bt-v8.dtsi @@ -0,0 +1,120 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include + +&pm8550ve_f_gpios { + bt_en: bt_en { + pins = "gpio3"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <2>; + }; + bt_fmd_clk_en: bt_fmd_clk_en { + pins = "gpio6"; + function = "normal"; + input-enable; + output-disable; + bias-disable; + power-source = <2>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio18"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_kiwi { + compatible = "qcom,kiwi"; + nvmem-cells = <&fmd_set>, <&fmd_chg_pon>, <&fmd_cnt2_stop>; + nvmem-cell-names = "fmd_set", "fmd_chg_pon", "fmd_cnt2_stop"; + clocks = <&rpmhcc RPMH_RF_CLK1>; + clock-names = "bt_rf_clk1"; + pinctrl-names = "bt_en", "sw_ctrl", "bt_fmd_clk_en"; + pinctrl-0 = <&bt_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + pinctrl-2 = <&bt_fmd_clk_en>; + /* List of GPIOs to be setup for interrupt wakeup capable*/ + mpm_wake_set_gpios = <18>; + qcom,wl-reset-gpio = <&tlmm 16 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 18 0>; /* SW_CTRL */ + qcom,bt-fmd-clk-gpio = <&pm8550ve_f_gpios 6 0>; /* FMD_CLK_CTRL */ + qcom,bt-reset-gpio = <&pm8550ve_f_gpios 3 0>; /* BT_EN */ + qcom,qmp = <&aoss_qmp>; + + qcom,bt-vdd18-aon-supply = <&L3F>; /* BT VDD1.8 AON */ + qcom,bt-vdd12-io-supply = <&L2F>; /* BT VDD1.2V IO */ + qcom,bt-ant-ldo-supply = <&L6K>; /* BT ANT - AV91C_VDD */ + qcom,bt-vdd-aon-supply = <&S1D>; /* BT AON LDO*/ + qcom,bt-vdd-rfaOp8-supply = <&S1D>; /* BT RFAOp8 CMN LDO*/ + qcom,bt-vdd-rfa1-supply = <&S7I>; /* BT RFA1.2 LDO */ + qcom,bt-vdd-rfa2-supply = <&S3G>; /* BT RFA1.8 LDO */ + + qcom,bt-vdd18-aon-config = <1800000 1800000 30000 1 1>; + qcom,bt-vdd12-io-config = <1200000 1200000 30000 1 1>; + qcom,bt-ant-ldo-config = <1800000 1800000 0 1 0>; + qcom,bt-vdd-aon-config = <916000 1100000 0 1 0>; + qcom,bt-vdd-rfaOp8-config = <916000 1100000 0 1 0>; + qcom,bt-vdd-rfa1-config = <1316000 1340000 0 1 0>; + qcom,bt-vdd-rfa2-config = <1864000 2000000 0 1 0>; + + qcom,pdc_init_table = + "{class: wlan_pdc, ss: rf, res: s3g.v, upval: 1856}", + "{class: wlan_pdc, ss: rf, res: s3g.v, dwnval: 1844}", + "{class: wlan_pdc, ss: rf, res: s7i.v, upval: 1316}", + "{class: wlan_pdc, ss: rf, res: s7i.v, dwnval: 972}", + "{class: wlan_pdc, ss: rf, res: s1d.m, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s1d.v, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s1d.v, upval: 916}", + "{class: wlan_pdc, ss: rf, res: s1d.v, dwnval: 880}"; + }; + + slim_msm: slim@6C40000 { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; /* BT SLIM EP address*/ + qcom,btslimtx-channels = <159 160>; /* slimbus FM_Tx, SCO_Tx channels */ + qcom,btslimrx-channels = <157 158>; /* slimbus SCO_A2DP_Rx A2DP_Rx */ + }; + }; + }; +}; + +// FM changes +&qupv3_se5_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 84 0>; + vdd-supply = <&L16B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L15B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; diff --git a/qcom/bt/sun-kiwi-bt.dts b/qcom/bt/sun-kiwi-bt.dts new file mode 100644 index 00000000..d804f43c --- /dev/null +++ b/qcom/bt/sun-kiwi-bt.dts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "sun-kiwi-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Sun SoCs"; + compatible = "qcom,sun", "qcom,sunp", "qcom,sun-mtp", "qcom,sun-cdp"; + qcom,msm-id = <618 0x10000>, <618 0x20000>, <639 0x10000>, <639 0x20000>, + <0x100026a 0x10000>, <0x100026a 0x20000>, + <0x100027f 0x10000>, <0x100027f 0x20000>; + qcom,board-id = <0x20001 0>, <0x20008 0>, <0x40015 0>; +}; diff --git a/qcom/bt/sun-kiwi-bt.dtsi b/qcom/bt/sun-kiwi-bt.dtsi new file mode 100644 index 00000000..0f502278 --- /dev/null +++ b/qcom/bt/sun-kiwi-bt.dtsi @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&pm8550vs_f_gpios { + bt_uwb_en: bt_uwb_en { + pins = "gpio3"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <1>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio18"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_kiwi { + compatible = "qcom,kiwi"; + pinctrl-names = "bt_uwb_en", "sw_ctrl"; + pinctrl-0 = <&bt_uwb_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + /* List of GPIOs to be setup for interrupt wakeup capable*/ + mpm_wake_set_gpios = <18>; + qcom,wl-reset-gpio = <&tlmm 16 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 18 0>; /* SW_CTRL */ + qcom,bt-reset-gpio = <&pm8550vs_f_gpios 3 0>; /* BT_EN */ + qcom,qmp = <&aoss_qmp>; + + qcom,bt-vdd18-aon-supply = <&L3F>; /* BT VDD1.8 AON */ + qcom,bt-vdd12-io-supply = <&L2F>; /* BT VDD1.2V IO */ + qcom,bt-ant-ldo-supply = <&L6K>; /* BT ANT - AV91C_VDD */ + qcom,bt-vdd-aon-supply = <&S1D>; /* BT AON LDO*/ + qcom,bt-vdd-rfaOp8-supply = <&S1D>; /* BT RFAOp8 CMN LDO*/ + qcom,bt-vdd-rfa1-supply = <&S7I>; /* BT RFA1.2 LDO */ + qcom,bt-vdd-rfa2-supply = <&S3G>; /* BT RFA1.8 LDO */ + + qcom,bt-vdd18-aon-config = <1800000 1800000 30000 1 0>; + qcom,bt-vdd12-io-config = <1200000 1200000 30000 1 0>; + qcom,bt-ant-ldo-config = <1800000 1800000 0 1 0>; + qcom,bt-vdd-aon-config = <916000 1100000 0 1 0>; + qcom,bt-vdd-rfaOp8-config = <916000 1100000 0 1 0>; + qcom,bt-vdd-rfa1-config = <1316000 1340000 0 1 0>; + qcom,bt-vdd-rfa2-config = <1864000 2000000 0 1 0>; + + qcom,pdc_init_table = + "{class: wlan_pdc, ss: rf, res: s3g.v, upval: 1856}", + "{class: wlan_pdc, ss: rf, res: s3g.v, dwnval: 1844}", + "{class: wlan_pdc, ss: rf, res: s7i.v, upval: 1316}", + "{class: wlan_pdc, ss: rf, res: s7i.v, dwnval: 972}", + "{class: wlan_pdc, ss: rf, res: s1d.m, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s1d.v, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s1d.v, upval: 916}", + "{class: wlan_pdc, ss: rf, res: s1d.v, dwnval: 880}"; + }; + + slim_msm: slim@6C40000 { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; /* BT SLIM EP address*/ + qcom,btslimtx-channels = <159 160>; /* slimbus FM_Tx, SCO_Tx channels */ + qcom,btslimrx-channels = <157 158>; /* slimbus SCO_A2DP_Rx A2DP_Rx */ + }; + }; + }; +}; + +// FM changes +&qupv3_se5_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 84 0>; + vdd-supply = <&L16B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L15B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; diff --git a/qcom/bt/sun-peach-bt-v8.dts b/qcom/bt/sun-peach-bt-v8.dts new file mode 100644 index 00000000..cb69fcef --- /dev/null +++ b/qcom/bt/sun-peach-bt-v8.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "sun-peach-bt-v8.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Sun SoCs"; + compatible = "qcom,sun", "qcom,sunp"; + qcom,msm-id = <618 0x10000>, <618 0x20000>, + <639 0x10000>, <639 0x20000>, + <0x100026a 0x10000>, <0x100026a 0x20000>, + <0x100027f 0x10000>, <0x100027f 0x20000>; + qcom,board-id = <0x50001 0>, <0x40008 0>, <0x3000B 0>, <0x3000B 1>,<0x2000B 0>, + <0x30015 0>, <0x10021 0>, <0x60008 0>, <0x40108 0>; +}; diff --git a/qcom/bt/sun-peach-bt-v8.dtsi b/qcom/bt/sun-peach-bt-v8.dtsi new file mode 100644 index 00000000..64256b9b --- /dev/null +++ b/qcom/bt/sun-peach-bt-v8.dtsi @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include + +&pm8550ve_f_gpios { + bt_uwb_en: bt_uwb_en { + pins = "gpio3"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <1>; + }; + bt_fmd_clk_en: bt_fmd_clk_en { + pins = "gpio6"; + function = "normal"; + input-enable; + output-disable; + bias-disable; + power-source = <1>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio18"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_peach { + compatible = "qcom,peach-bt"; + nvmem-cells = <&fmd_set>, <&fmd_chg_pon>, <&fmd_cnt2_stop>; + nvmem-cell-names = "fmd_set", "fmd_chg_pon", "fmd_cnt2_stop"; + clocks = <&rpmhcc RPMH_RF_CLK1>; + clock-names = "bt_rf_clk1"; + qcom,peach-bt; + pinctrl-names = "bt_uwb_en", "sw_ctrl", "bt_fmd_clk_en"; + pinctrl-0 = <&bt_uwb_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + pinctrl-2 = <&bt_fmd_clk_en>; + /* List of GPIOs to be setup for interrupt wakeup capable*/ + mpm_wake_set_gpios = <18 9>; + qcom,wl-reset-gpio = <&tlmm 16 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 18 0>; /* SW_CTRL */ + qcom,bt-fmd-clk-gpio = <&pm8550ve_f_gpios 6 0>; /* FMD_CLK_CTRL */ + qcom,bt-reset-gpio = <&pm8550ve_f_gpios 3 0>; /* BT_EN */ + qcom,qmp = <&aoss_qmp>; + + qcom,bt-vdd18-aon-supply = <&L3F>; /* VDD1P8_AON */ + qcom,bt-vdd12-io-supply = <&L2F>; /* VDD1P2_IO */ + qcom,bt-ant-ldo-supply = <&L6K>; /* AV91C_VDD Extractor */ + /* This buck is added for HW WAR */ + qcom,bt-vdd-dig-supply = <&S4D>; /* BT CX_MX LDO */ + qcom,bt-vdd-aon-supply = <&S5F>; /* RFA_CMN/AON */ + qcom,bt-vdd-rfa0p75-supply = <&S5F>; /* RFA_OP75 */ + qcom,bt-vdd-rfa1p8-supply = <&S3G>; /* RFA_1P8 */ + qcom,bt-vdd-rfa1p25-supply = <&S7I>; /* RFA_1P2 */ + + qcom,bt-vdd18-aon-config = <1800000 1800000 30000 1 1>; + qcom,bt-vdd12-io-config = <1200000 1200000 30000 1 1>; + qcom,bt-ant-ldo-config = <1800000 1860000 0 1 0>; + qcom,bt-vdd-aon-config = <876000 1000000 0 1 1>; + qcom,bt-vdd-dig-config = <560000 1036000 0 1 0>; + qcom,bt-vdd-rfa0p75-config = <876000 1000000 0 1 0>; + qcom,bt-vdd-rfa1p8-config = <1860000 2000000 0 1 0>; + qcom,bt-vdd-rfa1p25-config = <1312000 1340000 0 1 0>; + + /* WLAN regulator for FMD feature */ + qcom,bt-vdd-wlan-aon-supply = <&S4D>; + qcom,bt-vdd-wlan-aon-config = <876000 1036000 0 0 1>; + + qcom,pdc_init_table = + "{class: wlan_pdc, ss: rf, res: s5f.m, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s5f.v, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s5f.v, upval: 876}", + "{class: wlan_pdc, ss: rf, res: s5f.v, dwnval: 876}"; + }; +}; + +&swr4 { + btswr_slave: btswr-slave { + compatible = "qcom,btfmswr_slave"; + reg = <0x02 0x08170220>; + }; +}; + +// FM changes +&qupv3_se5_i2c { + status = "ok"; + fm_rtc6226: nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 84 0>; + vdd-supply = <&L16B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L15B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; + +//q2spi instance +&qupv3_se13_q2spi { + status = "ok"; +}; diff --git a/qcom/bt/sun-peach-bt.dts b/qcom/bt/sun-peach-bt.dts new file mode 100644 index 00000000..abfe3f1a --- /dev/null +++ b/qcom/bt/sun-peach-bt.dts @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "sun-peach-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Sun SoCs"; + compatible = "qcom,sun", "qcom,sunp"; + qcom,msm-id = <618 0x10000>, <618 0x20000>, + <639 0x10000>, <639 0x20000>, + <0x100026a 0x10000>, <0x100026a 0x20000>, + <0x100027f 0x10000>, <0x100027f 0x20000>; + qcom,board-id = <1 0>, <8 0>, <0x1000B 0>, <0x15 0>, <0x108 0>; +}; diff --git a/qcom/bt/sun-peach-bt.dtsi b/qcom/bt/sun-peach-bt.dtsi new file mode 100644 index 00000000..0ef4c18b --- /dev/null +++ b/qcom/bt/sun-peach-bt.dtsi @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&pm8550vs_f_gpios { + bt_uwb_en: bt_uwb_en { + pins = "gpio3"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <1>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio18"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_peach { + compatible = "qcom,peach-bt"; + qcom,peach-bt; + pinctrl-names = "bt_uwb_en", "sw_ctrl"; + pinctrl-0 = <&bt_uwb_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + /* List of GPIOs to be setup for interrupt wakeup capable*/ + mpm_wake_set_gpios = <18>; + qcom,wl-reset-gpio = <&tlmm 16 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 18 0>; /* SW_CTRL */ + qcom,bt-reset-gpio = <&pm8550vs_f_gpios 3 0>; /* BT_EN */ + qcom,qmp = <&aoss_qmp>; + + qcom,bt-vdd18-aon-supply = <&L3F>; /* VDD1P8_AON */ + qcom,bt-vdd12-io-supply = <&L2F>; /* VDD1P2_IO */ + qcom,bt-ant-ldo-supply = <&L6K>; /* AV91C_VDD Extractor */ + qcom,bt-vdd-dig-supply = <&S4J>; /* BT CX_MX LDO */ + qcom,bt-vdd-aon-supply = <&S4J>; /* RFA_CMN/AON */ + qcom,bt-vdd-rfa0p75-supply = <&S4J>; /* RFA_OP75 */ + qcom,bt-vdd-rfa1p8-supply = <&S3G>; /* RFA_1P8 */ + qcom,bt-vdd-rfa1p25-supply = <&S7I>; /* RFA_1P2 */ + + qcom,bt-vdd18-aon-config = <1800000 1800000 30000 1 0>; + qcom,bt-vdd12-io-config = <1200000 1200000 30000 1 0>; + qcom,bt-ant-ldo-config = <1800000 1860000 0 1 0>; + qcom,bt-vdd-aon-config = <876000 1000000 0 1 0>; + qcom,bt-vdd-dig-config = <876000 1000000 0 1 0>; + qcom,bt-vdd-rfa0p75-config = <876000 1000000 0 1 0>; + qcom,bt-vdd-rfa1p8-config = <1860000 2000000 0 1 0>; + qcom,bt-vdd-rfa1p25-config = <1312000 1340000 0 1 0>; + + qcom,pdc_init_table = + "{class: wlan_pdc, ss: rf, res: s4j.m, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s4j.v, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s4j.v, upval: 876}", + "{class: wlan_pdc, ss: rf, res: s4j.v, dwnval: 876}"; + }; +}; + +&swr4 { + btswr_slave: btswr-slave { + compatible = "qcom,btfmswr_slave"; + reg = <0x02 0x08170220>; + }; +}; + +// FM changes +&qupv3_se5_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 84 0>; + vdd-supply = <&L16B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L15B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; + +//q2spi instance +&qupv3_se13_q2spi { + status = "ok"; +}; diff --git a/qcom/bt/sun-wcn786x-v8.dts b/qcom/bt/sun-wcn786x-v8.dts new file mode 100644 index 00000000..058ce1ad --- /dev/null +++ b/qcom/bt/sun-wcn786x-v8.dts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "sun-wcn786x-v8.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Sun SoCs"; + compatible = "qcom,sun", "qcom,sunp"; + qcom,msm-id = <618 0x10000>, <618 0x20000>, <639 0x10000>, <639 0x20000>, + <0x100026a 0x10000>, <0x100026a 0x20000>, + <0x100027f 0x10000>, <0x100027f 0x20000>; + qcom,board-id = <0x30008 0>, <0x40001 0>; +}; diff --git a/qcom/bt/sun-wcn786x-v8.dtsi b/qcom/bt/sun-wcn786x-v8.dtsi new file mode 100644 index 00000000..a81bbfbf --- /dev/null +++ b/qcom/bt/sun-wcn786x-v8.dtsi @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include + +&pm8550ve_f_gpios { + bt_en: bt_en { + pins = "gpio3"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <1>; + }; + bt_fmd_clk_en: bt_fmd_clk_en { + pins = "gpio6"; + function = "normal"; + input-enable; + output-disable; + bias-disable; + power-source = <1>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio18"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: wcn786x { + compatible = "qcom,wcn786x"; + nvmem-cells = <&fmd_set>, <&fmd_chg_pon>, <&fmd_cnt2_stop>; + nvmem-cell-names = "fmd_set", "fmd_chg_pon", "fmd_cnt2_stop"; + clocks = <&rpmhcc RPMH_RF_CLK1>; + clock-names = "bt_rf_clk1"; + qcom,wcn786x; + pinctrl-names = "bt_en", "sw_ctrl", "bt_fmd_clk_en"; + pinctrl-0 = <&bt_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + pinctrl-2 = <&bt_fmd_clk_en>; + /* List of GPIOs to be setup for interrupt wakeup capable*/ + mpm_wake_set_gpios = <18 9>; + qcom,wl-reset-gpio = <&tlmm 16 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 18 0>; /* SW_CTRL */ + qcom,bt-fmd-clk-gpio = <&pm8550ve_f_gpios 6 0>; /* FMD_CLK_CTRL */ + qcom,bt-reset-gpio = <&pm8550ve_f_gpios 3 0>; /* BT_EN */ + qcom,qmp = <&aoss_qmp>; + + qcom,bt-vdd18-aon-supply = <&L3F>; /* VDD1P8_AON */ + qcom,bt-vdd12-io-supply = <&L2F>; /* VDD1P2_IO */ + qcom,bt-ant-ldo-supply = <&L6K>; /* AV91C_VDD Extractor */ + /* This buck is added for HW WAR */ + qcom,bt-vdd-dig-supply = <&S4D>; /* BT CX_MX LDO */ + qcom,bt-vdd-aon-supply = <&S5F>; /* RFA_CMN/AON */ + qcom,bt-vdd-rfa0p75-supply = <&S5F>; /* RFA_OP75 */ + qcom,bt-vdd-rfa1p8-supply = <&S3G>; /* RFA_1P8 */ + qcom,bt-vdd-rfa1p25-supply = <&S7I>; /* RFA_1P2 */ + + qcom,bt-vdd18-aon-config = <1800000 1800000 30000 1 1>; + qcom,bt-vdd12-io-config = <1200000 1200000 30000 1 1>; + qcom,bt-ant-ldo-config = <1800000 1860000 0 1 0>; + qcom,bt-vdd-aon-config = <876000 1000000 0 1 1>; + qcom,bt-vdd-dig-config = <560000 1036000 0 1 0>; + qcom,bt-vdd-rfa0p75-config = <876000 1000000 0 1 0>; + qcom,bt-vdd-rfa1p8-config = <1860000 2000000 0 1 0>; + qcom,bt-vdd-rfa1p25-config = <1312000 1340000 0 1 0>; + + /* WLAN regulator for FMD operation, and to be used only in GNG/BRH 2.0 */ + qcom,bt-vdd-wlan-aon-supply = <&S4D>; + qcom,bt-vdd-wlan-aon-config = <876000 1036000 0 0 1>; + + qcom,pdc_init_table = + "{class: wlan_pdc, ss: rf, res: s5f.m, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s5f.v, enable: 1}", + "{class: wlan_pdc, ss: rf, res: s5f.v, upval: 876}", + "{class: wlan_pdc, ss: rf, res: s5f.v, dwnval: 876}"; + }; +}; + +&swr4 { + btswr_slave: btswr-slave { + compatible = "qcom,btfmswr_slave"; + reg = <0x02 0x08170220>; + }; +}; + +// FM changes +&qupv3_se5_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 84 0>; + vdd-supply = <&L16B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L15B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; diff --git a/qcom/bt/sunp-hdk-peach-bt-v8.dts b/qcom/bt/sunp-hdk-peach-bt-v8.dts new file mode 100644 index 00000000..230d6179 --- /dev/null +++ b/qcom/bt/sunp-hdk-peach-bt-v8.dts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "sunp-hdk-peach-bt-v8.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Sun SoCs HDK"; + compatible = "qcom,sunp-hdk", "qcom,sunp", "qcom,hdk"; + qcom,msm-id = <639 0x10000>, <639 0x20000>, <618 0x10000>, <618 0x20000>, + <0x100026a 0x10000>, <0x100026a 0x20000>, + <0x100027f 0x10000>, <0x100027f 0x20000>; + qcom,board-id = <0x1001f 0>; +}; diff --git a/qcom/bt/sunp-hdk-peach-bt-v8.dtsi b/qcom/bt/sunp-hdk-peach-bt-v8.dtsi new file mode 100644 index 00000000..24588768 --- /dev/null +++ b/qcom/bt/sunp-hdk-peach-bt-v8.dtsi @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include "sun-peach-bt-v8.dtsi" + +/delete-node/ &fm_rtc6226; + +&bluetooth { + /delete-property/ qcom,bt-ant-ldo-supply; + /delete-property/ qcom,bt-ant-ldo-config; +}; \ No newline at end of file diff --git a/qcom/bt/tuna-kiwi-bt.dts b/qcom/bt/tuna-kiwi-bt.dts new file mode 100644 index 00000000..bbdae060 --- /dev/null +++ b/qcom/bt/tuna-kiwi-bt.dts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "tuna-kiwi-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Tuna"; + compatible = "qcom,tuna-rcm", "qcom,tunap-rcm", "qcom,rcm", + "qcom,tuna-mtp", "qcom,tunap-mtp", "qcom,mtp", + "qcom,tuna-atp", "qcom,tunap-atp", "qcom,atp", + "qcom,tuna", "qcom,tunap"; + qcom,msm-id = <681 0x10000>, <655 0x10000>, <694 0x10000>; + qcom,board-id = <21 1>, <8 2>, <8 3>, <33 0>; +}; diff --git a/qcom/bt/tuna-kiwi-bt.dtsi b/qcom/bt/tuna-kiwi-bt.dtsi new file mode 100644 index 00000000..10f6dc38 --- /dev/null +++ b/qcom/bt/tuna-kiwi-bt.dtsi @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include + +&pm8550vs_g_gpios { + bt_en: bt_en { + pins = "gpio4"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <2>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio80"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_kiwi { + compatible = "qcom,kiwi"; + + clock-names = "bt_rf_clk1"; + clocks = <&rpmhcc RPMH_RF_CLK1>; + + pinctrl-0 = <&bt_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + pinctrl-names = "bt_en", "sw_ctrl"; + + /* List of GPIOs to be setup for interrupt wakeup capable*/ + mpm_wake_set_gpios = <80>; + qcom,wl-reset-gpio = <&tlmm 35 0>; /* WL_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 80 0>; /* SW_CTRL */ + + qcom,bt-reset-gpio = <&pm8550vs_g_gpios 4 0>; /* WCN_BT_EN */ + + qcom,qmp = <&aoss_qmp>; + + qcom,bt-vdd18-aon-supply = <&L3G>; /* BT VDD1.8 AON */ + qcom,bt-vdd12-io-supply = <&L2G>; /* BT VDD1.2V IO */ + qcom,bt-ant-ldo-supply = <&L6K>; /* BT ANT - AV91C_VDD */ + qcom,bt-vdd-aon-supply = <&S3B>; /* BT AON LDO*/ + qcom,bt-vdd-rfaOp8-supply = <&S3B>; /* BT RFAOp8 CMN LDO*/ + qcom,bt-vdd-rfa1-supply = <&S2B>; /* BT RFA1.2 LDO */ + qcom,bt-vdd-rfa2-supply = <&S1B>; /* BT RFA1.8 LDO */ + + qcom,bt-vdd18-aon-config = <1800000 1800000 30000 1 0>; + qcom,bt-vdd12-io-config = <1200000 1200000 30000 1 0>; + qcom,bt-ant-ldo-config = <1800000 2000000 0 1 0>; + qcom,bt-vdd-aon-config = <976000 1040000 0 1 0>; + qcom,bt-vdd-rfaOp8-config = <976000 1040000 0 1 0>; + qcom,bt-vdd-rfa1-config = <1316000 1408000 0 1 0>; + qcom,bt-vdd-rfa2-config = <1864000 2104000 0 1 0>; + + qcom,pdc_init_table = + " {class: wlan_pdc, ss: rf, res: s3b.v, upval: 976}", + " {class: wlan_pdc, ss: rf, res: s3b.v, dwnval: 616}", + " {class: wlan_pdc, ss: bb, res: pdc, enable: 1}"; + }; +}; + +&slim_msm { + status = "ok"; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + //slimbus child nodes + slimbus: btfmslim-driver { + compatible = "slim217,221"; + reg = <1 0>; + qcom,btslim-address = <0x0>; + qcom,btslimtx-channels = <159 160>; + qcom,btslimrx-channels = <157 158>; + }; + }; +}; + +// FM changes +&qupv3_se5_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 29 0>; + vdd-supply = <&L18B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&S1B>; + rtc6226,vio-supply-voltage = <1856000 1856000>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; diff --git a/qcom/bt/tuna-wcn7750-bt.dts b/qcom/bt/tuna-wcn7750-bt.dts new file mode 100644 index 00000000..ad84007a --- /dev/null +++ b/qcom/bt/tuna-wcn7750-bt.dts @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "tuna-wcn7750-bt.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Tuna"; + compatible = "qcom,tuna-rcm", "qcom,tunap-rcm", "qcom,rcm", + "qcom,tuna-mtp", "qcom,tunap-mtp", "qcom,mtp", + "qcom,tuna-cdp", "qcom,tunap-cdp", "qcom,cdp", + "qcom,tuna-qrd", "qcom,tunap-qrd", "qcom,qrd", + "qcom,tuna", "qcom,tunap"; + qcom,msm-id = <681 0x10000>, <655 0x10000>, <694 0x10000>; + qcom,board-id = <1 0>, <8 0>, <8 1>, <8 4>, <11 0>, <21 0>; +}; diff --git a/qcom/bt/tuna-wcn7750-bt.dtsi b/qcom/bt/tuna-wcn7750-bt.dtsi new file mode 100644 index 00000000..16572cd3 --- /dev/null +++ b/qcom/bt/tuna-wcn7750-bt.dtsi @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include + +&pm8550vs_g_gpios { + bt_en: bt_en { + pins = "gpio4"; + function = "normal"; + input-disable; + output-enable; + bias-disable; + power-source = <2>; + }; + bt_fmd_clk_en: bt_fmd_clk_en { + pins = "gpio3"; + function = "normal"; + input-enable; + output-disable; + bias-disable; + power-source = <2>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio80"; + function = "wcn_sw_ctrl"; + }; + }; +}; + +&soc { + bluetooth: bt_tuna { + compatible = "qcom,wcn7750-bt"; + qcom,wcn7750-bt; + + nvmem-cell-names = "fmd_set", "fmd_chg_pon", "fmd_cnt2_stop"; + nvmem-cells = <&fmd_set>, <&fmd_chg_pon>, <&fmd_cnt2_stop>; + + pinctrl-names = "bt_en", "sw_ctrl", "bt_fmd_clk_en"; + pinctrl-0 = <&bt_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + pinctrl-2 = <&bt_fmd_clk_en>; + + clock-names = "bt_rf_clk1"; + clocks = <&rpmhcc RPMH_RF_CLK1>; + + mpm_wake_set_gpios = <80>; + qcom,wl-reset-gpio = <&tlmm 35 0>; /* WCN_WLAN_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 80 0>; /* HST_SW_CTRL */ + qcom,bt-fmd-clk-gpio = <&pm8550vs_g_gpios 3 0>; /* FMD_CLK_EN */ + qcom,bt-reset-gpio = <&pm8550vs_g_gpios 4 0>; /* WCN_BT_EN */ + + qcom,bt-vdd-io-supply = <&L3G>; /* WCN_1P8_IO */ + qcom,bt-vdd-aon-supply = <&S3B>; /* AON LDO */ + qcom,bt-vdd-rfacmn-supply = <&S3B>; /* RF 0p8/CMN */ + qcom,bt-vdd-dig-supply = <&S3B>; /* BT LDO/BT_CX_MX */ + qcom,bt-vdd-rfa-0p8-supply = <&L6K>; /* RFA 0p8 / AV91C_VDD */ + qcom,bt-vdd-rfa1-supply = <&S1B>; /* RFA 1p7 */ + qcom,bt-vdd-rfa2-supply = <&S2B>; /* RFA 1p2 */ + qcom,bt-vdd-ipa-2p2-supply = <&S1G>; /* WCN_2p2_RFA */ + + qcom,bt-vdd-io-config = <1620000 1800000 0 1 1>; + qcom,bt-vdd-aon-config = <900000 1040000 0 1 0>; + qcom,bt-vdd-rfacmn-config = <900000 1040000 0 1 0>; + qcom,bt-vdd-dig-config = <900000 1040000 0 1 0>; + qcom,bt-vdd-rfa-0p8-config = <900000 2000000 0 1 0>; + qcom,bt-vdd-rfa1-config = <1900000 2104000 0 1 0>; + qcom,bt-vdd-rfa2-config = <1330000 1408000 0 1 0>; + qcom,bt-vdd-ipa-2p2-config = <2156000 2400000 0 1 1>; + }; +}; + +&swr4 { + btswr_slave: btswr-slave { + compatible = "qcom,btfmswr_slave"; + reg = <0x02 0x08170220>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; + +// FM changes +&qupv3_se5_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 29 0>; + vdd-supply = <&L18B>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&S1B>; + rtc6226,vio-supply-voltage = <1856000 1856000>; + }; +};