* [Buildroot] [dtc] Compiling a .dts overlay
@ 2016-05-06 12:17 Oscar Gomez Fuente
2016-05-06 21:08 ` Peter Seiderer
2016-05-06 21:20 ` Nicholas Walton
0 siblings, 2 replies; 9+ messages in thread
From: Oscar Gomez Fuente @ 2016-05-06 12:17 UTC (permalink / raw)
To: buildroot
Hi,
I'm working with the latest stable release: 2016.02 and with the raspberry
pi 3B.
I'm trying to compile my own .dtb overlay, because I need to add the IO
Expander i2c TCA6424A to my HW. And I would like to know how to do this
using overlays and device tree.
But I've got this error when I tried to compile de .dts file:
# dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
Error: tca6424a-overlay.dts:3.2-8 syntax error
FATAL ERROR: Unable to parse input tree
# dtc -v
Version: DTC 1.4.1-g8ead5b66
#
This is the .dts file:
----------
// Definitions for TCA6424A IO Extender from Texas Instruments
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
fragment at 0 {
target = <&i2c1>;
__overlay__ {
status = "okay";
};
};
fragment at 1 {
target = <&gpio>;
__overlay__ {
tca6424_pins: tca6424_pins {
brcm,pins = <4>;
brcm,function = <0>;
};
};
};
fragment at 2 {
target = <&i2c1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
tca6424 at 22 {
compatible = "ti,tca6424";
reg = <0x22>;
pinctrl-names = "default";
pinctrl-0 = <&tca6424_pins>;
interrupt-parent = <&gpio4>;
interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
};
};
};
};
-----------
Anyone could help me how to do this?
Best regards.
Oscar Gomez Fuente.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160506/c24b270d/attachment.html>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-06 12:17 [Buildroot] [dtc] Compiling a .dts overlay Oscar Gomez Fuente
@ 2016-05-06 21:08 ` Peter Seiderer
2016-05-06 21:20 ` Nicholas Walton
1 sibling, 0 replies; 9+ messages in thread
From: Peter Seiderer @ 2016-05-06 21:08 UTC (permalink / raw)
To: buildroot
Hello Oscar,
On Fri, 6 May 2016 14:17:32 +0200, Oscar Gomez Fuente <oscargomezf@gmail.com> wrote:
> Hi,
>
> I'm working with the latest stable release: 2016.02 and with the raspberry
> pi 3B.
>
> I'm trying to compile my own .dtb overlay, because I need to add the IO
> Expander i2c TCA6424A to my HW. And I would like to know how to do this
> using overlays and device tree.
>
> But I've got this error when I tried to compile de .dts file:
>
> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
> Error: tca6424a-overlay.dts:3.2-8 syntax error
> FATAL ERROR: Unable to parse input tree
> # dtc -v
> Version: DTC 1.4.1-g8ead5b66
> #
>
You need to use a overlay enhanced dtc e.g. the one provided with the
Raspberry Pi linux kernel:
./build/linux-9118192d7357b0942885c2c8baf65d5501c12913/scripts/dtc/dtc --version
Version: DTC 1.4.1-g25efc119
./build/linux-9118192d7357b0942885c2c8baf65d5501c12913/scripts/dtc/dtc -@ -I dts -O dtb -o -o tca6424a-overlay.dtb tca6424a-overlay.dts
Not sure if the '-@' is still needed. Only one change needed for your example, see below...
> This is the .dts file:
> ----------
> // Definitions for TCA6424A IO Extender from Texas Instruments
> /dts-v1/;
> /plugin/;
> / {
> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
>
> fragment at 0 {
> target = <&i2c1>;
> __overlay__ {
> status = "okay";
> };
> };
>
> fragment at 1 {
> target = <&gpio>;
> __overlay__ {
> tca6424_pins: tca6424_pins {
> brcm,pins = <4>;
> brcm,function = <0>;
> };
> };
> };
>
> fragment at 2 {
> target = <&i2c1>;
> __overlay__ {
> #address-cells = <1>;
> #size-cells = <0>;
> tca6424 at 22 {
> compatible = "ti,tca6424";
> reg = <0x22>;
> pinctrl-names = "default";
> pinctrl-0 = <&tca6424_pins>;
> interrupt-parent = <&gpio4>;
> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
Changed to:
interrupts = <23 2>;
Seems no constants supported (or missing include) and '2' was just some guess...
Regards,
Peter
> };
>
> };
> };
> };
> -----------
>
> Anyone could help me how to do this?
>
> Best regards.
>
> Oscar Gomez Fuente.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-06 12:17 [Buildroot] [dtc] Compiling a .dts overlay Oscar Gomez Fuente
2016-05-06 21:08 ` Peter Seiderer
@ 2016-05-06 21:20 ` Nicholas Walton
2016-05-09 6:37 ` Oscar Gomez Fuente
1 sibling, 1 reply; 9+ messages in thread
From: Nicholas Walton @ 2016-05-06 21:20 UTC (permalink / raw)
To: buildroot
Plugin overlays are not part of mainline dtc. Try
https://git.kernel.org/cgit/utils/dtc/dtc.git and the instructions at
https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
.
On Fri, May 6, 2016 at 5:17 AM, Oscar Gomez Fuente <oscargomezf@gmail.com>
wrote:
> Hi,
>
> I'm working with the latest stable release: 2016.02 and with the raspberry
> pi 3B.
>
> I'm trying to compile my own .dtb overlay, because I need to add the IO
> Expander i2c TCA6424A to my HW. And I would like to know how to do this
> using overlays and device tree.
>
> But I've got this error when I tried to compile de .dts file:
>
> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
> Error: tca6424a-overlay.dts:3.2-8 syntax error
> FATAL ERROR: Unable to parse input tree
> # dtc -v
> Version: DTC 1.4.1-g8ead5b66
> #
>
> This is the .dts file:
> ----------
> // Definitions for TCA6424A IO Extender from Texas Instruments
> /dts-v1/;
> /plugin/;
> / {
> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
>
> fragment at 0 {
> target = <&i2c1>;
> __overlay__ {
> status = "okay";
> };
> };
>
> fragment at 1 {
> target = <&gpio>;
> __overlay__ {
> tca6424_pins: tca6424_pins {
> brcm,pins = <4>;
> brcm,function = <0>;
> };
> };
> };
>
> fragment at 2 {
> target = <&i2c1>;
> __overlay__ {
> #address-cells = <1>;
> #size-cells = <0>;
> tca6424 at 22 {
> compatible = "ti,tca6424";
> reg = <0x22>;
> pinctrl-names = "default";
> pinctrl-0 = <&tca6424_pins>;
> interrupt-parent = <&gpio4>;
> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
> };
>
> };
> };
> };
> -----------
>
> Anyone could help me how to do this?
>
> Best regards.
>
> Oscar Gomez Fuente.
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160506/2456c74d/attachment.html>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-06 21:20 ` Nicholas Walton
@ 2016-05-09 6:37 ` Oscar Gomez Fuente
2016-05-09 9:57 ` Oscar Gomez Fuente
2016-05-09 20:36 ` Peter Seiderer
0 siblings, 2 replies; 9+ messages in thread
From: Oscar Gomez Fuente @ 2016-05-09 6:37 UTC (permalink / raw)
To: buildroot
Hi,
I've tried what told me Peter Seiderer, and it compiled fine: "using
interrupts = <23 2>;". Now I'm going to check if the .dtb file works fine.
Thank you very much.
Best regards.
Oscar Gomez Fuente
On 6 May 2016 at 23:20, Nicholas Walton <nicholas.walton@gmail.com> wrote:
> Plugin overlays are not part of mainline dtc. Try
> https://git.kernel.org/cgit/utils/dtc/dtc.git and the instructions at
> https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
> .
>
> On Fri, May 6, 2016 at 5:17 AM, Oscar Gomez Fuente <oscargomezf@gmail.com>
> wrote:
>
>> Hi,
>>
>> I'm working with the latest stable release: 2016.02 and with the
>> raspberry pi 3B.
>>
>> I'm trying to compile my own .dtb overlay, because I need to add the IO
>> Expander i2c TCA6424A to my HW. And I would like to know how to do this
>> using overlays and device tree.
>>
>> But I've got this error when I tried to compile de .dts file:
>>
>> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
>> Error: tca6424a-overlay.dts:3.2-8 syntax error
>> FATAL ERROR: Unable to parse input tree
>> # dtc -v
>> Version: DTC 1.4.1-g8ead5b66
>> #
>>
>> This is the .dts file:
>> ----------
>> // Definitions for TCA6424A IO Extender from Texas Instruments
>> /dts-v1/;
>> /plugin/;
>> / {
>> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
>>
>> fragment at 0 {
>> target = <&i2c1>;
>> __overlay__ {
>> status = "okay";
>> };
>> };
>>
>> fragment at 1 {
>> target = <&gpio>;
>> __overlay__ {
>> tca6424_pins: tca6424_pins {
>> brcm,pins = <4>;
>> brcm,function = <0>;
>> };
>> };
>> };
>>
>> fragment at 2 {
>> target = <&i2c1>;
>> __overlay__ {
>> #address-cells = <1>;
>> #size-cells = <0>;
>> tca6424 at 22 {
>> compatible = "ti,tca6424";
>> reg = <0x22>;
>> pinctrl-names = "default";
>> pinctrl-0 = <&tca6424_pins>;
>> interrupt-parent = <&gpio4>;
>> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
>> };
>>
>> };
>> };
>> };
>> -----------
>>
>> Anyone could help me how to do this?
>>
>> Best regards.
>>
>> Oscar Gomez Fuente.
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160509/f64a8568/attachment.html>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-09 6:37 ` Oscar Gomez Fuente
@ 2016-05-09 9:57 ` Oscar Gomez Fuente
2016-05-09 20:46 ` Peter Seiderer
2016-05-09 20:36 ` Peter Seiderer
1 sibling, 1 reply; 9+ messages in thread
From: Oscar Gomez Fuente @ 2016-05-09 9:57 UTC (permalink / raw)
To: buildroot
Hi everyone,
The dtb overlay loaded fine. I've checked this with the command: vcdbg log
msg
...
001402.187: Loading 'bcm2710-rpi-3-b.dtb' from SD card
001468.661: dtparam: uart0_clkrate=48000000
001488.609: Loaded overlay 'pi3-disable-bt'
001523.385: Loaded overlay 'tca6424a'
...
Now I can see the device: /sys/call/gpiochip488
I can access to the 24 pins of my TCA6424A IC [488 to 511]
# echo 488 > /sys/class/gpio/export
# echo "out" > /sys/class/gpio/gpio488/direction
# echo 1 > /sys/class/gpio/gpio488/value
But I couldn't see the interrupt in /proc/interrupts:
# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
16: 0 0 0 0 ARMCTRL 16 Edge
bcm2708_fb dma
20: 0 0 0 0 ARMCTRL 20 Edge
DMA IRQ
21: 0 0 0 0 ARMCTRL 21 Edge
DMA IRQ
24: 0 0 0 0 ARMCTRL 24 Edge
DMA IRQ
32: 424138 0 0 0 ARMCTRL 32 Edge
dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
49: 0 0 0 0 ARMCTRL 49 Edge
3f200000.gpio:bank0
50: 0 0 0 0 ARMCTRL 50 Edge
3f200000.gpio:bank1
65: 14 0 0 0 ARMCTRL 65 Edge
3f00b880.mailbox
66: 2 0 0 0 ARMCTRL 66 Edge
VCHIQ doorbell
75: 1 0 0 0 ARMCTRL 75 Edge
77: 554 0 0 0 ARMCTRL 77 Edge
DMA IRQ
79: 6148 0 0 0 ARMCTRL 79 Edge
3f804000.i2c
80: 0 0 0 0 ARMCTRL 80 Edge
3f204000.spi
82: 136 0 0 0 ARMCTRL 82 Edge
mmc0
83: 10895 0 0 0 ARMCTRL 83 Edge
uart-pl011
84: 9475 0 0 0 ARMCTRL 84 Edge
mmc1
96: 0 0 0 0 ARMCTRL 96 Edge
arch_timer
97: 10595 8874 3133 458 ARMCTRL 97 Edge
arch_timer
...
According to my .dts file, I've configured the pin GPIO04 as an input
[interrupt]. I think I had to see an interrupt related to tca6424a, didn't
I? but it didn't appear. I've read the kernel log and I've seen this
suspicious message:
# dmesg
..
[ 3.633230] pca953x 1-0022: interrupt support not compiled in
..
So I was surfing on the internet and It seems to be you have to select in
the kernel the option:
Device Drivers > GPIO Support > I2C GPIO expanders > [*] GPIO_PCA953X_IRQ
But If you want to select this option you can't select the driver:
PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports like a module. (I
don't have any idea why?)
Eventually, everything works fine.
So this is my final tca6424a-overlay.dts [i2c1 and INT pin connected to
GPI04] working fine on my raspberry pi 3B.
---
// Definitions for TCA6424A IO Expander from Texas Instruments
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
fragment at 0 {
target = <&i2c1>;
__overlay__ {
status = "okay";
};
};
fragment at 1 {
target = <&gpio>;
__overlay__ {
tca6424_pins: tca6424_pins {
brcm,pins = <4>;
brcm,function = <0>;
};
};
};
fragment at 2 {
target = <&i2c1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
tca6424 at 22 {
compatible = "ti,tca6424";
reg = <0x22>;
pinctrl-names = "default";
pinctrl-0 = <&tca6424_pins>;
interrupt-parent = <&gpio>;
interrupts = <4 2>;
};
};
};
};
---
I would like to place this overlay dts file in
https://github.com/raspberrypi/linux.git/arch/arm/boot/dts/overlays
Does anyone know how to apply for uploading this overlay dts file, to the
person in charge of https://github.com/raspberrypi/linux?
Best regards.
On 9 May 2016 at 08:37, Oscar Gomez Fuente <oscargomezf@gmail.com> wrote:
> Hi,
>
>
> I've tried what told me Peter Seiderer, and it compiled fine: "using
> interrupts = <23 2>;". Now I'm going to check if the .dtb file works fine.
>
> Thank you very much.
>
> Best regards.
>
> Oscar Gomez Fuente
>
> On 6 May 2016 at 23:20, Nicholas Walton <nicholas.walton@gmail.com> wrote:
>
>> Plugin overlays are not part of mainline dtc. Try
>> https://git.kernel.org/cgit/utils/dtc/dtc.git and the instructions at
>> https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
>> .
>>
>> On Fri, May 6, 2016 at 5:17 AM, Oscar Gomez Fuente <oscargomezf@gmail.com
>> > wrote:
>>
>>> Hi,
>>>
>>> I'm working with the latest stable release: 2016.02 and with the
>>> raspberry pi 3B.
>>>
>>> I'm trying to compile my own .dtb overlay, because I need to add the IO
>>> Expander i2c TCA6424A to my HW. And I would like to know how to do this
>>> using overlays and device tree.
>>>
>>> But I've got this error when I tried to compile de .dts file:
>>>
>>> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
>>> Error: tca6424a-overlay.dts:3.2-8 syntax error
>>> FATAL ERROR: Unable to parse input tree
>>> # dtc -v
>>> Version: DTC 1.4.1-g8ead5b66
>>> #
>>>
>>> This is the .dts file:
>>> ----------
>>> // Definitions for TCA6424A IO Extender from Texas Instruments
>>> /dts-v1/;
>>> /plugin/;
>>> / {
>>> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
>>>
>>> fragment at 0 {
>>> target = <&i2c1>;
>>> __overlay__ {
>>> status = "okay";
>>> };
>>> };
>>>
>>> fragment at 1 {
>>> target = <&gpio>;
>>> __overlay__ {
>>> tca6424_pins: tca6424_pins {
>>> brcm,pins = <4>;
>>> brcm,function = <0>;
>>> };
>>> };
>>> };
>>>
>>> fragment at 2 {
>>> target = <&i2c1>;
>>> __overlay__ {
>>> #address-cells = <1>;
>>> #size-cells = <0>;
>>> tca6424 at 22 {
>>> compatible = "ti,tca6424";
>>> reg = <0x22>;
>>> pinctrl-names = "default";
>>> pinctrl-0 = <&tca6424_pins>;
>>> interrupt-parent = <&gpio4>;
>>> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
>>> };
>>>
>>> };
>>> };
>>> };
>>> -----------
>>>
>>> Anyone could help me how to do this?
>>>
>>> Best regards.
>>>
>>> Oscar Gomez Fuente.
>>>
>>> _______________________________________________
>>> buildroot mailing list
>>> buildroot at busybox.net
>>> http://lists.busybox.net/mailman/listinfo/buildroot
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160509/a88a5d7a/attachment.html>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-09 6:37 ` Oscar Gomez Fuente
2016-05-09 9:57 ` Oscar Gomez Fuente
@ 2016-05-09 20:36 ` Peter Seiderer
1 sibling, 0 replies; 9+ messages in thread
From: Peter Seiderer @ 2016-05-09 20:36 UTC (permalink / raw)
To: buildroot
Hello Oscar,
On Mon, 9 May 2016 08:37:36 +0200, Oscar Gomez Fuente <oscargomezf@gmail.com> wrote:
> Hi,
>
>
> I've tried what told me Peter Seiderer, and it compiled fine: "using
> interrupts = <23 2>;". Now I'm going to check if the .dtb file works fine.
>
$ grep -R IRQ_TYPE_LEVEL_LOW linux-9118192d7357b0942885c2c8baf65d5501c12913/arch/arm/boot/dts/include/
linux-9118192d7357b0942885c2c8baf65d5501c12913/arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h:#define IRQ_TYPE_LEVEL_LOW 8
So 'interrupts = <23 IRQ_TYPE_LEVEL_LOW>;' should translate to 'interrupts = <23 8>;'
> Thank you very much.
Thanks for feedback...
Regards,
Peter
>
> Best regards.
>
> Oscar Gomez Fuente
>
> On 6 May 2016 at 23:20, Nicholas Walton <nicholas.walton@gmail.com> wrote:
>
> > Plugin overlays are not part of mainline dtc. Try
> > https://git.kernel.org/cgit/utils/dtc/dtc.git and the instructions at
> > https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
> > .
> >
> > On Fri, May 6, 2016 at 5:17 AM, Oscar Gomez Fuente <oscargomezf@gmail.com>
> > wrote:
> >
> >> Hi,
> >>
> >> I'm working with the latest stable release: 2016.02 and with the
> >> raspberry pi 3B.
> >>
> >> I'm trying to compile my own .dtb overlay, because I need to add the IO
> >> Expander i2c TCA6424A to my HW. And I would like to know how to do this
> >> using overlays and device tree.
> >>
> >> But I've got this error when I tried to compile de .dts file:
> >>
> >> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
> >> Error: tca6424a-overlay.dts:3.2-8 syntax error
> >> FATAL ERROR: Unable to parse input tree
> >> # dtc -v
> >> Version: DTC 1.4.1-g8ead5b66
> >> #
> >>
> >> This is the .dts file:
> >> ----------
> >> // Definitions for TCA6424A IO Extender from Texas Instruments
> >> /dts-v1/;
> >> /plugin/;
> >> / {
> >> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
> >>
> >> fragment at 0 {
> >> target = <&i2c1>;
> >> __overlay__ {
> >> status = "okay";
> >> };
> >> };
> >>
> >> fragment at 1 {
> >> target = <&gpio>;
> >> __overlay__ {
> >> tca6424_pins: tca6424_pins {
> >> brcm,pins = <4>;
> >> brcm,function = <0>;
> >> };
> >> };
> >> };
> >>
> >> fragment at 2 {
> >> target = <&i2c1>;
> >> __overlay__ {
> >> #address-cells = <1>;
> >> #size-cells = <0>;
> >> tca6424 at 22 {
> >> compatible = "ti,tca6424";
> >> reg = <0x22>;
> >> pinctrl-names = "default";
> >> pinctrl-0 = <&tca6424_pins>;
> >> interrupt-parent = <&gpio4>;
> >> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
> >> };
> >>
> >> };
> >> };
> >> };
> >> -----------
> >>
> >> Anyone could help me how to do this?
> >>
> >> Best regards.
> >>
> >> Oscar Gomez Fuente.
> >>
> >> _______________________________________________
> >> buildroot mailing list
> >> buildroot at busybox.net
> >> http://lists.busybox.net/mailman/listinfo/buildroot
> >>
> >
> >
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-09 9:57 ` Oscar Gomez Fuente
@ 2016-05-09 20:46 ` Peter Seiderer
2016-05-10 7:48 ` Oscar Gomez Fuente
0 siblings, 1 reply; 9+ messages in thread
From: Peter Seiderer @ 2016-05-09 20:46 UTC (permalink / raw)
To: buildroot
Hello Oscar,
On Mon, 9 May 2016 11:57:02 +0200, Oscar Gomez Fuente <oscargomezf@gmail.com> wrote:
> Hi everyone,
>
> The dtb overlay loaded fine. I've checked this with the command: vcdbg log
> msg
> ...
> 001402.187: Loading 'bcm2710-rpi-3-b.dtb' from SD card
> 001468.661: dtparam: uart0_clkrate=48000000
> 001488.609: Loaded overlay 'pi3-disable-bt'
> 001523.385: Loaded overlay 'tca6424a'
> ...
>
> Now I can see the device: /sys/call/gpiochip488
>
> I can access to the 24 pins of my TCA6424A IC [488 to 511]
>
> # echo 488 > /sys/class/gpio/export
> # echo "out" > /sys/class/gpio/gpio488/direction
> # echo 1 > /sys/class/gpio/gpio488/value
>
> But I couldn't see the interrupt in /proc/interrupts:
>
> # cat /proc/interrupts
> CPU0 CPU1 CPU2 CPU3
> 16: 0 0 0 0 ARMCTRL 16 Edge
> bcm2708_fb dma
> 20: 0 0 0 0 ARMCTRL 20 Edge
> DMA IRQ
> 21: 0 0 0 0 ARMCTRL 21 Edge
> DMA IRQ
> 24: 0 0 0 0 ARMCTRL 24 Edge
> DMA IRQ
> 32: 424138 0 0 0 ARMCTRL 32 Edge
> dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
> 49: 0 0 0 0 ARMCTRL 49 Edge
> 3f200000.gpio:bank0
> 50: 0 0 0 0 ARMCTRL 50 Edge
> 3f200000.gpio:bank1
> 65: 14 0 0 0 ARMCTRL 65 Edge
> 3f00b880.mailbox
> 66: 2 0 0 0 ARMCTRL 66 Edge
> VCHIQ doorbell
> 75: 1 0 0 0 ARMCTRL 75 Edge
> 77: 554 0 0 0 ARMCTRL 77 Edge
> DMA IRQ
> 79: 6148 0 0 0 ARMCTRL 79 Edge
> 3f804000.i2c
> 80: 0 0 0 0 ARMCTRL 80 Edge
> 3f204000.spi
> 82: 136 0 0 0 ARMCTRL 82 Edge
> mmc0
> 83: 10895 0 0 0 ARMCTRL 83 Edge
> uart-pl011
> 84: 9475 0 0 0 ARMCTRL 84 Edge
> mmc1
> 96: 0 0 0 0 ARMCTRL 96 Edge
> arch_timer
> 97: 10595 8874 3133 458 ARMCTRL 97 Edge
> arch_timer
> ...
>
> According to my .dts file, I've configured the pin GPIO04 as an input
> [interrupt]. I think I had to see an interrupt related to tca6424a, didn't
> I? but it didn't appear. I've read the kernel log and I've seen this
> suspicious message:
>
> # dmesg
> ..
> [ 3.633230] pca953x 1-0022: interrupt support not compiled in
> ..
>
> So I was surfing on the internet and It seems to be you have to select in
> the kernel the option:
>
> Device Drivers > GPIO Support > I2C GPIO expanders > [*] GPIO_PCA953X_IRQ
>
> But If you want to select this option you can't select the driver:
> PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports like a module. (I
> don't have any idea why?)
>
> Eventually, everything works fine.
>
>
> So this is my final tca6424a-overlay.dts [i2c1 and INT pin connected to
> GPI04] working fine on my raspberry pi 3B.
>
> ---
> // Definitions for TCA6424A IO Expander from Texas Instruments
> /dts-v1/;
> /plugin/;
> / {
> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
>
> fragment at 0 {
> target = <&i2c1>;
> __overlay__ {
> status = "okay";
> };
> };
>
> fragment at 1 {
> target = <&gpio>;
> __overlay__ {
> tca6424_pins: tca6424_pins {
> brcm,pins = <4>;
> brcm,function = <0>;
> };
> };
> };
>
> fragment at 2 {
> target = <&i2c1>;
> __overlay__ {
> #address-cells = <1>;
> #size-cells = <0>;
> tca6424 at 22 {
> compatible = "ti,tca6424";
> reg = <0x22>;
> pinctrl-names = "default";
> pinctrl-0 = <&tca6424_pins>;
> interrupt-parent = <&gpio>;
> interrupts = <4 2>;
> };
>
> };
> };
> };
> ---
>
> I would like to place this overlay dts file in
> https://github.com/raspberrypi/linux.git/arch/arm/boot/dts/overlays
>
> Does anyone know how to apply for uploading this overlay dts file, to the
> person in charge of https://github.com/raspberrypi/linux?
>
>
Try to announce it somewhere on RPi forum [1] or create a git(hub) pull
request against https://github.com/raspberrypi/linux?
But I think chances are higher for a widely available ready to use
devices/add-on-boards than for individual solutions...
Regards,
Peter
[1] https://www.raspberrypi.org/forum
> Best regards.
>
> On 9 May 2016 at 08:37, Oscar Gomez Fuente <oscargomezf@gmail.com> wrote:
>
> > Hi,
> >
> >
> > I've tried what told me Peter Seiderer, and it compiled fine: "using
> > interrupts = <23 2>;". Now I'm going to check if the .dtb file works fine.
> >
> > Thank you very much.
> >
> > Best regards.
> >
> > Oscar Gomez Fuente
> >
> > On 6 May 2016 at 23:20, Nicholas Walton <nicholas.walton@gmail.com> wrote:
> >
> >> Plugin overlays are not part of mainline dtc. Try
> >> https://git.kernel.org/cgit/utils/dtc/dtc.git and the instructions at
> >> https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
> >> .
> >>
> >> On Fri, May 6, 2016 at 5:17 AM, Oscar Gomez Fuente <oscargomezf@gmail.com
> >> > wrote:
> >>
> >>> Hi,
> >>>
> >>> I'm working with the latest stable release: 2016.02 and with the
> >>> raspberry pi 3B.
> >>>
> >>> I'm trying to compile my own .dtb overlay, because I need to add the IO
> >>> Expander i2c TCA6424A to my HW. And I would like to know how to do this
> >>> using overlays and device tree.
> >>>
> >>> But I've got this error when I tried to compile de .dts file:
> >>>
> >>> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
> >>> Error: tca6424a-overlay.dts:3.2-8 syntax error
> >>> FATAL ERROR: Unable to parse input tree
> >>> # dtc -v
> >>> Version: DTC 1.4.1-g8ead5b66
> >>> #
> >>>
> >>> This is the .dts file:
> >>> ----------
> >>> // Definitions for TCA6424A IO Extender from Texas Instruments
> >>> /dts-v1/;
> >>> /plugin/;
> >>> / {
> >>> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
> >>>
> >>> fragment at 0 {
> >>> target = <&i2c1>;
> >>> __overlay__ {
> >>> status = "okay";
> >>> };
> >>> };
> >>>
> >>> fragment at 1 {
> >>> target = <&gpio>;
> >>> __overlay__ {
> >>> tca6424_pins: tca6424_pins {
> >>> brcm,pins = <4>;
> >>> brcm,function = <0>;
> >>> };
> >>> };
> >>> };
> >>>
> >>> fragment at 2 {
> >>> target = <&i2c1>;
> >>> __overlay__ {
> >>> #address-cells = <1>;
> >>> #size-cells = <0>;
> >>> tca6424 at 22 {
> >>> compatible = "ti,tca6424";
> >>> reg = <0x22>;
> >>> pinctrl-names = "default";
> >>> pinctrl-0 = <&tca6424_pins>;
> >>> interrupt-parent = <&gpio4>;
> >>> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
> >>> };
> >>>
> >>> };
> >>> };
> >>> };
> >>> -----------
> >>>
> >>> Anyone could help me how to do this?
> >>>
> >>> Best regards.
> >>>
> >>> Oscar Gomez Fuente.
> >>>
> >>> _______________________________________________
> >>> buildroot mailing list
> >>> buildroot at busybox.net
> >>> http://lists.busybox.net/mailman/listinfo/buildroot
> >>>
> >>
> >>
> >
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-09 20:46 ` Peter Seiderer
@ 2016-05-10 7:48 ` Oscar Gomez Fuente
2016-05-10 11:09 ` Oscar Gomez Fuente
0 siblings, 1 reply; 9+ messages in thread
From: Oscar Gomez Fuente @ 2016-05-10 7:48 UTC (permalink / raw)
To: buildroot
Ok Peter,
Thank you very much.
I've got another concern. I've realized that sometimes the i2c device
tca6424a doesn't init correctly and I see these messages in the kernel log :
[ 3.638369] pca953x 1-0022: failed reading register
[ 3.644342] pca953x: probe of 1-0022 failed with error -
I think I can solve this If I use correctly the reset signal of the
tca6424a. Right now I don't use this signal, It's connected to a pull-up
resistor. Is there anyway to manage this type of reset signals in i2c
devices? I was surfing on the internet and I read this patch for the
gpio-pca953x driver.
http://www.spinics.net/lists/arm-kernel/msg351168.html
I've applied this patch and know I can see the resetsignal falling and
rising, but now the i2c device always fails in the init. But this patch
isn't committed on linux kernel, so I think it isn't the way to do this.
Does anyone have any suggestion how to manage this type of signal?
Best regards.
Oscar Gomez Fuente.
On 9 May 2016 at 22:46, Peter Seiderer <ps.report@gmx.net> wrote:
> Hello Oscar,
>
> On Mon, 9 May 2016 11:57:02 +0200, Oscar Gomez Fuente <
> oscargomezf at gmail.com> wrote:
>
> > Hi everyone,
> >
> > The dtb overlay loaded fine. I've checked this with the command: vcdbg
> log
> > msg
> > ...
> > 001402.187: Loading 'bcm2710-rpi-3-b.dtb' from SD card
> > 001468.661: dtparam: uart0_clkrate=48000000
> > 001488.609: Loaded overlay 'pi3-disable-bt'
> > 001523.385: Loaded overlay 'tca6424a'
> > ...
> >
> > Now I can see the device: /sys/call/gpiochip488
> >
> > I can access to the 24 pins of my TCA6424A IC [488 to 511]
> >
> > # echo 488 > /sys/class/gpio/export
> > # echo "out" > /sys/class/gpio/gpio488/direction
> > # echo 1 > /sys/class/gpio/gpio488/value
> >
> > But I couldn't see the interrupt in /proc/interrupts:
> >
> > # cat /proc/interrupts
> > CPU0 CPU1 CPU2 CPU3
> > 16: 0 0 0 0 ARMCTRL 16 Edge
> > bcm2708_fb dma
> > 20: 0 0 0 0 ARMCTRL 20 Edge
> > DMA IRQ
> > 21: 0 0 0 0 ARMCTRL 21 Edge
> > DMA IRQ
> > 24: 0 0 0 0 ARMCTRL 24 Edge
> > DMA IRQ
> > 32: 424138 0 0 0 ARMCTRL 32 Edge
> > dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
> > 49: 0 0 0 0 ARMCTRL 49 Edge
> > 3f200000.gpio:bank0
> > 50: 0 0 0 0 ARMCTRL 50 Edge
> > 3f200000.gpio:bank1
> > 65: 14 0 0 0 ARMCTRL 65 Edge
> > 3f00b880.mailbox
> > 66: 2 0 0 0 ARMCTRL 66 Edge
> > VCHIQ doorbell
> > 75: 1 0 0 0 ARMCTRL 75 Edge
> > 77: 554 0 0 0 ARMCTRL 77 Edge
> > DMA IRQ
> > 79: 6148 0 0 0 ARMCTRL 79 Edge
> > 3f804000.i2c
> > 80: 0 0 0 0 ARMCTRL 80 Edge
> > 3f204000.spi
> > 82: 136 0 0 0 ARMCTRL 82 Edge
> > mmc0
> > 83: 10895 0 0 0 ARMCTRL 83 Edge
> > uart-pl011
> > 84: 9475 0 0 0 ARMCTRL 84 Edge
> > mmc1
> > 96: 0 0 0 0 ARMCTRL 96 Edge
> > arch_timer
> > 97: 10595 8874 3133 458 ARMCTRL 97 Edge
> > arch_timer
> > ...
> >
> > According to my .dts file, I've configured the pin GPIO04 as an input
> > [interrupt]. I think I had to see an interrupt related to tca6424a,
> didn't
> > I? but it didn't appear. I've read the kernel log and I've seen this
> > suspicious message:
> >
> > # dmesg
> > ..
> > [ 3.633230] pca953x 1-0022: interrupt support not compiled in
> > ..
> >
> > So I was surfing on the internet and It seems to be you have to select in
> > the kernel the option:
> >
> > Device Drivers > GPIO Support > I2C GPIO expanders > [*] GPIO_PCA953X_IRQ
> >
> > But If you want to select this option you can't select the driver:
> > PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports like a module. (I
> > don't have any idea why?)
> >
> > Eventually, everything works fine.
> >
> >
> > So this is my final tca6424a-overlay.dts [i2c1 and INT pin connected to
> > GPI04] working fine on my raspberry pi 3B.
> >
> > ---
> > // Definitions for TCA6424A IO Expander from Texas Instruments
> > /dts-v1/;
> > /plugin/;
> > / {
> > compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
> >
> > fragment at 0 {
> > target = <&i2c1>;
> > __overlay__ {
> > status = "okay";
> > };
> > };
> >
> > fragment at 1 {
> > target = <&gpio>;
> > __overlay__ {
> > tca6424_pins: tca6424_pins {
> > brcm,pins = <4>;
> > brcm,function = <0>;
> > };
> > };
> > };
> >
> > fragment at 2 {
> > target = <&i2c1>;
> > __overlay__ {
> > #address-cells = <1>;
> > #size-cells = <0>;
> > tca6424 at 22 {
> > compatible = "ti,tca6424";
> > reg = <0x22>;
> > pinctrl-names = "default";
> > pinctrl-0 = <&tca6424_pins>;
> > interrupt-parent = <&gpio>;
> > interrupts = <4 2>;
> > };
> >
> > };
> > };
> > };
> > ---
> >
> > I would like to place this overlay dts file in
> > https://github.com/raspberrypi/linux.git/arch/arm/boot/dts/overlays
> >
> > Does anyone know how to apply for uploading this overlay dts file, to the
> > person in charge of https://github.com/raspberrypi/linux?
> >
> >
>
> Try to announce it somewhere on RPi forum [1] or create a git(hub) pull
> request against https://github.com/raspberrypi/linux?
>
> But I think chances are higher for a widely available ready to use
> devices/add-on-boards than for individual solutions...
>
> Regards,
> Peter
>
> [1] https://www.raspberrypi.org/forum
>
> > Best regards.
> >
> > On 9 May 2016 at 08:37, Oscar Gomez Fuente <oscargomezf@gmail.com>
> wrote:
> >
> > > Hi,
> > >
> > >
> > > I've tried what told me Peter Seiderer, and it compiled fine: "using
> > > interrupts = <23 2>;". Now I'm going to check if the .dtb file works
> fine.
> > >
> > > Thank you very much.
> > >
> > > Best regards.
> > >
> > > Oscar Gomez Fuente
> > >
> > > On 6 May 2016 at 23:20, Nicholas Walton <nicholas.walton@gmail.com>
> wrote:
> > >
> > >> Plugin overlays are not part of mainline dtc. Try
> > >> https://git.kernel.org/cgit/utils/dtc/dtc.git and the instructions at
> > >>
> https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
> > >> .
> > >>
> > >> On Fri, May 6, 2016 at 5:17 AM, Oscar Gomez Fuente <
> oscargomezf at gmail.com
> > >> > wrote:
> > >>
> > >>> Hi,
> > >>>
> > >>> I'm working with the latest stable release: 2016.02 and with the
> > >>> raspberry pi 3B.
> > >>>
> > >>> I'm trying to compile my own .dtb overlay, because I need to add the
> IO
> > >>> Expander i2c TCA6424A to my HW. And I would like to know how to do
> this
> > >>> using overlays and device tree.
> > >>>
> > >>> But I've got this error when I tried to compile de .dts file:
> > >>>
> > >>> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
> > >>> Error: tca6424a-overlay.dts:3.2-8 syntax error
> > >>> FATAL ERROR: Unable to parse input tree
> > >>> # dtc -v
> > >>> Version: DTC 1.4.1-g8ead5b66
> > >>> #
> > >>>
> > >>> This is the .dts file:
> > >>> ----------
> > >>> // Definitions for TCA6424A IO Extender from Texas Instruments
> > >>> /dts-v1/;
> > >>> /plugin/;
> > >>> / {
> > >>> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
> > >>>
> > >>> fragment at 0 {
> > >>> target = <&i2c1>;
> > >>> __overlay__ {
> > >>> status = "okay";
> > >>> };
> > >>> };
> > >>>
> > >>> fragment at 1 {
> > >>> target = <&gpio>;
> > >>> __overlay__ {
> > >>> tca6424_pins: tca6424_pins {
> > >>> brcm,pins = <4>;
> > >>> brcm,function = <0>;
> > >>> };
> > >>> };
> > >>> };
> > >>>
> > >>> fragment at 2 {
> > >>> target = <&i2c1>;
> > >>> __overlay__ {
> > >>> #address-cells = <1>;
> > >>> #size-cells = <0>;
> > >>> tca6424 at 22 {
> > >>> compatible = "ti,tca6424";
> > >>> reg = <0x22>;
> > >>> pinctrl-names = "default";
> > >>> pinctrl-0 = <&tca6424_pins>;
> > >>> interrupt-parent = <&gpio4>;
> > >>> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
> > >>> };
> > >>>
> > >>> };
> > >>> };
> > >>> };
> > >>> -----------
> > >>>
> > >>> Anyone could help me how to do this?
> > >>>
> > >>> Best regards.
> > >>>
> > >>> Oscar Gomez Fuente.
> > >>>
> > >>> _______________________________________________
> > >>> buildroot mailing list
> > >>> buildroot at busybox.net
> > >>> http://lists.busybox.net/mailman/listinfo/buildroot
> > >>>
> > >>
> > >>
> > >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160510/56e7d1a5/attachment.html>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [dtc] Compiling a .dts overlay
2016-05-10 7:48 ` Oscar Gomez Fuente
@ 2016-05-10 11:09 ` Oscar Gomez Fuente
0 siblings, 0 replies; 9+ messages in thread
From: Oscar Gomez Fuente @ 2016-05-10 11:09 UTC (permalink / raw)
To: buildroot
Hi everyone,
I was reviewing the code of the patch: http://www.spinics.net/lists/
arm-kernel/msg351168.html
And the problem is I have to configure in the overlay file:
tca6424a-overlay.dtb the reset gpio -> GPIO_ACTIVE_HIGH
instead of GPIO_ACTIVE_LOW
...
tca6424 at 22 {
compatible = "ti,tca6424";
reg = <0x22>;
pinctrl-names = "default";
pinctrl-0 = <&tca6424a_pins>;
interrupt-parent = <&gpio>;
interrupts = <4 2>; //IRQ_TYPE_EDGE_FALLING
reset-gpios = <&gpio 17 0>; //GPIO_ACTIVE_HIGH
};
};
};
};
Because when the gpio is configured as an output by default is set to low,
and then is set to high
+ gpiod_direction_output(reset, 0);
+ udelay(100);
+ gpiod_set_value(reset, 1);
+ udelay(100);
So I get in the reset line:
1111111111111____0000000(100usec)____111111111111111111111111
So my problem is solved.
Best regards.
Oscar Gomez Fuente.
On 10 May 2016 at 09:48, Oscar Gomez Fuente <oscargomezf@gmail.com> wrote:
> Ok Peter,
>
> Thank you very much.
>
> I've got another concern. I've realized that sometimes the i2c device
> tca6424a doesn't init correctly and I see these messages in the kernel log :
>
> [ 3.638369] pca953x 1-0022: failed reading register
> [ 3.644342] pca953x: probe of 1-0022 failed with error -
>
> I think I can solve this If I use correctly the reset signal of the
> tca6424a. Right now I don't use this signal, It's connected to a pull-up
> resistor. Is there anyway to manage this type of reset signals in i2c
> devices? I was surfing on the internet and I read this patch for the
> gpio-pca953x driver.
>
> http://www.spinics.net/lists/arm-kernel/msg351168.html
>
> I've applied this patch and know I can see the resetsignal falling and
> rising, but now the i2c device always fails in the init. But this patch
> isn't committed on linux kernel, so I think it isn't the way to do this.
>
> Does anyone have any suggestion how to manage this type of signal?
>
>
> Best regards.
>
> Oscar Gomez Fuente.
>
>
> On 9 May 2016 at 22:46, Peter Seiderer <ps.report@gmx.net> wrote:
>
>> Hello Oscar,
>>
>> On Mon, 9 May 2016 11:57:02 +0200, Oscar Gomez Fuente <
>> oscargomezf at gmail.com> wrote:
>>
>> > Hi everyone,
>> >
>> > The dtb overlay loaded fine. I've checked this with the command: vcdbg
>> log
>> > msg
>> > ...
>> > 001402.187: Loading 'bcm2710-rpi-3-b.dtb' from SD card
>> > 001468.661: dtparam: uart0_clkrate=48000000
>> > 001488.609: Loaded overlay 'pi3-disable-bt'
>> > 001523.385: Loaded overlay 'tca6424a'
>> > ...
>> >
>> > Now I can see the device: /sys/call/gpiochip488
>> >
>> > I can access to the 24 pins of my TCA6424A IC [488 to 511]
>> >
>> > # echo 488 > /sys/class/gpio/export
>> > # echo "out" > /sys/class/gpio/gpio488/direction
>> > # echo 1 > /sys/class/gpio/gpio488/value
>> >
>> > But I couldn't see the interrupt in /proc/interrupts:
>> >
>> > # cat /proc/interrupts
>> > CPU0 CPU1 CPU2 CPU3
>> > 16: 0 0 0 0 ARMCTRL 16 Edge
>> > bcm2708_fb dma
>> > 20: 0 0 0 0 ARMCTRL 20 Edge
>> > DMA IRQ
>> > 21: 0 0 0 0 ARMCTRL 21 Edge
>> > DMA IRQ
>> > 24: 0 0 0 0 ARMCTRL 24 Edge
>> > DMA IRQ
>> > 32: 424138 0 0 0 ARMCTRL 32 Edge
>> > dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
>> > 49: 0 0 0 0 ARMCTRL 49 Edge
>> > 3f200000.gpio:bank0
>> > 50: 0 0 0 0 ARMCTRL 50 Edge
>> > 3f200000.gpio:bank1
>> > 65: 14 0 0 0 ARMCTRL 65 Edge
>> > 3f00b880.mailbox
>> > 66: 2 0 0 0 ARMCTRL 66 Edge
>> > VCHIQ doorbell
>> > 75: 1 0 0 0 ARMCTRL 75 Edge
>> > 77: 554 0 0 0 ARMCTRL 77 Edge
>> > DMA IRQ
>> > 79: 6148 0 0 0 ARMCTRL 79 Edge
>> > 3f804000.i2c
>> > 80: 0 0 0 0 ARMCTRL 80 Edge
>> > 3f204000.spi
>> > 82: 136 0 0 0 ARMCTRL 82 Edge
>> > mmc0
>> > 83: 10895 0 0 0 ARMCTRL 83 Edge
>> > uart-pl011
>> > 84: 9475 0 0 0 ARMCTRL 84 Edge
>> > mmc1
>> > 96: 0 0 0 0 ARMCTRL 96 Edge
>> > arch_timer
>> > 97: 10595 8874 3133 458 ARMCTRL 97 Edge
>> > arch_timer
>> > ...
>> >
>> > According to my .dts file, I've configured the pin GPIO04 as an input
>> > [interrupt]. I think I had to see an interrupt related to tca6424a,
>> didn't
>> > I? but it didn't appear. I've read the kernel log and I've seen this
>> > suspicious message:
>> >
>> > # dmesg
>> > ..
>> > [ 3.633230] pca953x 1-0022: interrupt support not compiled in
>> > ..
>> >
>> > So I was surfing on the internet and It seems to be you have to select
>> in
>> > the kernel the option:
>> >
>> > Device Drivers > GPIO Support > I2C GPIO expanders > [*]
>> GPIO_PCA953X_IRQ
>> >
>> > But If you want to select this option you can't select the driver:
>> > PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports like a module. (I
>> > don't have any idea why?)
>> >
>> > Eventually, everything works fine.
>> >
>> >
>> > So this is my final tca6424a-overlay.dts [i2c1 and INT pin connected to
>> > GPI04] working fine on my raspberry pi 3B.
>> >
>> > ---
>> > // Definitions for TCA6424A IO Expander from Texas Instruments
>> > /dts-v1/;
>> > /plugin/;
>> > / {
>> > compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
>> >
>> > fragment at 0 {
>> > target = <&i2c1>;
>> > __overlay__ {
>> > status = "okay";
>> > };
>> > };
>> >
>> > fragment at 1 {
>> > target = <&gpio>;
>> > __overlay__ {
>> > tca6424_pins: tca6424_pins {
>> > brcm,pins = <4>;
>> > brcm,function = <0>;
>> > };
>> > };
>> > };
>> >
>> > fragment at 2 {
>> > target = <&i2c1>;
>> > __overlay__ {
>> > #address-cells = <1>;
>> > #size-cells = <0>;
>> > tca6424 at 22 {
>> > compatible = "ti,tca6424";
>> > reg = <0x22>;
>> > pinctrl-names = "default";
>> > pinctrl-0 = <&tca6424_pins>;
>> > interrupt-parent = <&gpio>;
>> > interrupts = <4 2>;
>> > };
>> >
>> > };
>> > };
>> > };
>> > ---
>> >
>> > I would like to place this overlay dts file in
>> > https://github.com/raspberrypi/linux.git/arch/arm/boot/dts/overlays
>> >
>> > Does anyone know how to apply for uploading this overlay dts file, to
>> the
>> > person in charge of https://github.com/raspberrypi/linux?
>> >
>> >
>>
>> Try to announce it somewhere on RPi forum [1] or create a git(hub) pull
>> request against https://github.com/raspberrypi/linux?
>>
>> But I think chances are higher for a widely available ready to use
>> devices/add-on-boards than for individual solutions...
>>
>> Regards,
>> Peter
>>
>> [1] https://www.raspberrypi.org/forum
>>
>> > Best regards.
>> >
>> > On 9 May 2016 at 08:37, Oscar Gomez Fuente <oscargomezf@gmail.com>
>> wrote:
>> >
>> > > Hi,
>> > >
>> > >
>> > > I've tried what told me Peter Seiderer, and it compiled fine: "using
>> > > interrupts = <23 2>;". Now I'm going to check if the .dtb file works
>> fine.
>> > >
>> > > Thank you very much.
>> > >
>> > > Best regards.
>> > >
>> > > Oscar Gomez Fuente
>> > >
>> > > On 6 May 2016 at 23:20, Nicholas Walton <nicholas.walton@gmail.com>
>> wrote:
>> > >
>> > >> Plugin overlays are not part of mainline dtc. Try
>> > >> https://git.kernel.org/cgit/utils/dtc/dtc.git and the instructions
>> at
>> > >>
>> https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
>> > >> .
>> > >>
>> > >> On Fri, May 6, 2016 at 5:17 AM, Oscar Gomez Fuente <
>> oscargomezf at gmail.com
>> > >> > wrote:
>> > >>
>> > >>> Hi,
>> > >>>
>> > >>> I'm working with the latest stable release: 2016.02 and with the
>> > >>> raspberry pi 3B.
>> > >>>
>> > >>> I'm trying to compile my own .dtb overlay, because I need to add
>> the IO
>> > >>> Expander i2c TCA6424A to my HW. And I would like to know how to do
>> this
>> > >>> using overlays and device tree.
>> > >>>
>> > >>> But I've got this error when I tried to compile de .dts file:
>> > >>>
>> > >>> # dtc -I dts -O dtb -o tca6424a-overlay.dtb tca6424a-overlay.dts
>> > >>> Error: tca6424a-overlay.dts:3.2-8 syntax error
>> > >>> FATAL ERROR: Unable to parse input tree
>> > >>> # dtc -v
>> > >>> Version: DTC 1.4.1-g8ead5b66
>> > >>> #
>> > >>>
>> > >>> This is the .dts file:
>> > >>> ----------
>> > >>> // Definitions for TCA6424A IO Extender from Texas Instruments
>> > >>> /dts-v1/;
>> > >>> /plugin/;
>> > >>> / {
>> > >>> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
>> > >>>
>> > >>> fragment at 0 {
>> > >>> target = <&i2c1>;
>> > >>> __overlay__ {
>> > >>> status = "okay";
>> > >>> };
>> > >>> };
>> > >>>
>> > >>> fragment at 1 {
>> > >>> target = <&gpio>;
>> > >>> __overlay__ {
>> > >>> tca6424_pins: tca6424_pins {
>> > >>> brcm,pins = <4>;
>> > >>> brcm,function = <0>;
>> > >>> };
>> > >>> };
>> > >>> };
>> > >>>
>> > >>> fragment at 2 {
>> > >>> target = <&i2c1>;
>> > >>> __overlay__ {
>> > >>> #address-cells = <1>;
>> > >>> #size-cells = <0>;
>> > >>> tca6424 at 22 {
>> > >>> compatible = "ti,tca6424";
>> > >>> reg = <0x22>;
>> > >>> pinctrl-names = "default";
>> > >>> pinctrl-0 = <&tca6424_pins>;
>> > >>> interrupt-parent = <&gpio4>;
>> > >>> interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
>> > >>> };
>> > >>>
>> > >>> };
>> > >>> };
>> > >>> };
>> > >>> -----------
>> > >>>
>> > >>> Anyone could help me how to do this?
>> > >>>
>> > >>> Best regards.
>> > >>>
>> > >>> Oscar Gomez Fuente.
>> > >>>
>> > >>> _______________________________________________
>> > >>> buildroot mailing list
>> > >>> buildroot at busybox.net
>> > >>> http://lists.busybox.net/mailman/listinfo/buildroot
>> > >>>
>> > >>
>> > >>
>> > >
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160510/546d303d/attachment.html>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-05-10 11:09 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-06 12:17 [Buildroot] [dtc] Compiling a .dts overlay Oscar Gomez Fuente
2016-05-06 21:08 ` Peter Seiderer
2016-05-06 21:20 ` Nicholas Walton
2016-05-09 6:37 ` Oscar Gomez Fuente
2016-05-09 9:57 ` Oscar Gomez Fuente
2016-05-09 20:46 ` Peter Seiderer
2016-05-10 7:48 ` Oscar Gomez Fuente
2016-05-10 11:09 ` Oscar Gomez Fuente
2016-05-09 20:36 ` Peter Seiderer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox