On 06/03/2023 8:35, Krzysztof Kozlowski wrote: > On 06/03/2023 05:07, Brad Larson wrote: >> Support the AMD Pensando SoC Controller which is a SPI connected device >> providing a miscellaneous set of essential board control/status registers. >> This device is present in all Pensando SoC based designs. >> >> Signed-off-by: Brad Larson <blarson@xxxxxxx> >> --- >> >> v10 changes: >> - Property renamed to amd,pensando-ctrl >> - Driver is renamed and moved to soc/drivers/amd affecting binding >> - Delete cs property, driver handles device node creation from parent num-cs >> fixing schema reg error in a different way >> >> v9 changes: >> - Instead of four nodes, one per chip-select, a single >> node is used with reset-cells in the parent. >> - No MFD API is used anymore in the driver so it made >> sense to move this to drivers/spi. >> - This driver is common for all Pensando SoC based designs >> so changed the name to pensando-sr.c to not make it Elba >> SoC specific. >> - Added property cs for the chip-select number which is used >> by the driver to create /dev/pensr0.<cs> >> >> --- >> .../bindings/soc/amd/amd,pensando-ctrl.yaml | 60 +++++++++++++++++++ >> 1 file changed, 60 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/soc/amd/amd,pensando-ctrl.yaml >> >> diff --git a/Documentation/devicetree/bindings/soc/amd/amd,pensando-ctrl.yaml b/Documentation/devicetree/bindings/soc/amd/amd,pensando-ctrl.yaml >> new file mode 100644 >> index 000000000000..36694077b2e6 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/soc/amd/amd,pensando-ctrl.yaml > > Your subject suggests this is pensando-elbasr but you write everywhere > pensando-ctrl. Confusing. Pick one. I'll fix the commit message. This driver is common across multiple Pensando SoCs and embedding elba in the name is misleading which is why I changed it to pensando controller (pensando-ctrl). Sorry for the churn. >> @@ -0,0 +1,60 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/soc/amd/amd,pensando-ctrl.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: AMD Pensando SoC Controller >> + >> +description: | > > No need for | Removed | >> + The AMD Pensando SoC Controller is a SPI connected device with essential >> + control/status registers accessed on chip select 0. This device is present >> + in all Pensando SoC based designs. >> + >> +maintainers: >> + - Brad Larson <blarson@xxxxxxx> >> + >> +properties: >> + compatible: >> + contains: > > Drop 'contains'. That's not a correct syntax here. > Removed contains and looks like this now: properties: compatible: enum: - amd,pensando-ctrl >> + enum: >> + - amd,pensando-ctrl >> + >> + reg: >> + minItems: 1 > > maxItems instead Changed to maxItems: 1 >> + >> + '#reset-cells': >> + const: 1 >> + >> + interrupts: >> + maxItems: 1 >> + >> + spi-max-frequency: true > > Drop, not needed. > Removed spi-max-frequency and included alOff w/spi-peripheral-props.yaml >> + >> +required: >> + - compatible >> + - spi-max-frequency >> + - '#reset-cells' > > allOf with ref to spi-peripheral-props.yaml > >> + >> +unevaluatedProperties: false > > This is not correct without allOf (should be additionalProperties if you > are not using allOf), which leads you to the missing allOf. Thanks for pointing out use of spi-peripheral-props.yaml, looks like this now +required: + - compatible + - reg + - '#reset-cells' + +allOf: + - $ref: /schemas/spi/spi-peripheral-props.yaml# + +unevaluatedProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + >> + spi { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + num-cs = <4>; > > Drop num-cs, not important in this context. Removed num-cs >> + >> + system-controller@0 { >> + compatible = "amd,pensando-ctrl"; >> + reg = <0>; >> + spi-max-frequency = <12000000>; >> + interrupt-parent = <&porta>; >> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >> + #reset-cells = <1>; >> + }; >> + }; >> + >> +... Regards, Brad