diff mbox

[v5,4/9] tegra: fdt: i2c: Add extra I2C bindings for U-Boot

Message ID 1331096428-6317-5-git-send-email-sjg@chromium.org
State Not Applicable, archived
Headers show

Commit Message

Simon Glass March 7, 2012, 5 a.m. UTC
Add U-Boot's peripheral clock information to the Tegra20 device tree file.

Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2:
- Adjust definitions to fit new peripheral clock bindings
- Change 'speed' to 'clock-frequency'
- Remove u-boot,pinmux binding (sadly)

Changes in v3:
- Move speed setting from tegra20.dtsi to board .dts file

Changes in v4:
- Update to use new tegra2 clock and reset binding

Changes in v5:
- Add clock binding file which lists our additions to the Linux binding
- Add pll_p_out3 to clock binding definition

 arch/arm/dts/tegra20.dtsi                    |   10 +++++++++-
 doc/device-tree-bindings/i2c/tegra20-i2c.txt |   23 +++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletions(-)
 create mode 100644 doc/device-tree-bindings/i2c/tegra20-i2c.txt

Comments

Stephen Warren March 7, 2012, 8:39 p.m. UTC | #1
On 03/06/2012 10:00 PM, Simon Glass wrote:
> Add U-Boot's peripheral clock information to the Tegra20 device tree file.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
...
> diff --git a/doc/device-tree-bindings/i2c/tegra20-i2c.txt b/doc/device-tree-bindings/i2c/tegra20-i2c.txt
...
> +Required properties:
> + - clocks : Two clocks must be given, each as a phandle to the Tegra's
> +            CAR node and the clock number as a parameter:

I'd rather rely on the common clock binding documentation for the format
of the clock specifiers than duplicate the information here. True, that
document isn't in U-Boot (nor is it final). I.e.:

    Two clocks must be specified:

But I think this is fine for now (I might care more if submitting a doc
file for the kernel tree), so

Acked-by: Stephen Warren <swarren@wwwdotorg.org>

> +     - the I2C clock to use for the peripheral
> +     - the pll_p_out3 clock, which can be used for fast operation. This
> +          does not change and is the same for all I2C nodes.
> +
> +Example:
> +(TODO: merge with existing example):
> +
> +	i2c@7000c400 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "nvidia,tegra20-i2c";
> +		reg = <0x7000C400 0x100>;
> +		interrupts = < 116 >;
> +		/* PERIPH_ID_I2C2, PLL_P_OUT3 */
> +		clocks = <&tegra_car 54>, <&tegra_car 124>;
> +	};
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Glass March 8, 2012, 6:31 a.m. UTC | #2
Hi Stephen,

On Wed, Mar 7, 2012 at 12:39 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 03/06/2012 10:00 PM, Simon Glass wrote:
>> Add U-Boot's peripheral clock information to the Tegra20 device tree file.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
> ...
>> diff --git a/doc/device-tree-bindings/i2c/tegra20-i2c.txt b/doc/device-tree-bindings/i2c/tegra20-i2c.txt
> ...
>> +Required properties:
>> + - clocks : Two clocks must be given, each as a phandle to the Tegra's
>> +            CAR node and the clock number as a parameter:
>
> I'd rather rely on the common clock binding documentation for the format
> of the clock specifiers than duplicate the information here. True, that
> document isn't in U-Boot (nor is it final). I.e.:
>
>    Two clocks must be specified:
>
> But I think this is fine for now (I might care more if submitting a doc
> file for the kernel tree), so
>
> Acked-by: Stephen Warren <swarren@wwwdotorg.org>

Thanks. Good to get this in.

Regards,
Simon
>
>> +     - the I2C clock to use for the peripheral
>> +     - the pll_p_out3 clock, which can be used for fast operation. This
>> +          does not change and is the same for all I2C nodes.
>> +
>> +Example:
>> +(TODO: merge with existing example):
>> +
>> +     i2c@7000c400 {
>> +             #address-cells = <1>;
>> +             #size-cells = <0>;
>> +             compatible = "nvidia,tegra20-i2c";
>> +             reg = <0x7000C400 0x100>;
>> +             interrupts = < 116 >;
>> +             /* PERIPH_ID_I2C2, PLL_P_OUT3 */
>> +             clocks = <&tegra_car 54>, <&tegra_car 124>;
>> +     };
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/dts/tegra20.dtsi b/arch/arm/dts/tegra20.dtsi
index d6bc9f1..d5ca02c 100644
--- a/arch/arm/dts/tegra20.dtsi
+++ b/arch/arm/dts/tegra20.dtsi
@@ -34,6 +34,8 @@ 
 		compatible = "nvidia,tegra20-i2c";
 		reg = <0x7000C000 0x100>;
 		interrupts = < 70 >;
+		/* PERIPH_ID_I2C1, PLL_P_OUT3 */
+		clocks = <&tegra_car 12>, <&tegra_car 124>;
 	};
 
 	i2c@7000c400 {
@@ -42,6 +44,8 @@ 
 		compatible = "nvidia,tegra20-i2c";
 		reg = <0x7000C400 0x100>;
 		interrupts = < 116 >;
+		/* PERIPH_ID_I2C2, PLL_P_OUT3 */
+		clocks = <&tegra_car 54>, <&tegra_car 124>;
 	};
 
 	i2c@7000c500 {
@@ -50,14 +54,18 @@ 
 		compatible = "nvidia,tegra20-i2c";
 		reg = <0x7000C500 0x100>;
 		interrupts = < 124 >;
+		/* PERIPH_ID_I2C3, PLL_P_OUT3 */
+		clocks = <&tegra_car 67>, <&tegra_car 124>;
 	};
 
 	i2c@7000d000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "nvidia,tegra20-i2c";
+		compatible = "nvidia,tegra20-i2c-dvc";
 		reg = <0x7000D000 0x200>;
 		interrupts = < 85 >;
+		/* PERIPH_ID_DVC_I2C, PLL_P_OUT3 */
+		clocks = <&tegra_car 47>, <&tegra_car 124>;
 	};
 
 	i2s@70002800 {
diff --git a/doc/device-tree-bindings/i2c/tegra20-i2c.txt b/doc/device-tree-bindings/i2c/tegra20-i2c.txt
new file mode 100644
index 0000000..d601c17
--- /dev/null
+++ b/doc/device-tree-bindings/i2c/tegra20-i2c.txt
@@ -0,0 +1,23 @@ 
+(Placeholder note while we locate the kernel Tegra20 bindings)
+
+Added in U-Boot:
+
+Required properties:
+ - clocks : Two clocks must be given, each as a phandle to the Tegra's
+            CAR node and the clock number as a parameter:
+     - the I2C clock to use for the peripheral
+     - the pll_p_out3 clock, which can be used for fast operation. This
+          does not change and is the same for all I2C nodes.
+
+Example:
+(TODO: merge with existing example):
+
+	i2c@7000c400 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "nvidia,tegra20-i2c";
+		reg = <0x7000C400 0x100>;
+		interrupts = < 116 >;
+		/* PERIPH_ID_I2C2, PLL_P_OUT3 */
+		clocks = <&tegra_car 54>, <&tegra_car 124>;
+	};