[U-Boot] [Ac100] [PATCH 3/3] ARM: tegra: paz00: enable nveckeyboard support

Marc Dietrich marvin24 at gmx.de
Sat Jul 20 11:12:38 CEST 2013


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 <danindrey at 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 at 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



More information about the U-Boot mailing list