On Friday 19 July 2013 13:14:13 Stephen Warren wrote: > On 07/19/2013 02:47 AM, Andrey Danin wrote: > > Signed-off-by: Andrey Danin <danind...@mail.ru> > > (Some patch descriptions would be useful) > > > diff --git a/board/compal/dts/tegra20-paz00.dts > > b/board/compal/dts/tegra20-paz00.dts > > > > + nvec { > > + compatible = "nvidia,tegra20-nvec"; > > + reg = <0x7000c500 0x100>; > > + clock-frequency = <80000>; > > + request-gpios = <&gpio 170 0>; /* gpio PV2 */ > > + slave-addr = <138>; > > + }; > > I would rather not propagate this DT binding. We need to fix the binding > to clearly separate the concepts of:
so here we go again. I think I have to take this on my shoulders since I didn't got it right yet in the kernel. > a) The I2C slave controller (which should be a standalone driver for the > Tegra I2C slave HW). > > b) The protocol sent over the I2C slave channel (which would be specific > to NVEC, implement the GPIO hand-shaking, etc.). > > c) The devices that communicate over the protocol (keyboard in this case). > > I suspect we need separate DT nodes/sub-nodes for all of those, and a > method of hooking them all together. Let's skip how this may actually look like in software. Given the discussions we had in the past, I propose the following binding: i2c-slave@7000c500 { compatible = "nvidia,tegra20-i2c-slave"; reg = <0x7000c500 0x100>; interrupts = <0 92 0x04>; #address-cells = <1>; #size-cells = <0>; clock-frequency = <80000>; slave-addr = <138>; clocks = <&tegra_car 67>, <&tegra_car 124>; clock-names = "div-clk", "fast-clk"; nvec { compatible = "nvidia,nvec", "simple-bus"; protocol = "smbus-request-gpio"; request-gpios = <&gpio 170 0>; /* gpio PV2 */ keyboard { compatible = "nvidia,nvec-keyboard"; }; }; }; Does this looks better? Marc _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot