You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'pinctrl-v3.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pinctrl updates from Linus Walleij:
"This is the bulk pin control changes for the v3.17 merge development
cycle:
- get rid of the .disable() callback from the driver callback vtable.
This callback was abused and counterintuitive since a pin or group
of pins can be said to always be in some setting, and never really
disabled. We now only enable a certain muxing, and move between
some certain muxings, we never "disable" a mux setting
- some janitorial moving the MSM, Samsung and Nomadik and drivers to
their own subdirectories for a clearer view in the subsystem. This
will continue
- kill off the use of the return value from gpiochip_remove(), this
will be done in parallel in the GPIO subsystem and hopefully not
trigger too many unchecked return value warnings before we get rid
of this altogether
- a huge set of changes and improvements to the Allwinner sunxi
drivers especially for their latest A23 and A31 SoCs, and some
ground work for the new sun8i platform family
- a large set of Rockchip driver improvements adding support for the
RK3288 SoC
- advances in migration of older Freescale platforms to pin control,
especially i.MX1
- Samsung and Exynos improvements
- support for the Qualcomm MSM8960 SoC
- use the gpiolib irqchip helpers for the ST SPEAr and Intel Baytrail
drivers
- a bunch of nice janitorial work done with cppcheck"
* tag 'pinctrl-v3.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (61 commits)
pinctrl: baytrail: Convert to use gpiolib irqchip
pinctrl: sunxi: number gpio ranges starting from 0
pinctrl: sunxi: use gpiolib API to mark a GPIO used as an IRQ
pinctrl: rockchip: add drive-strength control for rk3288
pinctrl: rockchip: add separate type for rk3288
pinctrl: rockchip: set is_generic in pinconf_ops
pinctrl: msm: drop negativity check on unsigned value
pinctrl: remove all usage of gpio_remove ret val in driver/pinctl
pinctrl: qcom: Make muxing of gpio function explicit
pinctrl: nomadik: move all Nomadik drivers to subdir
pinctrl: samsung: Group all drivers in a sub-dir
sh-pfc: sh73a0: Introduce the use of devm_regulator_register
sh-pfc: Add renesas,pfc-r8a7791 to binding documentation
pinctrl: msm: move all qualcomm drivers to subdir
pinctrl: msm: Add msm8960 definitions
pinctrl: samsung: Allow pin value to be initialized using pinfunc
pinctrl: samsung: Allow grouping multiple pinmux/pinconf nodes
pinctrl: exynos: Consolidate irq_chips of GPIO and WKUP EINTs
pinctrl: samsung: Handle GPIO request and free using pinctrl helpers
pinctrl: samsung: Decouple direction setting from pinctrl
...
This commit is contained in:
@@ -13,6 +13,8 @@ Required properties:
|
||||
"allwinner,sun6i-a31-pinctrl"
|
||||
"allwinner,sun6i-a31-r-pinctrl"
|
||||
"allwinner,sun7i-a20-pinctrl"
|
||||
"allwinner,sun8i-a23-pinctrl"
|
||||
"allwinner,sun8i-a23-r-pinctrl"
|
||||
- reg: Should contain the register physical address and length for the
|
||||
pin controller.
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ Valid values for pins are:
|
||||
gpio0-gpio89
|
||||
|
||||
Valid values for function are:
|
||||
cam_mclk, codec_mic_i2s, codec_spkr_i2s, gsbi1, gsbi2, gsbi3, gsbi4,
|
||||
cam_mclk, codec_mic_i2s, codec_spkr_i2s, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
|
||||
gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
|
||||
gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
|
||||
gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
|
||||
|
||||
@@ -51,7 +51,7 @@ Valid values for qcom,pins are:
|
||||
|
||||
|
||||
Valid values for function are:
|
||||
mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gsbi1, gsbi2, gsbi4, gsbi5,
|
||||
mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gpio, gsbi1, gsbi2, gsbi4, gsbi5,
|
||||
gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1,
|
||||
spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata,
|
||||
pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt,
|
||||
|
||||
@@ -0,0 +1,181 @@
|
||||
Qualcomm MSM8960 TLMM block
|
||||
|
||||
This binding describes the Top Level Mode Multiplexer block found in the
|
||||
MSM8960 platform.
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: must be "qcom,msm8960-pinctrl"
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: the base address and size of the TLMM register space.
|
||||
|
||||
- interrupts:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: should specify the TLMM summary IRQ.
|
||||
|
||||
- interrupt-controller:
|
||||
Usage: required
|
||||
Value type: <none>
|
||||
Definition: identifies this node as an interrupt controller
|
||||
|
||||
- #interrupt-cells:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: must be 2. Specifying the pin number and flags, as defined
|
||||
in <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
- gpio-controller:
|
||||
Usage: required
|
||||
Value type: <none>
|
||||
Definition: identifies this node as a gpio controller
|
||||
|
||||
- #gpio-cells:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: must be 2. Specifying the pin number and flags, as defined
|
||||
in <dt-bindings/gpio/gpio.h>
|
||||
|
||||
Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
|
||||
a general description of GPIO and interrupt bindings.
|
||||
|
||||
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
|
||||
phrase "pin configuration node".
|
||||
|
||||
The pin configuration nodes act as a container for an abitrary number of
|
||||
subnodes. Each of these subnodes represents some desired configuration for a
|
||||
pin, a group, or a list of pins or groups. This configuration can include the
|
||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||
parameters, such as pull-up, drive strength, etc.
|
||||
|
||||
|
||||
PIN CONFIGURATION NODES:
|
||||
|
||||
The name of each subnode is not important; all subnodes should be enumerated
|
||||
and processed purely based on their content.
|
||||
|
||||
Each subnode only affects those parameters that are explicitly listed. In
|
||||
other words, a subnode that lists a mux function but no pin configuration
|
||||
parameters implies no information about any pin configuration parameters.
|
||||
Similarly, a pin subnode that describes a pullup parameter implies no
|
||||
information about e.g. the mux function.
|
||||
|
||||
|
||||
The following generic properties as defined in pinctrl-bindings.txt are valid
|
||||
to specify in a pin configuration subnode:
|
||||
|
||||
- pins:
|
||||
Usage: required
|
||||
Value type: <string-array>
|
||||
Definition: List of gpio pins affected by the properties specified in
|
||||
this subnode. Valid pins are:
|
||||
gpio0-gpio151,
|
||||
sdc1_clk,
|
||||
sdc1_cmd,
|
||||
sdc1_data
|
||||
sdc3_clk,
|
||||
sdc3_cmd,
|
||||
sdc3_data
|
||||
|
||||
- function:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Specify the alternative function to be configured for the
|
||||
specified pins. Functions are only valid for gpio pins.
|
||||
Valid values are:
|
||||
audio_pcm, bt, cam_mclk0, cam_mclk1, cam_mclk2,
|
||||
codec_mic_i2s, codec_spkr_i2s, ext_gps, fm, gps_blanking,
|
||||
gps_pps_in, gps_pps_out, gp_clk_0a, gp_clk_0b, gp_clk_1a,
|
||||
gp_clk_1b, gp_clk_2a, gp_clk_2b, gp_mn, gp_pdm_0a,
|
||||
gp_pdm_0b, gp_pdm_1a, gp_pdm_1b, gp_pdm_2a, gp_pdm_2b, gpio,
|
||||
gsbi1, gsbi1_spi_cs1_n, gsbi1_spi_cs2a_n, gsbi1_spi_cs2b_n,
|
||||
gsbi1_spi_cs3_n, gsbi2, gsbi2_spi_cs1_n, gsbi2_spi_cs2_n,
|
||||
gsbi2_spi_cs3_n, gsbi3, gsbi4, gsbi4_3d_cam_i2c_l,
|
||||
gsbi4_3d_cam_i2c_r, gsbi5, gsbi5_3d_cam_i2c_l,
|
||||
gsbi5_3d_cam_i2c_r, gsbi6, gsbi7, gsbi8, gsbi9, gsbi10,
|
||||
gsbi11, gsbi11_spi_cs1a_n, gsbi11_spi_cs1b_n,
|
||||
gsbi11_spi_cs2a_n, gsbi11_spi_cs2b_n, gsbi11_spi_cs3_n,
|
||||
gsbi12, hdmi_cec, hdmi_ddc_clock, hdmi_ddc_data,
|
||||
hdmi_hot_plug_detect, hsic, mdp_vsync, mi2s, mic_i2s,
|
||||
pmb_clk, pmb_ext_ctrl, ps_hold, rpm_wdog, sdc2, sdc4, sdc5,
|
||||
slimbus1, slimbus2, spkr_i2s, ssbi1, ssbi2, ssbi_ext_gps,
|
||||
ssbi_pmic2, ssbi_qpa1, ssbi_ts, tsif1, tsif2, ts_eoc,
|
||||
usb_fs1, usb_fs1_oe, usb_fs1_oe_n, usb_fs2, usb_fs2_oe,
|
||||
usb_fs2_oe_n, vfe_camif_timer1_a, vfe_camif_timer1_b,
|
||||
vfe_camif_timer2, vfe_camif_timer3_a, vfe_camif_timer3_b,
|
||||
vfe_camif_timer4_a, vfe_camif_timer4_b, vfe_camif_timer4_c,
|
||||
vfe_camif_timer5_a, vfe_camif_timer5_b, vfe_camif_timer6_a,
|
||||
vfe_camif_timer6_b, vfe_camif_timer6_c, vfe_camif_timer7_a,
|
||||
vfe_camif_timer7_b, vfe_camif_timer7_c, wlan
|
||||
|
||||
- bias-disable:
|
||||
Usage: optional
|
||||
Value type: <none>
|
||||
Definition: The specified pins should be configued as no pull.
|
||||
|
||||
- bias-pull-down:
|
||||
Usage: optional
|
||||
Value type: <none>
|
||||
Definition: The specified pins should be configued as pull down.
|
||||
|
||||
- bias-pull-up:
|
||||
Usage: optional
|
||||
Value type: <none>
|
||||
Definition: The specified pins should be configued as pull up.
|
||||
|
||||
- output-high:
|
||||
Usage: optional
|
||||
Value type: <none>
|
||||
Definition: The specified pins are configured in output mode, driven
|
||||
high.
|
||||
Not valid for sdc pins.
|
||||
|
||||
- output-low:
|
||||
Usage: optional
|
||||
Value type: <none>
|
||||
Definition: The specified pins are configured in output mode, driven
|
||||
low.
|
||||
Not valid for sdc pins.
|
||||
|
||||
- drive-strength:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Selects the drive strength for the specified pins, in mA.
|
||||
Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
|
||||
|
||||
Example:
|
||||
|
||||
msmgpio: pinctrl@800000 {
|
||||
compatible = "qcom,msm8960-pinctrl";
|
||||
reg = <0x800000 0x4000>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <0 16 0x4>;
|
||||
|
||||
gsbi8_uart: gsbi8-uart {
|
||||
mux {
|
||||
pins = "gpio34", "gpio35";
|
||||
function = "gsbi8";
|
||||
};
|
||||
|
||||
tx {
|
||||
pins = "gpio34";
|
||||
drive-strength = <4>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
rx {
|
||||
pins = "gpio35";
|
||||
drive-strength = <2>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -70,7 +70,7 @@ Valid values for function are:
|
||||
cam_mckl0, cam_mclk1, cam_mclk2, cam_mclk3, mdp_vsync, hdmi_cec, hdmi_ddc,
|
||||
hdmi_hpd, edp_hpd, gp_pdm0, gp_pdm1, gp_pdm2, gp_pdm3, gp0_clk, gp1_clk,
|
||||
gp_mn, tsif1, tsif2, hsic, grfc, audio_ref_clk, qua_mi2s, pri_mi2s, spkr_mi2s,
|
||||
ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus
|
||||
ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus, gpio
|
||||
|
||||
(Note that this is not yet the complete list of functions)
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ Required Properties:
|
||||
- "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller.
|
||||
- "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller.
|
||||
- "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller.
|
||||
- "renesas,pfc-r8a7791": for R8A7791 (R-Car M2) compatible pin-controller.
|
||||
- "renesas,pfc-sh7372": for SH7372 (SH-Mobile AP4) compatible pin-controller.
|
||||
- "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ defined as gpio sub-nodes of the pinmux controller.
|
||||
Required properties for iomux controller:
|
||||
- compatible: one of "rockchip,rk2928-pinctrl", "rockchip,rk3066a-pinctrl"
|
||||
"rockchip,rk3066b-pinctrl", "rockchip,rk3188-pinctrl"
|
||||
"rockchip,rk3288-pinctrl"
|
||||
- rockchip,grf: phandle referencing a syscon providing the
|
||||
"general register files"
|
||||
|
||||
@@ -36,7 +37,7 @@ Deprecated properties for iomux controller:
|
||||
Use rockchip,grf and rockchip,pmu described above instead.
|
||||
|
||||
Required properties for gpio sub nodes:
|
||||
- compatible: "rockchip,gpio-bank", "rockchip,rk3188-gpio-bank0"
|
||||
- compatible: "rockchip,gpio-bank"
|
||||
- reg: register of the gpio bank (different than the iomux registerset)
|
||||
- interrupts: base interrupt of the gpio bank in the interrupt controller
|
||||
- clocks: clock that drives this bank
|
||||
@@ -50,6 +51,7 @@ Required properties for gpio sub nodes:
|
||||
bindings/interrupt-controller/interrupts.txt
|
||||
|
||||
Deprecated properties for gpio sub nodes:
|
||||
- compatible: "rockchip,rk3188-gpio-bank0"
|
||||
- reg: second element: separate pull register for rk3188 bank0, use
|
||||
rockchip,pmu described above instead
|
||||
|
||||
|
||||
@@ -44,7 +44,11 @@ Required Properties:
|
||||
- Pin mux/config groups as child nodes: The pin mux (selecting pin function
|
||||
mode) and pin config (pull up/down, driver strength) settings are represented
|
||||
as child nodes of the pin-controller node. There should be atleast one
|
||||
child node and there is no limit on the count of these child nodes.
|
||||
child node and there is no limit on the count of these child nodes. It is
|
||||
also possible for a child node to consist of several further child nodes
|
||||
to allow grouping multiple pinctrl groups into one. The format of second
|
||||
level child nodes is exactly the same as for first level ones and is
|
||||
described below.
|
||||
|
||||
The child node should contain a list of pin(s) on which a particular pin
|
||||
function selection or pin configuration (or both) have to applied. This
|
||||
@@ -71,6 +75,7 @@ Required Properties:
|
||||
"samsung,pins" property of the child node. The following pin configuration
|
||||
properties are supported.
|
||||
|
||||
- samsung,pin-val: Initial value of pin output buffer.
|
||||
- samsung,pin-pud: Pull up/down configuration.
|
||||
- samsung,pin-drv: Drive strength configuration.
|
||||
- samsung,pin-pud-pdn: Pull up/down configuration in power down mode.
|
||||
@@ -249,6 +254,23 @@ Example 1: A pin-controller node with pin groups.
|
||||
samsung,pin-pud = <3>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
sd4_bus8: sd4-bus-width8 {
|
||||
part-1 {
|
||||
samsung,pins = "gpk0-3", "gpk0-4",
|
||||
"gpk0-5", "gpk0-6";
|
||||
samsung,pin-function = <3>;
|
||||
samsung,pin-pud = <3>;
|
||||
samsung,pin-drv = <3>;
|
||||
};
|
||||
part-2 {
|
||||
samsung,pins = "gpk1-3", "gpk1-4",
|
||||
"gpk1-5", "gpk1-6";
|
||||
samsung,pin-function = <4>;
|
||||
samsung,pin-pud = <4>;
|
||||
samsung,pin-drv = <3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Example 2: A pin-controller node with external wakeup interrupt controller node.
|
||||
|
||||
@@ -101,14 +101,6 @@
|
||||
#define MX27_PAD_CONTRAST__GPIO1_30 0x1e 0x032
|
||||
#define MX27_PAD_OE_ACD__OE_ACD 0x1f 0x004
|
||||
#define MX27_PAD_OE_ACD__GPIO1_31 0x1f 0x032
|
||||
#define MX27_PAD_UNUSED0__UNUSED0 0x20 0x004
|
||||
#define MX27_PAD_UNUSED0__GPIO2_0 0x20 0x032
|
||||
#define MX27_PAD_UNUSED1__UNUSED1 0x21 0x004
|
||||
#define MX27_PAD_UNUSED1__GPIO2_1 0x21 0x032
|
||||
#define MX27_PAD_UNUSED2__UNUSED2 0x22 0x004
|
||||
#define MX27_PAD_UNUSED2__GPIO2_2 0x22 0x032
|
||||
#define MX27_PAD_UNUSED3__UNUSED3 0x23 0x004
|
||||
#define MX27_PAD_UNUSED3__GPIO2_3 0x23 0x032
|
||||
#define MX27_PAD_SD2_D0__SD2_D0 0x24 0x004
|
||||
#define MX27_PAD_SD2_D0__MSHC_DATA0 0x24 0x005
|
||||
#define MX27_PAD_SD2_D0__GPIO2_4 0x24 0x032
|
||||
@@ -183,16 +175,6 @@
|
||||
#define MX27_PAD_USBH1_RXDP__USBH1_RXDP 0x3f 0x004
|
||||
#define MX27_PAD_USBH1_RXDP__UART4_RXD 0x3f 0x001
|
||||
#define MX27_PAD_USBH1_RXDP__GPIO2_31 0x3f 0x032
|
||||
#define MX27_PAD_UNUSED4__UNUSED4 0x40 0x004
|
||||
#define MX27_PAD_UNUSED4__GPIO3_0 0x40 0x032
|
||||
#define MX27_PAD_UNUSED5__UNUSED5 0x41 0x004
|
||||
#define MX27_PAD_UNUSED5__GPIO3_1 0x41 0x032
|
||||
#define MX27_PAD_UNUSED6__UNUSED6 0x42 0x004
|
||||
#define MX27_PAD_UNUSED6__GPIO3_2 0x42 0x032
|
||||
#define MX27_PAD_UNUSED7__UNUSED7 0x43 0x004
|
||||
#define MX27_PAD_UNUSED7__GPIO3_3 0x43 0x032
|
||||
#define MX27_PAD_UNUSED8__UNUSED8 0x44 0x004
|
||||
#define MX27_PAD_UNUSED8__GPIO3_4 0x44 0x032
|
||||
#define MX27_PAD_I2C2_SDA__I2C2_SDA 0x45 0x004
|
||||
#define MX27_PAD_I2C2_SDA__GPIO3_5 0x45 0x032
|
||||
#define MX27_PAD_I2C2_SCL__I2C2_SCL 0x46 0x004
|
||||
@@ -422,18 +404,6 @@
|
||||
#define MX27_PAD_USBOTG_CLK__GPIO5_24 0x98 0x032
|
||||
#define MX27_PAD_USBOTG_DATA7__USBOTG_DATA7 0x99 0x004
|
||||
#define MX27_PAD_USBOTG_DATA7__GPIO5_25 0x99 0x032
|
||||
#define MX27_PAD_UNUSED9__UNUSED9 0x9a 0x004
|
||||
#define MX27_PAD_UNUSED9__GPIO5_26 0x9a 0x032
|
||||
#define MX27_PAD_UNUSED10__UNUSED10 0x9b 0x004
|
||||
#define MX27_PAD_UNUSED10__GPIO5_27 0x9b 0x032
|
||||
#define MX27_PAD_UNUSED11__UNUSED11 0x9c 0x004
|
||||
#define MX27_PAD_UNUSED11__GPIO5_28 0x9c 0x032
|
||||
#define MX27_PAD_UNUSED12__UNUSED12 0x9d 0x004
|
||||
#define MX27_PAD_UNUSED12__GPIO5_29 0x9d 0x032
|
||||
#define MX27_PAD_UNUSED13__UNUSED13 0x9e 0x004
|
||||
#define MX27_PAD_UNUSED13__GPIO5_30 0x9e 0x032
|
||||
#define MX27_PAD_UNUSED14__UNUSED14 0x9f 0x004
|
||||
#define MX27_PAD_UNUSED14__GPIO5_31 0x9f 0x032
|
||||
#define MX27_PAD_NFRB__NFRB 0xa0 0x000
|
||||
#define MX27_PAD_NFRB__ETMTRACEPKT3 0xa0 0x005
|
||||
#define MX27_PAD_NFRB__GPIO6_0 0xa0 0x032
|
||||
@@ -506,21 +476,5 @@
|
||||
#define MX27_PAD_ATA_DATA15__ETMTRACEPKT4 0xb7 0x005
|
||||
#define MX27_PAD_ATA_DATA15__FEC_TX_EN 0xb7 0x006
|
||||
#define MX27_PAD_ATA_DATA15__GPIO6_23 0xb7 0x032
|
||||
#define MX27_PAD_UNUSED15__UNUSED15 0xb8 0x004
|
||||
#define MX27_PAD_UNUSED15__GPIO6_24 0xb8 0x032
|
||||
#define MX27_PAD_UNUSED16__UNUSED16 0xb9 0x004
|
||||
#define MX27_PAD_UNUSED16__GPIO6_25 0xb9 0x032
|
||||
#define MX27_PAD_UNUSED17__UNUSED17 0xba 0x004
|
||||
#define MX27_PAD_UNUSED17__GPIO6_26 0xba 0x032
|
||||
#define MX27_PAD_UNUSED18__UNUSED18 0xbb 0x004
|
||||
#define MX27_PAD_UNUSED18__GPIO6_27 0xbb 0x032
|
||||
#define MX27_PAD_UNUSED19__UNUSED19 0xbc 0x004
|
||||
#define MX27_PAD_UNUSED19__GPIO6_28 0xbc 0x032
|
||||
#define MX27_PAD_UNUSED20__UNUSED20 0xbd 0x004
|
||||
#define MX27_PAD_UNUSED20__GPIO6_29 0xbd 0x032
|
||||
#define MX27_PAD_UNUSED21__UNUSED21 0xbe 0x004
|
||||
#define MX27_PAD_UNUSED21__GPIO6_30 0xbe 0x032
|
||||
#define MX27_PAD_UNUSED22__UNUSED22 0xbf 0x004
|
||||
#define MX27_PAD_UNUSED22__GPIO6_31 0xbf 0x032
|
||||
|
||||
#endif /* __DTS_IMX27_PINFUNC_H */
|
||||
|
||||
@@ -4,7 +4,6 @@ menuconfig ARCH_SUNXI
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_IRQ_CHIP
|
||||
select PINCTRL
|
||||
select PINCTRL_SUNXI
|
||||
select SUN4I_TIMER
|
||||
|
||||
if ARCH_SUNXI
|
||||
|
||||
+13
-104
@@ -11,10 +11,10 @@ menu "Pin controllers"
|
||||
depends on PINCTRL
|
||||
|
||||
config PINMUX
|
||||
bool "Support pin multiplexing controllers"
|
||||
bool "Support pin multiplexing controllers" if COMPILE_TEST
|
||||
|
||||
config PINCONF
|
||||
bool "Support pin configuration controllers"
|
||||
bool "Support pin configuration controllers" if COMPILE_TEST
|
||||
|
||||
config GENERIC_PINCONF
|
||||
bool
|
||||
@@ -26,29 +26,6 @@ config DEBUG_PINCTRL
|
||||
help
|
||||
Say Y here to add some extra checks and diagnostics to PINCTRL calls.
|
||||
|
||||
config PINCTRL_ABX500
|
||||
bool "ST-Ericsson ABx500 family Mixed Signal Circuit gpio functions"
|
||||
depends on AB8500_CORE
|
||||
select GENERIC_PINCONF
|
||||
help
|
||||
Select this to enable the ABx500 family IC GPIO driver
|
||||
|
||||
config PINCTRL_AB8500
|
||||
bool "AB8500 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
config PINCTRL_AB8540
|
||||
bool "AB8540 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
config PINCTRL_AB9540
|
||||
bool "AB9540 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
config PINCTRL_AB8505
|
||||
bool "AB8505 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
config PINCTRL_ADI2
|
||||
bool "ADI pin controller driver"
|
||||
depends on BLACKFIN
|
||||
@@ -93,7 +70,7 @@ config PINCTRL_AT91
|
||||
config PINCTRL_BAYTRAIL
|
||||
bool "Intel Baytrail GPIO pin control"
|
||||
depends on GPIOLIB && ACPI && X86
|
||||
select IRQ_DOMAIN
|
||||
select GPIOLIB_IRQCHIP
|
||||
help
|
||||
driver for memory mapped GPIO functionality on Intel Baytrail
|
||||
platforms. Supports 3 banks with 102, 28 and 44 gpios.
|
||||
@@ -130,6 +107,13 @@ config PINCTRL_IMX1_CORE
|
||||
select PINMUX
|
||||
select PINCONF
|
||||
|
||||
config PINCTRL_IMX1
|
||||
bool "IMX1 pinctrl driver"
|
||||
depends on SOC_IMX1
|
||||
select PINCTRL_IMX1_CORE
|
||||
help
|
||||
Say Y here to enable the imx1 pinctrl driver
|
||||
|
||||
config PINCTRL_IMX27
|
||||
bool "IMX27 pinctrl driver"
|
||||
depends on SOC_IMX27
|
||||
@@ -226,58 +210,6 @@ config PINCTRL_IMX28
|
||||
bool
|
||||
select PINCTRL_MXS
|
||||
|
||||
config PINCTRL_MSM
|
||||
bool
|
||||
select PINMUX
|
||||
select PINCONF
|
||||
select GENERIC_PINCONF
|
||||
select GPIOLIB_IRQCHIP
|
||||
|
||||
config PINCTRL_APQ8064
|
||||
tristate "Qualcomm APQ8064 pin controller driver"
|
||||
depends on GPIOLIB && OF
|
||||
select PINCTRL_MSM
|
||||
help
|
||||
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
||||
Qualcomm TLMM block found in the Qualcomm APQ8064 platform.
|
||||
|
||||
config PINCTRL_IPQ8064
|
||||
tristate "Qualcomm IPQ8064 pin controller driver"
|
||||
depends on GPIOLIB && OF
|
||||
select PINCTRL_MSM
|
||||
help
|
||||
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
||||
Qualcomm TLMM block found in the Qualcomm IPQ8064 platform.
|
||||
|
||||
config PINCTRL_MSM8X74
|
||||
tristate "Qualcomm 8x74 pin controller driver"
|
||||
depends on GPIOLIB && OF && (ARCH_QCOM || COMPILE_TEST)
|
||||
select PINCTRL_MSM
|
||||
help
|
||||
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
||||
Qualcomm TLMM block found in the Qualcomm 8974 platform.
|
||||
|
||||
config PINCTRL_NOMADIK
|
||||
bool "Nomadik pin controller driver"
|
||||
depends on ARCH_U8500 || ARCH_NOMADIK
|
||||
select PINMUX
|
||||
select PINCONF
|
||||
select GPIOLIB
|
||||
select OF_GPIO
|
||||
select GPIOLIB_IRQCHIP
|
||||
|
||||
config PINCTRL_STN8815
|
||||
bool "STN8815 pin controller driver"
|
||||
depends on PINCTRL_NOMADIK && ARCH_NOMADIK
|
||||
|
||||
config PINCTRL_DB8500
|
||||
bool "DB8500 pin controller driver"
|
||||
depends on PINCTRL_NOMADIK && ARCH_U8500
|
||||
|
||||
config PINCTRL_DB8540
|
||||
bool "DB8540 pin controller driver"
|
||||
depends on PINCTRL_NOMADIK && ARCH_U8500
|
||||
|
||||
config PINCTRL_ROCKCHIP
|
||||
bool
|
||||
select PINMUX
|
||||
@@ -356,22 +288,6 @@ config PINCTRL_COH901
|
||||
COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
|
||||
ports of 8 GPIO pins each.
|
||||
|
||||
config PINCTRL_SAMSUNG
|
||||
bool
|
||||
select PINMUX
|
||||
select PINCONF
|
||||
|
||||
config PINCTRL_EXYNOS
|
||||
bool "Pinctrl driver data for Samsung EXYNOS SoCs other than 5440"
|
||||
depends on OF && GPIOLIB && (ARCH_EXYNOS || ARCH_S5PV210)
|
||||
select PINCTRL_SAMSUNG
|
||||
|
||||
config PINCTRL_EXYNOS5440
|
||||
bool "Samsung EXYNOS5440 SoC pinctrl driver"
|
||||
depends on SOC_EXYNOS5440
|
||||
select PINMUX
|
||||
select PINCONF
|
||||
|
||||
config PINCTRL_PALMAS
|
||||
bool "Pinctrl driver for the PALMAS Series MFD devices"
|
||||
depends on OF && MFD_PALMAS
|
||||
@@ -383,18 +299,11 @@ config PINCTRL_PALMAS
|
||||
open drain configuration for the Palmas series devices like
|
||||
TPS65913, TPS80036 etc.
|
||||
|
||||
config PINCTRL_S3C24XX
|
||||
bool "Samsung S3C24XX SoC pinctrl driver"
|
||||
depends on ARCH_S3C24XX
|
||||
select PINCTRL_SAMSUNG
|
||||
|
||||
config PINCTRL_S3C64XX
|
||||
bool "Samsung S3C64XX SoC pinctrl driver"
|
||||
depends on ARCH_S3C64XX
|
||||
select PINCTRL_SAMSUNG
|
||||
|
||||
source "drivers/pinctrl/berlin/Kconfig"
|
||||
source "drivers/pinctrl/mvebu/Kconfig"
|
||||
source "drivers/pinctrl/nomadik/Kconfig"
|
||||
source "drivers/pinctrl/qcom/Kconfig"
|
||||
source "drivers/pinctrl/samsung/Kconfig"
|
||||
source "drivers/pinctrl/sh-pfc/Kconfig"
|
||||
source "drivers/pinctrl/spear/Kconfig"
|
||||
source "drivers/pinctrl/sunxi/Kconfig"
|
||||
|
||||
@@ -9,11 +9,6 @@ ifeq ($(CONFIG_OF),y)
|
||||
obj-$(CONFIG_PINCTRL) += devicetree.o
|
||||
endif
|
||||
obj-$(CONFIG_GENERIC_PINCONF) += pinconf-generic.o
|
||||
obj-$(CONFIG_PINCTRL_ABX500) += pinctrl-abx500.o
|
||||
obj-$(CONFIG_PINCTRL_AB8500) += pinctrl-ab8500.o
|
||||
obj-$(CONFIG_PINCTRL_AB8540) += pinctrl-ab8540.o
|
||||
obj-$(CONFIG_PINCTRL_AB9540) += pinctrl-ab9540.o
|
||||
obj-$(CONFIG_PINCTRL_AB8505) += pinctrl-ab8505.o
|
||||
obj-$(CONFIG_PINCTRL_ADI2) += pinctrl-adi2.o
|
||||
obj-$(CONFIG_PINCTRL_AS3722) += pinctrl-as3722.o
|
||||
obj-$(CONFIG_PINCTRL_BF54x) += pinctrl-adi2-bf54x.o
|
||||
@@ -24,6 +19,7 @@ obj-$(CONFIG_PINCTRL_BAYTRAIL) += pinctrl-baytrail.o
|
||||
obj-$(CONFIG_PINCTRL_BCM281XX) += pinctrl-bcm281xx.o
|
||||
obj-$(CONFIG_PINCTRL_IMX) += pinctrl-imx.o
|
||||
obj-$(CONFIG_PINCTRL_IMX1_CORE) += pinctrl-imx1-core.o
|
||||
obj-$(CONFIG_PINCTRL_IMX1) += pinctrl-imx1.o
|
||||
obj-$(CONFIG_PINCTRL_IMX27) += pinctrl-imx27.o
|
||||
obj-$(CONFIG_PINCTRL_IMX35) += pinctrl-imx35.o
|
||||
obj-$(CONFIG_PINCTRL_IMX50) += pinctrl-imx50.o
|
||||
@@ -38,14 +34,6 @@ obj-$(CONFIG_PINCTRL_MXS) += pinctrl-mxs.o
|
||||
obj-$(CONFIG_PINCTRL_IMX23) += pinctrl-imx23.o
|
||||
obj-$(CONFIG_PINCTRL_IMX25) += pinctrl-imx25.o
|
||||
obj-$(CONFIG_PINCTRL_IMX28) += pinctrl-imx28.o
|
||||
obj-$(CONFIG_PINCTRL_MSM) += pinctrl-msm.o
|
||||
obj-$(CONFIG_PINCTRL_APQ8064) += pinctrl-apq8064.o
|
||||
obj-$(CONFIG_PINCTRL_IPQ8064) += pinctrl-ipq8064.o
|
||||
obj-$(CONFIG_PINCTRL_MSM8X74) += pinctrl-msm8x74.o
|
||||
obj-$(CONFIG_PINCTRL_NOMADIK) += pinctrl-nomadik.o
|
||||
obj-$(CONFIG_PINCTRL_STN8815) += pinctrl-nomadik-stn8815.o
|
||||
obj-$(CONFIG_PINCTRL_DB8500) += pinctrl-nomadik-db8500.o
|
||||
obj-$(CONFIG_PINCTRL_DB8540) += pinctrl-nomadik-db8540.o
|
||||
obj-$(CONFIG_PINCTRL_PALMAS) += pinctrl-palmas.o
|
||||
obj-$(CONFIG_PINCTRL_ROCKCHIP) += pinctrl-rockchip.o
|
||||
obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o
|
||||
@@ -59,11 +47,6 @@ obj-$(CONFIG_PINCTRL_TZ1090) += pinctrl-tz1090.o
|
||||
obj-$(CONFIG_PINCTRL_TZ1090_PDC) += pinctrl-tz1090-pdc.o
|
||||
obj-$(CONFIG_PINCTRL_U300) += pinctrl-u300.o
|
||||
obj-$(CONFIG_PINCTRL_COH901) += pinctrl-coh901.o
|
||||
obj-$(CONFIG_PINCTRL_SAMSUNG) += pinctrl-samsung.o
|
||||
obj-$(CONFIG_PINCTRL_EXYNOS) += pinctrl-exynos.o
|
||||
obj-$(CONFIG_PINCTRL_EXYNOS5440) += pinctrl-exynos5440.o
|
||||
obj-$(CONFIG_PINCTRL_S3C24XX) += pinctrl-s3c24xx.o
|
||||
obj-$(CONFIG_PINCTRL_S3C64XX) += pinctrl-s3c64xx.o
|
||||
obj-$(CONFIG_PINCTRL_XWAY) += pinctrl-xway.o
|
||||
obj-$(CONFIG_PINCTRL_LANTIQ) += pinctrl-lantiq.o
|
||||
obj-$(CONFIG_PINCTRL_TB10X) += pinctrl-tb10x.o
|
||||
@@ -72,8 +55,11 @@ obj-$(CONFIG_PINCTRL_VF610) += pinctrl-vf610.o
|
||||
|
||||
obj-$(CONFIG_ARCH_BERLIN) += berlin/
|
||||
obj-$(CONFIG_PLAT_ORION) += mvebu/
|
||||
obj-y += nomadik/
|
||||
obj-$(CONFIG_ARCH_QCOM) += qcom/
|
||||
obj-$(CONFIG_PLAT_SAMSUNG) += samsung/
|
||||
obj-$(CONFIG_ARCH_SHMOBILE) += sh-pfc/
|
||||
obj-$(CONFIG_SUPERH) += sh-pfc/
|
||||
obj-$(CONFIG_PLAT_SPEAR) += spear/
|
||||
obj-$(CONFIG_ARCH_VT8500) += vt8500/
|
||||
obj-$(CONFIG_ARCH_SUNXI) += sunxi/
|
||||
obj-$(CONFIG_ARCH_VT8500) += vt8500/
|
||||
|
||||
+5
-19
@@ -992,29 +992,15 @@ int pinctrl_select_state(struct pinctrl *p, struct pinctrl_state *state)
|
||||
|
||||
if (p->state) {
|
||||
/*
|
||||
* The set of groups with a mux configuration in the old state
|
||||
* may not be identical to the set of groups with a mux setting
|
||||
* in the new state. While this might be unusual, it's entirely
|
||||
* possible for the "user"-supplied mapping table to be written
|
||||
* that way. For each group that was configured in the old state
|
||||
* but not in the new state, this code puts that group into a
|
||||
* safe/disabled state.
|
||||
* For each pinmux setting in the old state, forget SW's record
|
||||
* of mux owner for that pingroup. Any pingroups which are
|
||||
* still owned by the new state will be re-acquired by the call
|
||||
* to pinmux_enable_setting() in the loop below.
|
||||
*/
|
||||
list_for_each_entry(setting, &p->state->settings, node) {
|
||||
bool found = false;
|
||||
if (setting->type != PIN_MAP_TYPE_MUX_GROUP)
|
||||
continue;
|
||||
list_for_each_entry(setting2, &state->settings, node) {
|
||||
if (setting2->type != PIN_MAP_TYPE_MUX_GROUP)
|
||||
continue;
|
||||
if (setting2->data.mux.group ==
|
||||
setting->data.mux.group) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
pinmux_disable_setting(setting);
|
||||
pinmux_disable_setting(setting);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
if ARCH_U8500
|
||||
|
||||
config PINCTRL_ABX500
|
||||
bool "ST-Ericsson ABx500 family Mixed Signal Circuit gpio functions"
|
||||
depends on AB8500_CORE
|
||||
select GENERIC_PINCONF
|
||||
help
|
||||
Select this to enable the ABx500 family IC GPIO driver
|
||||
|
||||
config PINCTRL_AB8500
|
||||
bool "AB8500 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
config PINCTRL_AB8540
|
||||
bool "AB8540 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
config PINCTRL_AB9540
|
||||
bool "AB9540 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
config PINCTRL_AB8505
|
||||
bool "AB8505 pin controller driver"
|
||||
depends on PINCTRL_ABX500 && ARCH_U8500
|
||||
|
||||
endif
|
||||
|
||||
if (ARCH_U8500 || ARCH_NOMADIK)
|
||||
|
||||
config PINCTRL_NOMADIK
|
||||
bool "Nomadik pin controller driver"
|
||||
depends on ARCH_U8500 || ARCH_NOMADIK
|
||||
select PINMUX
|
||||
select PINCONF
|
||||
select GPIOLIB
|
||||
select OF_GPIO
|
||||
select GPIOLIB_IRQCHIP
|
||||
|
||||
config PINCTRL_STN8815
|
||||
bool "STN8815 pin controller driver"
|
||||
depends on PINCTRL_NOMADIK && ARCH_NOMADIK
|
||||
|
||||
config PINCTRL_DB8500
|
||||
bool "DB8500 pin controller driver"
|
||||
depends on PINCTRL_NOMADIK && ARCH_U8500
|
||||
|
||||
config PINCTRL_DB8540
|
||||
bool "DB8540 pin controller driver"
|
||||
depends on PINCTRL_NOMADIK && ARCH_U8500
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,10 @@
|
||||
# Nomadik family pin control drivers
|
||||
obj-$(CONFIG_PINCTRL_ABX500) += pinctrl-abx500.o
|
||||
obj-$(CONFIG_PINCTRL_AB8500) += pinctrl-ab8500.o
|
||||
obj-$(CONFIG_PINCTRL_AB8540) += pinctrl-ab8540.o
|
||||
obj-$(CONFIG_PINCTRL_AB9540) += pinctrl-ab9540.o
|
||||
obj-$(CONFIG_PINCTRL_AB8505) += pinctrl-ab8505.o
|
||||
obj-$(CONFIG_PINCTRL_NOMADIK) += pinctrl-nomadik.o
|
||||
obj-$(CONFIG_PINCTRL_STN8815) += pinctrl-nomadik-stn8815.o
|
||||
obj-$(CONFIG_PINCTRL_DB8500) += pinctrl-nomadik-db8500.o
|
||||
obj-$(CONFIG_PINCTRL_DB8540) += pinctrl-nomadik-db8540.o
|
||||
@@ -32,8 +32,8 @@
|
||||
#include <linux/pinctrl/machine.h>
|
||||
|
||||
#include "pinctrl-abx500.h"
|
||||
#include "core.h"
|
||||
#include "pinconf.h"
|
||||
#include "../core.h"
|
||||
#include "../pinconf.h"
|
||||
|
||||
/*
|
||||
* The AB9540 and AB8540 GPIO support are extended versions
|
||||
@@ -737,20 +737,6 @@ static int abx500_pmx_enable(struct pinctrl_dev *pctldev, unsigned function,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void abx500_pmx_disable(struct pinctrl_dev *pctldev,
|
||||
unsigned function, unsigned group)
|
||||
{
|
||||
struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev);
|
||||
const struct abx500_pingroup *g;
|
||||
|
||||
g = &pct->soc->groups[group];
|
||||
if (g->altsetting < 0)
|
||||
return;
|
||||
|
||||
/* FIXME: poke out the mux, set the pin to some default state? */
|
||||
dev_dbg(pct->dev, "disable group %s, %u pins\n", g->name, g->npins);
|
||||
}
|
||||
|
||||
static int abx500_gpio_request_enable(struct pinctrl_dev *pctldev,
|
||||
struct pinctrl_gpio_range *range,
|
||||
unsigned offset)
|
||||
@@ -799,7 +785,6 @@ static const struct pinmux_ops abx500_pinmux_ops = {
|
||||
.get_function_name = abx500_pmx_get_func_name,
|
||||
.get_function_groups = abx500_pmx_get_func_groups,
|
||||
.enable = abx500_pmx_enable,
|
||||
.disable = abx500_pmx_disable,
|
||||
.gpio_request_enable = abx500_gpio_request_enable,
|
||||
.gpio_disable_free = abx500_gpio_disable_free,
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user