Issue and question: anther pin config issue

Zhang Ning zhangn1985 at outlook.com
Sun Dec 24 01:02:38 PST 2023


Hi, Developers

I want to report another pin config issue for rk3566-roc-pc


        bluetooth {
                compatible = "brcm,bcm43438-bt";
                clocks = <&rk809 1>;
                clock-names = "lpo";
                device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
                host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
                shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
                vbat-supply = <&vcc3v3_sys>;
                vddio-supply = <&vcca1v8_pmu>;
        };

        bt {
                bt_enable_h: bt-enable-h {
                        rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
                };

                bt_host_wake_l: bt-host-wake-l {
                        rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
                };

                bt_wake_l: bt-wake-l {
                        rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };

I think pin configs are wrong. same as previous report, I don't have
schemetics, thus not able to write a patch.

meanwhile, I want to ask a question about enable same bluetooth chip on
another RK3566 board for mainline kernel.

in its vendor OS, dtb dump shows:
        wireless-bluetooth {
                pinctrl-names = "default\0rts_gpio";
                pinctrl-0 = <0x13c>;
                clock-names = "ext_clock";
                clocks = <0x138 0x01>;
                BT,wake_gpio = <0x13a 0x11 0x00>;
                BT,reset_gpio = <0x13a 0x0f 0x00>;
                uart_rts_gpios = <0x13a 0x0d 0x01>;
                compatible = "bluetooth-platdata";
                BT,wake_host_irq = <0x13a 0x10 0x00>;
                pinctrl-1 = <0x13d>;
                status = "okay";
                phandle = <0x1e7>;
        };

phandle 0x13a is gpio2. phandle 0x138 is rk809 pmic.
pinctrl-0, pinctrl-1 and uart_rts_gpio are decription for gpio2 RK_PB5, which should be uart1 rtsn pin.

thus I write my dts for bluetooth:

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
	status = "okay";
	uart-has-rtscts;

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		clocks = <&rk809 1>;
		clock-names = "lpo";
		device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
		host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
		shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
		vbat-supply = <&vcc3v3_sys>;
		vddio-supply = <&vcca1v8_pmu>;
	};
};

but kernel log:
[   14.433949] Bluetooth: hci0: command 0xfc18 tx timeout
[   22.498017] Bluetooth: hci0: BCM: failed to write update baudrate (-110)
[   22.498690] Bluetooth: hci0: Failed to set baudrate
[   24.514009] Bluetooth: hci0: command 0x0c03 tx timeout
[   32.737999] Bluetooth: hci0: BCM: Reset failed (-110)

I don't where I'm wrong, don't know how to do next step.
thus ask commuinte, could you give me some advices, let me know how to
debug or fix it.

BR.
Ning.

full dtb dump from vendor os:
https://forum.armbian.com/applications/core/interface/file/attachment.php?id=11326&key=a140f008da42b8d80b750f09306c3d73
full dts for mainline:
https://github.com/zhangn1985/linux-stable/tree/jianpian/arch/arm64/boot/dts/rockchip/rk3566-jianpian.dts

BR.
Ning.



More information about the Linux-rockchip mailing list