Skip to contentSkip to conversation

dts: question about how to configure PIO used as i2c irq

DISCUSSION Bo Shen 4 participants 4 messages Oct 15, 2012 – Oct 19, 2012

lore
Share & tools
lore

Bo Shen

author
#0 lore raw

Hi All,
When moving atmel qt1070 linux driver with DT support. The atmel
qt1070 is an I2C device. I meet the following questions.

   The qt1070 DT node
   --<--------------
   qt1070: keyboard@1b {
         compatible = "atmel,qt1070";
         reg = <0x1b>;
         interrupt-parent = <&pioA>;
         interrupts = <7 0x0>;
   };
   -->--------------

DT will parse this node and map irq, the i2c_client->irq. This can be
used directly in atmel qt1070 driver. However, the PIO which used as irq need configure as a PIO input. Now, we can not use irq_to_gpio() function to convert irq to gpio. So, if we can not configure this gpio.

If we configure the pio in board-dt.c, I think this is not a good
place. For example, if the kernel image support multiplatform, while on these platform, using different pio for qt1070, so this will cause only one platform can use qt1070.

So, for this question, how should I solve it? Would you please give
me some advice?

#1 lore raw
Quoted 20 lines · Bo Shen

Hi All,
When moving atmel qt1070 linux driver with DT support. The atmel
qt1070 is an I2C device. I meet the following questions.

  The qt1070 DT node
  --<--------------
  qt1070: keyboard at 1b {
        compatible = "atmel,qt1070";
        reg = <0x1b>;
        interrupt-parent = <&pioA>;
        interrupts = <7 0x0>;
  };
  -->--------------

DT will parse this node and map irq, the i2c_client->irq. This can
be used directly in atmel qt1070 driver. However, the PIO which used as irq need configure as a PIO input. Now, we can not use irq_to_gpio() function to convert irq to gpio. So, if we can not configure this gpio.

Quoted 7 lines

If we configure the pio in board-dt.c, I think this is not a good
place. For example, if the kernel image support multiplatform, while on these platform, using different pio for qt1070, so this will cause only one platform can use qt1070.

So, for this question, how should I solve it? Would you please
give me some advice?

I already reply you in private 4 times

you have only 2 choice pass the gpio and manage in c
or configure the gpio as input in the xlate or map of the gpio drivers and the mux via pinctrl

Best Regards,
J.

#2 lore raw

On 10/15/2012 07:57 AM, Jean-Christophe PLAGNIOL-VILLARD :

Quoted 21 lines · Bo Shen
Quoted 20 lines

Hi All,
When moving atmel qt1070 linux driver with DT support. The atmel
qt1070 is an I2C device. I meet the following questions.

  The qt1070 DT node
  --<--------------
  qt1070: keyboard at 1b {
        compatible = "atmel,qt1070";
        reg = <0x1b>;
        interrupt-parent = <&pioA>;
        interrupts = <7 0x0>;
  };
  -->--------------

DT will parse this node and map irq, the i2c_client->irq. This can
be used directly in atmel qt1070 driver. However, the PIO which used as irq need configure as a PIO input. Now, we can not use irq_to_gpio() function to convert irq to gpio. So, if we can not configure this gpio.

Quoted 8 lines
Quoted 7 lines

If we configure the pio in board-dt.c, I think this is not a good
place. For example, if the kernel image support multiplatform, while on these platform, using different pio for qt1070, so this will cause only one platform can use qt1070.

So, for this question, how should I solve it? Would you please
give me some advice?

I already reply you in private 4 times

Yes, but maybe it is because it was not well explained, or not developed to the proper extend... So, please do not make these remarks: if the conversation was private, it is not necessary to recall that here. Maybe Voice is looking for help from someone else?

Quoted 3 lines

you have only 2 choice pass the gpio and manage in c
or configure the gpio as input in the xlate or map of the gpio drivers and the mux via pinctrl

Can you please develop a bit more: which xlate? How to tell the gpio driver about the map? Can you provide an example?

Bye,

Signature · 1 line
Nicolas Ferre
#3 lore raw

Hi J,

Quoted 36 lines · Nicolas Ferre

On 10/15/2012 07:57 AM, Jean-Christophe PLAGNIOL-VILLARD :

Quoted 21 lines · Bo Shen
Quoted 20 lines

Hi All,
When moving atmel qt1070 linux driver with DT support. The atmel
qt1070 is an I2C device. I meet the following questions.

   The qt1070 DT node
   --<--------------
   qt1070: keyboard at 1b {
         compatible = "atmel,qt1070";
         reg = <0x1b>;
         interrupt-parent = <&pioA>;
         interrupts = <7 0x0>;
   };
   -->--------------

DT will parse this node and map irq, the i2c_client->irq. This can
be used directly in atmel qt1070 driver. However, the PIO which used as irq need configure as a PIO input. Now, we can not use irq_to_gpio() function to convert irq to gpio. So, if we can not configure this gpio.

Quoted 8 lines
Quoted 7 lines

If we configure the pio in board-dt.c, I think this is not a good
place. For example, if the kernel image support multiplatform, while on these platform, using different pio for qt1070, so this will cause only one platform can use qt1070.

So, for this question, how should I solve it? Would you please
give me some advice?

I already reply you in private 4 times

Yes, but maybe it is because it was not well explained, or not developed to the proper extend... So, please do not make these remarks: if the conversation was private, it is not necessary to recall that here. Maybe Voice is looking for help from someone else?

Quoted 6 lines
Quoted 3 lines

you have only 2 choice pass the gpio and manage in c
or configure the gpio as input in the xlate or map of the gpio drivers and the mux via pinctrl

Can you please develop a bit more: which xlate? How to tell the gpio driver about the map? Can you provide an example?

Any information for this? Search with google, I don't find any useful information.

Quoted 2 lines

Bye,