Re: Question about SC16IS752 device tree.

From: H. Nikolaus Schaller
Date: Tue May 10 2022 - 11:35:25 EST


Hi,

> Am 10.05.2022 um 04:29 schrieb Zhou Yanjie <zhouyanjie@xxxxxxxxxxxxxx>:
>
> Hi Nikolaus,
>
> On 2022/5/10 上午4:19, H. Nikolaus Schaller wrote:
>> Hi,
>>
>>> Am 09.05.2022 um 20:41 schrieb Zhou Yanjie <zhouyanjie@xxxxxxxxxxxxxx>:
>>>
>>> Hi Paul,
>>>
>>> On 2022/5/10 上午2:13, Paul Cercueil wrote:
>>>> I can't say for sure that it's your problem, but your bluetooth nodes are missing "reg" properties.
>>>
>>> Unfortunately it doesn't seem to be the problem here, I added "reg" and
>>> the problem persists, and I've looked at other device trees that contain
>>> "brcm,bcm43438-bt", none of them use "reg", and "reg" is not mentioned in
>>> neither "Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt" nor
>>> "Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml".
>> what happens if you remove the serdev children from DTS? Does the driver create two separate /dev/tty ports? And do they work?
>
>
> Yes, there will be two separate /dev/tty ports (ttySC0 and ttySC1), and
> both ports can work normally, but at this time the two bluetooth modules
> are not working.
>
> I guess it is because the driver does not detect bluetooth module nodes,
> so the inability to operate "reset-gpios" and "device-wakeup-gpios" causes
> the bluetooth module to work incorrectly.

I would assume that it is not prepared to handle two serdev subnodes and
assign the right gpios.

>
>
>>
>> Maybe the sc16is752 driver does not separate them for child nodes, i.e. while "reg" should be added it may not be handled?
>
>
> I'm not too sure, I'm not very familiar with serial port systems.
> If the truth is what you think, how should I improve it?

Unfortunately I also don't know how the serdev implementation really works.

It was my nagging to make it happen by persistently proposing a non-universal
solutionsome years ago until one of the maintainers had mercy to write a general
solution. So I could switch my driver to simply use the serdev API. It was for a GPS
client device but not a tty side driver.

I think if you look up the first patches for the serdev interface this should
reveal the original author an he should be able to help.

BR,
Nikolaus