mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
This is the bulk of pin control changes for the v4.3 development
cycle
Core changes:
- It is possible configure groups in debugfs.
- Consolidation of chained IRQ handler install/remove replacing
all call sites where irq_set_handler_data() and
irq_set_chained_handler() were done in succession with a
combined call to irq_set_chained_handler_and_data(). This
series was created by Thomas Gleixner after the problem was
observed by Russell King.
- Tglx also made another series of patches switching
__irq_set_handler_locked() for irq_set_handler_locked() which
is way cleaner.
- Tglx also wrote a good bunch of patches to make use of
irq_desc_get_xxx() accessors and avoid looking up irq_descs
from IRQ numbers. The goal is to get rid of the irq number
from the handlers in the IRQ flow which is nice.
Driver feature enhancements:
- Power management support for the SiRF SoC Atlas 7.
- Power down support for the Qualcomm driver.
- Intel Cherryview and Baytrail: switch drivers to use raw
spinlocks in IRQ handlers to play nice with the realtime
patch set.
- Rework and new modes handling for Qualcomm SPMI-MPP.
- Pinconf power source config for SH PFC.
New drivers and subdrivers:
- A new driver for Conexant Digicolor CX92755.
- A new driver for UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8,
PH1-Pro5, ProXtream2 and PH1-LD6b SoC pin control support.
- Reverse-egineered the S/PDIF settings for the Allwinner
sun4i driver.
- Support for Qualcomm Technologies QDF2xxx ARM64 SoCs
- A new Freescale i.mx6ul subdriver.
Cleanup:
- Remove platform data support in a number of SH PFC
subdrivers.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJV6YzgAAoJEEEQszewGV1zbIAQAILzMrzWkxsy7bhvL4QdP5/K
OG3EodE//AE0G5gKugUDjg5t2lftdiIJVhjDA17ruETCSciuAxZSLThlMy1sQgyN
LPxy9LlCrmsqrYt9+fmJ9js8j52RBJikKK0RUyUVz0VojTBplRpElyEx/KxwM5sG
Hy3+hU61uKO0j9AyIcsa/RKP6SGavwZdHytJBsHNw+pODyE3UZCf52ChAVBsTPfE
MV70g3Qzfqur7ZFqcNgtUV7qCyYvlF12ooiihrGFDOsTL3sSq4/OXB7z1z1mGGHL
Dgq8pXJ6EIZlCbk+jFMTzPRSzy46dxNai0eErjTUVEldH1tOphzGMvKmOdm/nczH
4M/UOWOKBE1aOYZNPtnUgDy2MRt5K9VJStCNSHEQCB2lGdojNAtmj2cmr8flBN5m
gM9FDpIS1/C+OYYTkOY9ftPsH5zOk7sCLEHSH5USYRGJHihzLnkV90eiN6a7vlF1
hyTGrIyl6e//E5JBgamjnR3+fYuxQGr6WeAZEP/gXZRm7BCKCaPwCarq+kPZVG4A
nolZ/QQN6XYPSlveSPU97VYvLYEUvXaKN0Hf2DTbwkqvNFp7JORD65QLESPtQoIp
x95iHMdB/1+0OfgOqMmlOtKpOKREeQ/R+KWACxsrr5Rfv3/7CP4BMRGypIZ/iPmz
HWoyDI4lIebBR+JnjMjK
=4QFX
-----END PGP SIGNATURE-----
Merge tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij:
"This is the bulk of pin control changes for the v4.3 development
cycle.
Like with GPIO it's a lot of stuff. If my subsystems are any sign of
the overall tempo of the kernel v4.3 will be a gigantic diff.
[ It looks like 4.3 is calmer than 4.2 in most other subsystems, but
we'll see - Linus ]
Core changes:
- It is possible configure groups in debugfs.
- Consolidation of chained IRQ handler install/remove replacing all
call sites where irq_set_handler_data() and
irq_set_chained_handler() were done in succession with a combined
call to irq_set_chained_handler_and_data(). This series was
created by Thomas Gleixner after the problem was observed by
Russell King.
- Tglx also made another series of patches switching
__irq_set_handler_locked() for irq_set_handler_locked() which is
way cleaner.
- Tglx also wrote a good bunch of patches to make use of
irq_desc_get_xxx() accessors and avoid looking up irq_descs from
IRQ numbers. The goal is to get rid of the irq number from the
handlers in the IRQ flow which is nice.
Driver feature enhancements:
- Power management support for the SiRF SoC Atlas 7.
- Power down support for the Qualcomm driver.
- Intel Cherryview and Baytrail: switch drivers to use raw spinlocks
in IRQ handlers to play nice with the realtime patch set.
- Rework and new modes handling for Qualcomm SPMI-MPP.
- Pinconf power source config for SH PFC.
New drivers and subdrivers:
- A new driver for Conexant Digicolor CX92755.
- A new driver for UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8, PH1-Pro5,
ProXtream2 and PH1-LD6b SoC pin control support.
- Reverse-egineered the S/PDIF settings for the Allwinner sun4i
driver.
- Support for Qualcomm Technologies QDF2xxx ARM64 SoCs
- A new Freescale i.mx6ul subdriver.
Cleanup:
- Remove platform data support in a number of SH PFC subdrivers"
* tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (95 commits)
pinctrl: at91: fix null pointer dereference
pinctrl: mediatek: Implement wake handler and suspend resume
pinctrl: mediatek: Fix multiple registration issue.
pinctrl: sh-pfc: r8a7794: add USB pin groups
pinctrl: at91: Use generic irq_{request,release}_resources()
pinctrl: cherryview: Use raw_spinlock for locking
pinctrl: baytrail: Use raw_spinlock for locking
pinctrl: imx6ul: Remove .owner field
pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp
pinctrl: sh-pfc: Implement pinconf power-source param for voltage switching
clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks
pinctrl: sun4i: add spdif to pin description.
pinctrl: atlas7: clear ugly branch statements for pull and drivestrength
pinctrl: baytrail: Serialize all register access
pinctrl: baytrail: Drop FSF mailing address
pinctrl: rockchip: only enable gpio clock when it setting
pinctrl/mediatek: fix spelling mistake in dev_err error message
pinctrl: cherryview: Serialize all register access
pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting
pinctrl: nomadik: reflect current input value
...
This commit is contained in:
commit
88a99886c2
78 changed files with 12274 additions and 954 deletions
|
|
@ -48,7 +48,7 @@ Optional subnode-properties:
|
|||
|
||||
Examples:
|
||||
|
||||
pinctrl@01c20800 {
|
||||
pio: pinctrl@01c20800 {
|
||||
compatible = "allwinner,sun5i-a13-pinctrl";
|
||||
reg = <0x01c20800 0x400>;
|
||||
#address-cells = <1>;
|
||||
|
|
@ -68,3 +68,38 @@ pinctrl@01c20800 {
|
|||
allwinner,pull = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
GPIO and interrupt controller
|
||||
-----------------------------
|
||||
|
||||
This hardware also acts as a GPIO controller and an interrupt
|
||||
controller.
|
||||
|
||||
Consumers that would want to refer to one or the other (or both)
|
||||
should provide through the usual *-gpios and interrupts properties a
|
||||
cell with 3 arguments, first the number of the bank, then the pin
|
||||
inside that bank, and finally the flags for the GPIO/interrupts.
|
||||
|
||||
Example:
|
||||
|
||||
xio: gpio@38 {
|
||||
compatible = "nxp,pcf8574a";
|
||||
reg = <0x38>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <6 0 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
reg_usb1_vbus: usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
Conexant Digicolor CX92755 General Purpose Pin Mapping
|
||||
|
||||
This document describes the device tree binding of the pin mapping hardware
|
||||
modules in the Conexant Digicolor CX92755 SoCs. The CX92755 in one of the
|
||||
Digicolor series of SoCs.
|
||||
|
||||
=== Pin Controller Node ===
|
||||
|
||||
Required Properties:
|
||||
|
||||
- compatible: Must be "cnxt,cx92755-pinctrl"
|
||||
- reg: Base address of the General Purpose Pin Mapping register block and the
|
||||
size of the block.
|
||||
- gpio-controller: Marks the device node as a GPIO controller.
|
||||
- #gpio-cells: Must be <2>. The first cell is the pin number and the
|
||||
second cell is used to specify flags. See include/dt-bindings/gpio/gpio.h
|
||||
for possible values.
|
||||
|
||||
For example, the following is the bare minimum node:
|
||||
|
||||
pinctrl: pinctrl@f0000e20 {
|
||||
compatible = "cnxt,cx92755-pinctrl";
|
||||
reg = <0xf0000e20 0x100>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
As a pin controller device, in addition to the required properties, this node
|
||||
should also contain the pin configuration nodes that client devices reference,
|
||||
if any.
|
||||
|
||||
For a general description of GPIO bindings, please refer to ../gpio/gpio.txt.
|
||||
|
||||
=== Pin Configuration Node ===
|
||||
|
||||
Each pin configuration node is a sub-node of the pin controller node and is a
|
||||
container of an arbitrary number of subnodes, called pin group nodes in this
|
||||
document.
|
||||
|
||||
Please refer to the pinctrl-bindings.txt in this directory for details of the
|
||||
common pinctrl bindings used by client devices, including the definition of a
|
||||
"pin configuration node".
|
||||
|
||||
=== Pin Group Node ===
|
||||
|
||||
A pin group node specifies the desired pin mux for an arbitrary number of
|
||||
pins. The name of the pin group node is optional and not used.
|
||||
|
||||
A pin group node only affects the properties specified in the node, and has no
|
||||
effect on any properties that are omitted.
|
||||
|
||||
The pin group node accepts a subset of the generic pin config properties. For
|
||||
details generic pin config properties, please refer to pinctrl-bindings.txt
|
||||
and <include/linux/pinctrl/pinconfig-generic.h>.
|
||||
|
||||
Required Pin Group Node Properties:
|
||||
|
||||
- pins: Multiple strings. Specifies the name(s) of one or more pins to be
|
||||
configured by this node. The format of a pin name string is "GP_xy", where x
|
||||
is an uppercase character from 'A' to 'R', and y is a digit from 0 to 7.
|
||||
- function: String. Specifies the pin mux selection. Values must be one of:
|
||||
"gpio", "client_a", "client_b", "client_c"
|
||||
|
||||
Example:
|
||||
pinctrl: pinctrl@f0000e20 {
|
||||
compatible = "cnxt,cx92755-pinctrl";
|
||||
reg = <0xf0000e20 0x100>;
|
||||
|
||||
uart0_default: uart0_active {
|
||||
data_signals {
|
||||
pins = "GP_O0", "GP_O1";
|
||||
function = "client_b";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uart0: uart@f0000740 {
|
||||
compatible = "cnxt,cx92755-usart";
|
||||
...
|
||||
pinctrl-0 = <&uart0_default>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
In the example above, a single pin group configuration node defines the
|
||||
"client select" for the Rx and Tx signals of uart0. The uart0 node references
|
||||
that pin configuration node using the &uart0_default phandle.
|
||||
|
|
@ -7,8 +7,13 @@ of PMIC's from Qualcomm.
|
|||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should contain one of:
|
||||
"qcom,pm8018-mpp",
|
||||
"qcom,pm8038-mpp",
|
||||
"qcom,pm8821-mpp",
|
||||
"qcom,pm8841-mpp",
|
||||
"qcom,pm8916-mpp",
|
||||
"qcom,pm8917-mpp",
|
||||
"qcom,pm8921-mpp",
|
||||
"qcom,pm8941-mpp",
|
||||
"qcom,pma8084-mpp",
|
||||
|
||||
|
|
@ -77,12 +82,9 @@ to specify in a pin configuration subnode:
|
|||
Value type: <string>
|
||||
Definition: Specify the alternative function to be configured for the
|
||||
specified pins. Valid values are:
|
||||
"normal",
|
||||
"paired",
|
||||
"dtest1",
|
||||
"dtest2",
|
||||
"dtest3",
|
||||
"dtest4"
|
||||
"digital",
|
||||
"analog",
|
||||
"sink"
|
||||
|
||||
- bias-disable:
|
||||
Usage: optional
|
||||
|
|
@ -127,12 +129,18 @@ to specify in a pin configuration subnode:
|
|||
Definition: Selects the power source for the specified pins. Valid power
|
||||
sources are defined in <dt-bindings/pinctrl/qcom,pmic-mpp.h>
|
||||
|
||||
- qcom,analog-mode:
|
||||
- qcom,analog-level:
|
||||
Usage: optional
|
||||
Value type: <none>
|
||||
Definition: Selects Analog mode of operation: combined with input-enable
|
||||
and/or output-high, output-low MPP could operate as
|
||||
Bidirectional Logic, Analog Input, Analog Output.
|
||||
Value type: <u32>
|
||||
Definition: Selects the source for analog output. Valued values are
|
||||
defined in <dt-binding/pinctrl/qcom,pmic-mpp.h>
|
||||
PMIC_MPP_AOUT_LVL_*
|
||||
|
||||
- qcom,dtest:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Selects which dtest rail to be routed in the various functions.
|
||||
Valid values are 1-4
|
||||
|
||||
- qcom,amux-route:
|
||||
Usage: optional
|
||||
|
|
@ -140,6 +148,10 @@ to specify in a pin configuration subnode:
|
|||
Definition: Selects the source for analog input. Valid values are
|
||||
defined in <dt-bindings/pinctrl/qcom,pmic-mpp.h>
|
||||
PMIC_MPP_AMUX_ROUTE_CH5, PMIC_MPP_AMUX_ROUTE_CH6...
|
||||
- qcom,paired:
|
||||
Usage: optional
|
||||
Value type: <none>
|
||||
Definition: Indicates that the pin should be operating in paired mode.
|
||||
|
||||
Example:
|
||||
|
||||
|
|
@ -156,7 +168,7 @@ Example:
|
|||
pm8841_default: default {
|
||||
gpio {
|
||||
pins = "mpp1", "mpp2", "mpp3", "mpp4";
|
||||
function = "normal";
|
||||
function = "digital";
|
||||
input-enable;
|
||||
power-source = <PM8841_MPP_S3>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -58,12 +58,12 @@ are parsed through phandles and processed purely based on their content.
|
|||
|
||||
Pin Configuration Node Properties:
|
||||
|
||||
- renesas,pins : An array of strings, each string containing the name of a pin.
|
||||
- renesas,groups : An array of strings, each string containing the name of a pin
|
||||
- pins : An array of strings, each string containing the name of a pin.
|
||||
- groups : An array of strings, each string containing the name of a pin
|
||||
group.
|
||||
|
||||
- renesas,function: A string containing the name of the function to mux to the
|
||||
pin group(s) specified by the renesas,groups property
|
||||
- function: A string containing the name of the function to mux to the pin
|
||||
group(s) specified by the groups property.
|
||||
|
||||
Valid values for pin, group and function names can be found in the group and
|
||||
function arrays of the PFC data file corresponding to the SoC
|
||||
|
|
@ -71,7 +71,9 @@ Pin Configuration Node Properties:
|
|||
|
||||
The pin configuration parameters use the generic pinconf bindings defined in
|
||||
pinctrl-bindings.txt in this directory. The supported parameters are
|
||||
bias-disable, bias-pull-up and bias-pull-down.
|
||||
bias-disable, bias-pull-up, bias-pull-down and power-source. For pins that
|
||||
have a configurable I/O voltage, the power-source value should be the
|
||||
nominal I/O voltage in millivolts.
|
||||
|
||||
|
||||
GPIO
|
||||
|
|
@ -141,19 +143,19 @@ Example 3: KZM-A9-GT (SH-Mobile AG5) default pin state hog and pin control maps
|
|||
|
||||
mmcif_pins: mmcif {
|
||||
mux {
|
||||
renesas,groups = "mmc0_data8_0", "mmc0_ctrl_0";
|
||||
renesas,function = "mmc0";
|
||||
groups = "mmc0_data8_0", "mmc0_ctrl_0";
|
||||
function = "mmc0";
|
||||
};
|
||||
cfg {
|
||||
renesas,groups = "mmc0_data8_0";
|
||||
renesas,pins = "PORT279";
|
||||
groups = "mmc0_data8_0";
|
||||
pins = "PORT279";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
scifa4_pins: scifa4 {
|
||||
renesas,groups = "scifa4_data", "scifa4_ctrl";
|
||||
renesas,function = "scifa4";
|
||||
groups = "scifa4_data", "scifa4_ctrl";
|
||||
function = "scifa4";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ ST Ericsson Nomadik pinmux controller
|
|||
Required properties:
|
||||
- compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl",
|
||||
"stericsson,stn8815-pinctrl"
|
||||
- reg: Should contain the register physical address and length of the PRCMU.
|
||||
- nomadik-gpio-chips: array of phandles to the corresponding GPIO chips
|
||||
(these have the register ranges used by the pin controller).
|
||||
- prcm: phandle to the PRCMU managing the back end of this pin controller
|
||||
|
||||
Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||
common pinctrl bindings used by client devices, including the meaning of the
|
||||
|
|
@ -74,7 +76,8 @@ Example board file extract:
|
|||
|
||||
pinctrl@80157000 {
|
||||
compatible = "stericsson,db8500-pinctrl";
|
||||
reg = <0x80157000 0x2000>;
|
||||
nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>;
|
||||
prcm = <&prcmu>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue