2015-06-16 10:05:22

by Josh Wu

[permalink] [raw]
Subject: [PATCH v2 1/2] ARM: at91: dts: add isi & ov2640 dt nodes for at91sam9m10g45ek board

First we group the isi data pins, and for now we only use 0~7 data pins
with HSYNC and VSYNC.
Also add the link for atmel-isi and ov2640 sensor node.

Signed-off-by: Josh Wu <[email protected]>
---

Changes in v2:
- group the isi data pin.
- remove the isi_mck pin from pinctrl-isi as it will used by camera
sensor.

arch/arm/boot/dts/at91sam9g45.dtsi | 48 +++++++++++++++++++++-------------
arch/arm/boot/dts/at91sam9m10g45ek.dts | 45 +++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+), 18 deletions(-)

diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index d260ba7..f6220d6 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -498,23 +498,31 @@
};

isi {
- pinctrl_isi: isi-0 {
- atmel,pins = <AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE /* D8 */
- AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* D9 */
- AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* D10 */
- AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE /* D11 */
- AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* D0 */
- AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* D1 */
- AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* D2 */
- AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* D3 */
- AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* D4 */
- AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* D5 */
- AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* D6 */
- AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* D7 */
- AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PCK */
- AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* VSYNC */
- AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* HSYNC */
- AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE /* MCK */>;
+ pinctrl_isi_data_0_7: isi-0-data-0-7 {
+ atmel,pins =
+ <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* D0 */
+ AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* D1 */
+ AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* D2 */
+ AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* D3 */
+ AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* D4 */
+ AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* D5 */
+ AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* D6 */
+ AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* D7 */
+ AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PCK */
+ AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* VSYNC */
+ AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* HSYNC */
+ };
+
+ pinctrl_isi_data_8_9: isi-0-data-8-9 {
+ atmel,pins =
+ <AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE /* D8 */
+ AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* D9 */
+ };
+
+ pinctrl_isi_data_10_11: isi-0-data-10-11 {
+ atmel,pins =
+ <AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* D10 */
+ AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* D11 */
};
};

@@ -1068,8 +1076,12 @@
clocks = <&isi_clk>;
clock-names = "isi_clk";
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_isi>;
+ pinctrl-0 = <&pinctrl_isi_data_0_7>;
status = "disabled";
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
};

pwm0: pwm@fffb8000 {
diff --git a/arch/arm/boot/dts/at91sam9m10g45ek.dts b/arch/arm/boot/dts/at91sam9m10g45ek.dts
index 1375d33..5062e18 100644
--- a/arch/arm/boot/dts/at91sam9m10g45ek.dts
+++ b/arch/arm/boot/dts/at91sam9m10g45ek.dts
@@ -63,6 +63,25 @@

i2c0: i2c@fff84000 {
status = "okay";
+ ov2640: camera@30 {
+ compatible = "ovti,ov2640";
+ reg = <0x30>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
+ resetb-gpios = <&pioD 12 GPIO_ACTIVE_LOW>;
+ pwdn-gpios = <&pioD 13 GPIO_ACTIVE_HIGH>;
+ clocks = <&pck1>;
+ clock-names = "xvclk";
+ assigned-clocks = <&pck1>;
+ assigned-clock-rates = <25000000>;
+
+ port {
+ ov2640_0: endpoint {
+ remote-endpoint = <&isi_0>;
+ bus-width = <8>;
+ };
+ };
+ };
};

i2c1: i2c@fff88000 {
@@ -101,6 +120,22 @@
};

pinctrl@fffff200 {
+ camera_sensor {
+ pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
+ atmel,pins =
+ <AT91_PIOB 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+ };
+
+ pinctrl_sensor_reset: sensor_reset-0 {
+ atmel,pins =
+ <AT91_PIOD 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+ };
+
+ pinctrl_sensor_power: sensor_power-0 {
+ atmel,pins =
+ <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+ };
+ };
mmc0 {
pinctrl_board_mmc0: mmc0-board {
atmel,pins =
@@ -155,6 +190,16 @@
status = "okay";
};

+ isi@fffb4000 {
+ status = "okay";
+ port {
+ isi_0: endpoint {
+ remote-endpoint = <&ov2640_0>;
+ bus-width = <8>;
+ };
+ };
+ };
+
pwm0: pwm@fffb8000 {
status = "okay";

--
1.9.1


2015-06-16 10:05:40

by Josh Wu

[permalink] [raw]
Subject: [PATCH v2 2/2] ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support

Add Atmel-isi and ov2640 driver in defconfig

Signed-off-by: Josh Wu <[email protected]>
---

Changes in v2: None

arch/arm/configs/at91_dt_defconfig | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
index bcef49a..d089ec9 100644
--- a/arch/arm/configs/at91_dt_defconfig
+++ b/arch/arm/configs/at91_dt_defconfig
@@ -131,6 +131,12 @@ CONFIG_POWER_RESET=y
CONFIG_WATCHDOG=y
CONFIG_AT91SAM9X_WATCHDOG=y
CONFIG_SSB=m
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_SOC_CAMERA=y
+CONFIG_VIDEO_ATMEL_ISI=y
+CONFIG_SOC_CAMERA_OV2640=y
CONFIG_FB=y
CONFIG_FB_ATMEL=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
--
1.9.1

2015-06-18 15:45:48

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] ARM: at91: dts: add isi & ov2640 dt nodes for at91sam9m10g45ek board

Hi,

Seems good to me, a small comment below:

On 16/06/2015 at 18:08:34 +0800, Josh Wu wrote :
> @@ -1068,8 +1076,12 @@
> clocks = <&isi_clk>;
> clock-names = "isi_clk";
> pinctrl-names = "default";
> - pinctrl-0 = <&pinctrl_isi>;
> + pinctrl-0 = <&pinctrl_isi_data_0_7>;

I would say that the pinctrl is board specific so both pinctrl-names and
pinctrl-0 should go to at91sam9m10g45ek.dts

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

2015-07-28 07:38:28

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support

Le 16/06/2015 12:08, Josh Wu a ?crit :
> Add Atmel-isi and ov2640 driver in defconfig
>
> Signed-off-by: Josh Wu <[email protected]>
> ---
>
> Changes in v2: None
>
> arch/arm/configs/at91_dt_defconfig | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
> index bcef49a..d089ec9 100644
> --- a/arch/arm/configs/at91_dt_defconfig
> +++ b/arch/arm/configs/at91_dt_defconfig
> @@ -131,6 +131,12 @@ CONFIG_POWER_RESET=y
> CONFIG_WATCHDOG=y
> CONFIG_AT91SAM9X_WATCHDOG=y
> CONFIG_SSB=m
> +CONFIG_MEDIA_SUPPORT=y
> +CONFIG_MEDIA_CAMERA_SUPPORT=y
> +CONFIG_V4L_PLATFORM_DRIVERS=y
> +CONFIG_SOC_CAMERA=y
> +CONFIG_VIDEO_ATMEL_ISI=y
> +CONFIG_SOC_CAMERA_OV2640=y

I would select this camera driver as a module. Your thoughts?

Bye,

> CONFIG_FB=y
> CONFIG_FB_ATMEL=y
> CONFIG_BACKLIGHT_LCD_SUPPORT=y
>


--
Nicolas Ferre

2015-07-28 08:17:23

by Josh Wu

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support

On 7/28/2015 3:37 PM, Nicolas Ferre wrote:
> Le 16/06/2015 12:08, Josh Wu a ?crit :
>> Add Atmel-isi and ov2640 driver in defconfig
>>
>> Signed-off-by: Josh Wu <[email protected]>
>> ---
>>
>> Changes in v2: None
>>
>> arch/arm/configs/at91_dt_defconfig | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
>> index bcef49a..d089ec9 100644
>> --- a/arch/arm/configs/at91_dt_defconfig
>> +++ b/arch/arm/configs/at91_dt_defconfig
>> @@ -131,6 +131,12 @@ CONFIG_POWER_RESET=y
>> CONFIG_WATCHDOG=y
>> CONFIG_AT91SAM9X_WATCHDOG=y
>> CONFIG_SSB=m
>> +CONFIG_MEDIA_SUPPORT=y
>> +CONFIG_MEDIA_CAMERA_SUPPORT=y
>> +CONFIG_V4L_PLATFORM_DRIVERS=y
>> +CONFIG_SOC_CAMERA=y
>> +CONFIG_VIDEO_ATMEL_ISI=y
>> +CONFIG_SOC_CAMERA_OV2640=y
> I would select this camera driver as a module. Your thoughts?

yes, I agree.
Do I need to resent the patch for this?

Best Regards,
Josh Wu

>
> Bye,
>
>> CONFIG_FB=y
>> CONFIG_FB_ATMEL=y
>> CONFIG_BACKLIGHT_LCD_SUPPORT=y
>>
>

2015-07-30 12:05:04

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] ARM: at91: dts: add isi & ov2640 dt nodes for at91sam9m10g45ek board

Le 18/06/2015 17:45, Alexandre Belloni a ?crit :
> Hi,
>
> Seems good to me, a small comment below:
>
> On 16/06/2015 at 18:08:34 +0800, Josh Wu wrote :
>> @@ -1068,8 +1076,12 @@
>> clocks = <&isi_clk>;
>> clock-names = "isi_clk";
>> pinctrl-names = "default";
>> - pinctrl-0 = <&pinctrl_isi>;
>> + pinctrl-0 = <&pinctrl_isi_data_0_7>;
>
> I would say that the pinctrl is board specific so both pinctrl-names and
> pinctrl-0 should go to at91sam9m10g45ek.dts

I move it in the board file.

Otherwise:
Acked-by: Nicolas Ferre <[email protected]>

and stacked on top of at91-4.3-dt.

Bye,
--
Nicolas Ferre

2015-07-30 12:21:34

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support

Le 28/07/2015 10:15, Josh Wu a ?crit :
> On 7/28/2015 3:37 PM, Nicolas Ferre wrote:
>> Le 16/06/2015 12:08, Josh Wu a ?crit :
>>> Add Atmel-isi and ov2640 driver in defconfig
>>>
>>> Signed-off-by: Josh Wu <[email protected]>
>>> ---
>>>
>>> Changes in v2: None
>>>
>>> arch/arm/configs/at91_dt_defconfig | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
>>> index bcef49a..d089ec9 100644
>>> --- a/arch/arm/configs/at91_dt_defconfig
>>> +++ b/arch/arm/configs/at91_dt_defconfig
>>> @@ -131,6 +131,12 @@ CONFIG_POWER_RESET=y
>>> CONFIG_WATCHDOG=y
>>> CONFIG_AT91SAM9X_WATCHDOG=y
>>> CONFIG_SSB=m
>>> +CONFIG_MEDIA_SUPPORT=y
>>> +CONFIG_MEDIA_CAMERA_SUPPORT=y
>>> +CONFIG_V4L_PLATFORM_DRIVERS=y
>>> +CONFIG_SOC_CAMERA=y
>>> +CONFIG_VIDEO_ATMEL_ISI=y
>>> +CONFIG_SOC_CAMERA_OV2640=y
>> I would select this camera driver as a module. Your thoughts?
>
> yes, I agree.
> Do I need to resent the patch for this?

Nope, no need: I do it while am queuing this patch in at91-4.3-dt with my:
Acked-by: Nicolas Ferre <[email protected]>

Bye,
--
Nicolas Ferre