Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [High] dt-bindings: tegra: internal DC engine modeled as standalone bridge
--

commit 01a8f6463a12799df86627d43eafd7a2899a713e
Author: Svyatoslav Ryhel <[email protected]>

dt-bindings: display: tegra: Document 8-bit CPU parallel interface
    
Introduces a device tree binding for the 8-bit CPU parallel MIPI DBI Type B
interface provided by the Tegra20/30 SoCs display controller.

> diff --git 
> a/Documentation/devicetree/bindings/display/tegra/nvidia,tegra-8bit-cpu.yaml 
> b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra-8bit-cpu.yaml
> new file mode 100644
> --- /dev/null
> +++ 
> b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra-8bit-cpu.yaml
[ ... ]
> +description: The display controller in Tegra20/30 SoCs features an
> +  8-bit SPI interface that closely resembles the MIPI DBI Type B
> +  protocol and is referred to as '8-bit CPU'. Each display controller
> +  provides two such interfaces, which can be used to send MIPI DCS
> +  commands to initialize and control the panel while image data is
> +  transmitted via 16/18/24-line RGB.
> +
> +properties:
> +  compatible:
> +    const: nvidia,tegra-8bit-cpu

[Severity: High]
Does this modeling break Devicetree hardware hierarchy principles? By
defining a separate compatible string and standalone top-level node for what
is fundamentally an internal engine of the display controller, the driver is
forced to traverse the OF graph to its remote endpoint's parent and blindly
cast its drvdata to struct tegra_dc *. 

If the Devicetree incorrectly connects this bridge to a non-Tegra DC node,
can the driver perform invalid memory writes and corrupt memory?

> +
> +  dc-gpios:
> +    description: Data/command selection pin.
> +    maxItems: 1
[ ... ]
> +  data-gpios:
> +    description: Specifies a set of 8 gpio pins used to transfer data.
> +    minItems: 8
> +    maxItems: 8
> +
> +  nvidia,init-sequence:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description: Device specific set of values used in DC DISP_SPI_INIT_SEQ
> +      registers.

[Severity: High]
Does this property confirm the node programs the display controller's
internal registers? Lacking a reg property or a strict parent-child
relationship to map them seems to further indicate this should not be
modeled as a standalone bridge.

> +    minItems: 4
> +    maxItems: 4
> +
> +  panel:
[ ... ]
> +      port@1:
> +        $ref: /schemas/graph.yaml#/properties/port
> +        description: Video port for DBI output (panel or connector).
> +
> +    required:
> +      - port@0
> +      - port@1
> +
> +required:
> +  - compatible
> +  - ports

[Severity: High]
Should data-gpios and the control GPIOs be marked as required? If the driver
unconditionally accesses priv->data_gpios->ndescs during MIPI DCS
transmission, omitting these bit-banged pins in the device tree allows
incomplete nodes to pass schema validation but causes a NULL pointer
dereference crash at runtime.

> +
> +unevaluatedProperties: false
> +
> +examples:

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=3

Reply via email to