Hi! > > The MUX framework is already in linux-next. Could you use that instead of > > adding new driver + bindings that are not compliant with the MUX framework? > > I don't think it'd be much of a change in terms of code, using the MUX > > framework appears quite simple. > > It is not quite clear to me how to design the DT bindings for this. Just > splitting the video-multiplexer driver from the mux-mmio / mux-gpio > would make it necessary to keep the video-multiplexer node to describe > the of-graph bindings. But then we have two different nodes in the DT > that describe the same hardware: > > mux: mux { > compatible = "mux-gpio"; > mux-gpios = <&gpio 0>, <&gpio 1>; > #mux-control-cells = <0>; > } > > video-multiplexer { > compatible = "video-multiplexer" > mux-controls = <&mux>; > > ports { > /* ... */ > } > } > > It would feel more natural to have the ports in the mux node, but then > how would the video-multiplexer driver be instanciated, and how would it > get to the of-graph nodes? Device tree representation and code used to implement the muxing driver should be pretty independend, no? Yes, one piece of hardware should have one entry in the device tree, so it should be something like: video-multiplexer { compatible = "video-multiplexer-gpio" mux-gpios = <&gpio 0>, <&gpio 1>; #mux-control-cells = <0>; mux-controls = <&mux>; ports { /* ... */ } } You should be able to use code in drivers/mux as a library... Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html