Linux GPIO subsystem development
 help / color / mirror / Atom feed
* gpio-pxa driver and pincontrol
@ 2015-11-11 22:25 Robert Jarzmik
  0 siblings, 0 replies; only message in thread
From: Robert Jarzmik @ 2015-11-11 22:25 UTC (permalink / raw)
  To: linux-gpio; +Cc: Haojian Zhuang, Daniel Mack

Hi,

I've written a pinconf + pinmux driver for the pxa2xx architectures. Before
posting it I wanted to see the integration of the gpio driver and the pincontrol
one.

My trouble is that the gpio-pxa.c gpio driver adds one gpiochip for each bank,
ie. for pxa27x we have the output in [1], ie 4 gpiochips of 32 gpios each.

But the trick is that a single devicetree node triggers the creation of the 4
gpio chips :
		gpio: gpio@40e00000 {
			compatible = "mrvl,pxa-gpio";
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			reg = <0x40e00000 0x10000>;
			gpio-controller;
			#gpio-cells = <0x2>;
			interrupts = <10>;
			interrupt-names = "gpio_mux";
			interrupt-controller;
			#interrupt-cells = <0x2>;
			ranges;

			gcb0: gpio@40e00000 {
				reg = <0x40e00000 0x4>;
			};

			gcb1: gpio@40e00004 {
				reg = <0x40e00004 0x4>;
			};

			gcb2: gpio@40e00008 {
				reg = <0x40e00008 0x4>;
			};
			gcb3: gpio@40e0000c {
				reg = <0x40e0000c 0x4>;
			};
		};

Now if I put a line like this (knowing the pinctrl has 128 pins) :
			gpio-ranges = <&pinctrl 0 0 128>;

It will add :
 - map pins 0..127 to gpio 0..31 on gpiochip0
 - map pins 0..127 to gpio 32..63 on gpiochip1
 - etc ...

Now the question, is there a way to fix this without changing the gpio-pxa
driver to add only 1 gpiochip ?

Cheers.

-- 
Robert

[1] $ cat /sys/kernel/debug/gpio
GPIOs 0-31, gpio-0:
 gpio-0   (GPIO Key Power      ) in  lo    
 gpio-10  (?                   ) out hi    
 gpio-12  (HP jack detect      ) in  lo    
 gpio-22  (?                   ) out hi    
 gpio-23  (sysfs               ) out hi    
 gpio-24  (sysfs               ) out lo    
 gpio-26  (sysfs               ) out lo    
 gpio-27  (sysfs               ) out lo    

GPIOs 32-63, gpio-1:
 gpio-56  (mt9m111 #OE         ) in  hi    

GPIOs 64-95, gpio-2:
 gpio-77  (sysfs               ) out hi    
 gpio-82  (?                   ) out hi    
 gpio-83  (sysfs               ) out hi    
 gpio-86  (sysfs               ) out hi    
 gpio-88  (sysfs               ) out hi    
 gpio-90  (sysfs               ) out hi    
 gpio-93  (Volume Up Key       ) in  lo    
 gpio-94  (Volume Down Key     ) in  lo    

GPIOs 96-120, gpio-3:
 gpio-97  (?                   ) out lo    
 gpio-98  (?                   ) out hi    
 gpio-106 (sysfs               ) out lo    
 gpio-107 (sysfs               ) out lo    
 gpio-114 (sysfs               ) out hi    
 gpio-115 (?                   ) out hi    

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-11-11 22:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-11 22:25 gpio-pxa driver and pincontrol Robert Jarzmik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox