You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This change removes the "port@0 { ... };" block, making the devicetree less
nested while systematically including the "ports { ... };" root block.
In practice, this looks like only adding an "s" to "port" blocks, but the
changes are also semantic.
Complex configurations are still possible with this scheme:
video@10380000 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
endpoint@0 {
reg = <0>;
remote-endpoint = <&other>;
};
endpoint@1 {
reg = <1>;
remote-endpoint = <&other>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
endpoint@0 {
reg = <0>;
remote-endpoint = <&other>;
};
};
};
};
Is turned into something like this:
video@10380000 {
ports {
#address-cells = <2>;
#size-cells = <0>;
endpoint@00 {
reg = <0 0>;
data-lanes = <0 1 2 3>;
remote-endpoint = <&other>;
};
endpoint@01 {
reg = <0 1>;
data-lanes = <4 5 6 7>;
remote-endpoint = <&other>;
};
endpoint@10 {
reg = <1 0>;
data-lanes = <0 1 2 3>;
remote-endpoint = <&other>;
};
};
};
Which helps simpler device to be simpler, and allows more complex
device with arbitrary number of nesting to remain simple.
Both very-nested and completely flat (1 port 1 endpoint) look exactly
the same way, which helps with use of generic macros to traverse the
devicetree across all video devices.
The use of "ports { ... };" is required so that the "#address-cells"
property can be different between "ports" and i.e. "display-timings".
This prevents to apply devicetree properties to an entire port,
affecting each of its endpoint, but in the Linux source, this was
only used once, in imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01.dtso.
Signed-off-by: Josuah Demangeon <me@josuah.net>
0 commit comments