Digamos que haja uma ponte de vídeo como sn65dsi86. Ele tem um driver ti-sn65dsi86.c na árvore fonte do kernel. Deve ser habilitado com árvores de dispositivos. Há um exemplo para a árvore de dispositivos. Mas não está completo.
Existe algum exemplo totalmente funcional? (além de ti-sn65dsi86.yaml na documentação)
O que essa história sobre porta, ponto de extremidade, ponto de extremidade remoto significa?
ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; edp_bridge_in: endpoint { remote-endpoint = <&dsi_out>; }; }; port@1 { reg = <1>; edp_bridge_out: endpoint { data-lanes = <2 1 3 0>; lane-polarities = <0 1 0 1>; remote-endpoint = <&edp_panel_in>; }; }; };
Você pode encontrar exemplos na árvore de origem do kernel à qual está se referindo se pesquisar a string de compatibilidade para a ponte DSI. Caso contrário, veja este exemplo.
Vou tentar descrever port s, endpoint se remote-endpoint s. Veja aqui para mais detalhes, abaixo é apenas (um incompleto) resumo dele.
No final, há um exemplo retirado da árvore fonte que referi acima, com alguns comentários.
Então, como representamos conexões entre dispositivos na árvore de dispositivos?
pai filho
por exemplo, no exemplo abaixo, a ponte está em i2c1, endereço 0x2c
phandles
veja aqui para uma boa descrição.
por exemplo, veja todos os & dentro de <> no exemplo abaixo?
portas, endpoints e endpoints remotos
Para representar dispositivos mais complexos que podem ter várias portas especificáveis , cada uma das quais pode ser vinculada a uma ou mais portas de outros dispositivos
Cada nó de porta contém um subnó de terminal para cada porta de dispositivo remoto conectado a esta porta
Cada terminal deve conter uma propriedade phandle de terminal remoto que aponta para o terminal correspondente na porta do dispositivo remoto