Pincontrol GPIO range makeover

Registered by Linus Walleij

Refactor the pin control to GPIO mapping to use local GPIO controller number instead of mapping into the global GPIO space.

We have found that doing device trees is getting complicated if we register GPIO to pin ranges using the global GPIO numberspace references.

Ranges can be registered from pin controllers or GPIO controllers alike.

Blueprint information

Status:
Complete
Approver:
Deepak Saxena
Priority:
Medium
Drafter:
Linus Walleij
Direction:
Approved
Assignee:
Linus Walleij
Definition:
Approved
Series goal:
Accepted for kernel-merge-window
Implementation:
Implemented
Milestone target:
milestone icon 3.8
Started by
Linus Walleij
Completed by
Jakub Pavelek

Related branches

Sprints

Whiteboard

Meta:
Roadmap id: KWG-MAINTENANCE
Headline: TODO
Acceptance: TODO

Shiraz Hashim from ST Microelectronics contributed a gpiolib range patch, this has now been merged upstream in the pinctrl subsystem:
http://marc.info/?l=linux-arm-kernel&m=135133157332365&w=2

(?)

Work Items

Work items for 12.11:
Prepare a patch to register gpio ranges from the gpiolib: DONE
Merge the patch for gpio ranges from gpiolib to pinctrl tree: DONE
Merge the SPEAr plgpio driver as a DT example of ranges: DONE
Fix up a number of problems causing regressions on x86 (Nov 16): DONE
Fix the U300 gpiolib portions to register ranges as a non-DT example (Nov 20): DONE
Augment ranges to accept offsets into GPIOchip pin ranges: (Nov 20): DONE
Do other refactorings due to problems found during U300 deployment (Nov 21): DONE

Work items for 12.12:
Patches for the above merged into Torvald's mainline tree (Dec 12): DONE

Work items for backlog:
Review the SPEAr enablement patches: TODO
Convert the Nomadik pinctrl driver to register ranges from the GPIOchip side: TODO
Convert all other drivers to make range registration from the gpiolib side: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.