On Thu, Mar 29, 2012 at 9:59 PM, jonsm...@gmail.com <jonsm...@gmail.com> wrote: > i2c provides an example of where a schema would be useful. > From the binding text files, I removed the common items
Another reason for schemas, I just misspelled an attribute. It took me several hours to figure out why my system wasn't working. I ended up inserting printks in the driver looking for what was wrong before I figured out that the attribute was simply misspelled. I used slave-address when the attribute was slave-addr. Schema would have flagged the unknown attribute at compile time. ------------------------------------------------------------ Using XML schemas is a crazy idea. It would better to leverage the DTC and kernel infrastructure. We can use a scheme similar to kernel module support. The driver source for each OF compatible device would contain macros that generate a small schema that describes the device. Instantiation of the device in a real device tree... ads7846@1 { compatible = "ti,ads7846"; spi-max-frequency = <1200000>; reg = <1>; gpio_pendown = <&gpio_gpio 4 0>; gpio_cs = <&gpio_ebi_i2stx_0 3 0>; }; schema for this would be something like { compatible = "ti,ads7846"; inherits-from = "schema,spi-device" gpio_pendown* = <&gpio_reference>; /* star = optional */ gpio_cs = <&gpio_reference>; } for a spi host... { compatible = "nxp,lpc31xx-spi"; inherits-from = "schema,spi-bus" }; Compiling these drivers would generate two small files containing the schema snippets into a temp directory. Another permanent directory would hold the generic definitions. { compatible = "schema,spi-device"; inherits-from = "schema,generic-device" spi-max-frequency* = <0-50M>; /* range validation */ }; { compatible = "schema,generic-device"; reg = <>; interrupts = <>; }; { compatible = "schema,spi-bus"; inherits-from = "schema,generic-bus" contains = {"schema,spi-device"} }; { compatible = "schema,generic-bus"; reg = <>; interrupts = <>; #address-cells = <>; #size-cells = <>; }; Now the DT compiler can read in these schema snippets and use them to pattern match against the DT being compiled and perform validation. -- Jon Smirl jonsm...@gmail.com _______________________________________________ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss