diff --git a/Kbuild b/Kbuild index 06e4e5b5..40222efc 100644 --- a/Kbuild +++ b/Kbuild @@ -2,6 +2,11 @@ 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_SUN), y) dtbo-y += sun-peach-bt.dtbo dtbo-y += sun-kiwi-bt.dtbo diff --git a/tuna-kiwi-bt.dts b/tuna-kiwi-bt.dts new file mode 100644 index 00000000..ce66fdb0 --- /dev/null +++ b/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>; + qcom,board-id = <21 1>, <8 2>, <33 0>; +}; \ No newline at end of file diff --git a/tuna-kiwi-bt.dtsi b/tuna-kiwi-bt.dtsi new file mode 100644 index 00000000..a323f7c4 --- /dev/null +++ b/tuna-kiwi-bt.dtsi @@ -0,0 +1,90 @@ +// 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>; + }; + bt_fmd_clk_en: bt_fmd_clk_en { + pins = "gpio3"; + function = "normal"; + input-enable; + output-disable; + bias-disable; + power-source = <1>; + }; +}; + +&tlmm { + cnss_bt_sw_ctrl: cnss_wlan_sw_ctrl { + mux { + pins = "gpio80"; + 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"; + + clock-names = "bt_rf_clk1"; + clocks = <&rpmhcc RPMH_RF_CLK1>; + + pinctrl-0 = <&bt_en>; + pinctrl-1 = <&cnss_bt_sw_ctrl>; + pinctrl-2 = <&bt_fmd_clk_en>; + pinctrl-names = "bt_en", "sw_ctrl", "bt_fmd_clk_en"; + + /* 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-fmd-clk-gpio = <&pm8550vs_g_gpios 3 0>; /* FMD_CLK_EN */ + 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}"; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +}; diff --git a/tuna-wcn7750-bt.dts b/tuna-wcn7750-bt.dts new file mode 100644 index 00000000..2f82cd49 --- /dev/null +++ b/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>; + qcom,board-id = <8 0>, <8 1>, <1 0>, <11 0>, <21 0>, <33 0>; +}; \ No newline at end of file diff --git a/tuna-wcn7750-bt.dtsi b/tuna-wcn7750-bt.dtsi new file mode 100644 index 00000000..3949949f --- /dev/null +++ b/tuna-wcn7750-bt.dtsi @@ -0,0 +1,84 @@ +// 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>; + }; + bt_fmd_clk_en: bt_fmd_clk_en { + pins = "gpio3"; + function = "normal"; + input-enable; + output-disable; + bias-disable; + power-source = <1>; + }; +}; + +&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 0>; + 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 0>; + }; +}; + +//uart instance +&qupv3_se14_4uart { + status = "ok"; +};