When RPI is on, data lines of keyboard will be connected to usb port of RPI. and when RPI is off and a usb cable from PC is connected to the device, then data lines of usb keyboard will be connected to that usb port.
The problem is that when using raspbian buster, the OS doesn't detect the USB keyboard at all. neither listed in dmesg logs nor in lsusb output. I know that maybe this is not the standard interconnection, but I can not change the hardware. And more importantly, this setup is working great with Raspbian stretch.
So,although this detection problem maybe caused by the connection architecture, but there must be a software solution because as I mentioned, the usb keyboard is detected and working when the OS of RPI is raspbian stretch.
I think the problem lies in the RPI firmware changes that happened from stretch to buster. But downgrading firmware using rpi-update didn't help.
What can I do to make the buster firmware detects this usb keyboard as the stretch do? as I mentioned, downgrading the buster firmware/kernel from 4.19.57-v7+ to 4.9.35-v7+ (the firmware/kernel version of the working stretch release that I have) didn't help!
If it matters, the usb keyboard is an avr based cdc device.