Commit 2de68638 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull pin control updates from Linus Walleij:
 "Core changes:

   - Use DEFINE_SHOW_STORE_ATTRIBUTE() in debugfs entries

  New drivers:

   - Qualcomm PMIH0108, PMD8028, PMXR2230 and PM6450 pin control support

  Improvements:

   - Serious cleanup of the recently merged aw9523 driver

   - Fix PIN_CONFIG_BIAS_DISABLE handling in pinctrl-single

   - A slew of device tree binding cleanups

   - Support a bus clock in the Samsung driver"

* tag 'pinctrl-v6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (48 commits)
  pinctrl: bcm2835: Make pin freeing behavior configurable
  dt-bindings: pinctrl: qcom,pmic-gpio: Fix "comptaible" typo for PMIH0108
  pinctrl: qcom: pinctrl-sm7150: Fix sdc1 and ufs special pins regs
  dt-bindings: pinctrl: mediatek: mt7622: add "antsel" function
  dt-bindings: pinctrl: mediatek: mt7622: fix array properties
  pinctrl: samsung: drop redundant drvdata assignment
  pinctrl: samsung: support a bus clock
  dt-bindings: pinctrl: samsung: google,gs101-pinctrl needs a clock
  pinctrl: renesas: rzg2l: Limit 2.5V power supply to Ethernet interfaces
  pinctrl: renesas: r8a779h0: Add INTC-EX pins, groups, and function
  pinctrl: renesas: r8a779h0: Fix IRQ suffixes
  pinctrl: renesas: rzg2l: Remove extra space in function parameter
  dt-bindings: pinctrl: qcom,pmic-mpp: add support for PM8901
  pinctrl: pinconf-generic: print hex value
  pinctrl: realtek: fix module autoloading
  pinctrl: qcom: sm7150: fix module autoloading
  pinctrl: loongson2: fix module autoloading
  pinctrl: mediatek: fix module autoloading
  pinctrl: freescale: imx8ulp: fix module autoloading
  dt-bindings: pinctrl: qcom,pmic-gpio: Allow gpio-hog nodes
  ...
parents 568c98a0 83906257
Loading
Loading
Loading
Loading
+68 −45
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@ properties:
      the amount of cells must be specified as 2. See the below mentioned gpio
      binding representation for description of particular cells.

  gpio-ranges:
    maxItems: 1

  interrupt-controller: true

  interrupts:
@@ -75,8 +78,8 @@ patternProperties:
          function:
            description:
              A string containing the name of the function to mux to the group.
            enum: [emmc, eth, i2c, i2s, ir, led, flash, pcie, pmic, pwm, sd,
                   spi, tdm, uart, watchdog, wifi]
            enum: [antsel, emmc, eth, i2c, i2s, ir, led, flash, pcie, pmic, pwm,
                   sd, spi, tdm, uart, watchdog, wifi]

          groups:
            description:
@@ -90,6 +93,20 @@ patternProperties:
          - function

        allOf:
          - if:
              properties:
                function:
                  const: antsel
            then:
              properties:
                groups:
                  items:
                    enum: [antsel0, antsel1, antsel2, antsel3, antsel4, antsel5,
                           antsel6, antsel7, antsel8, antsel9, antsel10,
                           antsel11, antsel12, antsel13, antsel14, antsel15,
                           antsel16, antsel17, antsel18, antsel19, antsel20,
                           antsel21, antsel22, antsel23, antsel24, antsel25,
                           antsel26, antsel27, antsel28, antsel29]
          - if:
              properties:
                function:
@@ -97,6 +114,7 @@ patternProperties:
            then:
              properties:
                groups:
                  items:
                    enum: [emmc, emmc_rst]
          - if:
              properties:
@@ -105,6 +123,7 @@ patternProperties:
            then:
              properties:
                groups:
                  items:
                    enum: [esw, esw_p0_p1, esw_p2_p3_p4, rgmii_via_esw,
                           rgmii_via_gmac1, rgmii_via_gmac2, mdc_mdio]
          - if:
@@ -123,6 +142,7 @@ patternProperties:
            then:
              properties:
                groups:
                  items:
                    enum: [i2s_in_mclk_bclk_ws, i2s1_in_data, i2s2_in_data,
                           i2s3_in_data, i2s4_in_data, i2s_out_mclk_bclk_ws,
                           i2s1_out_data, i2s2_out_data, i2s3_out_data,
@@ -159,6 +179,7 @@ patternProperties:
            then:
              properties:
                groups:
                  items:
                    enum: [pcie0_0_waken, pcie0_1_waken, pcie1_0_waken,
                           pcie0_0_clkreq, pcie0_1_clkreq, pcie1_0_clkreq,
                           pcie0_pad_perst, pcie1_pad_perst, pcie_pereset,
@@ -178,6 +199,7 @@ patternProperties:
            then:
              properties:
                groups:
                  items:
                    enum: [pwm_ch1_0, pwm_ch1_1, pwm_ch1_2, pwm_ch2_0, pwm_ch2_1,
                           pwm_ch2_2, pwm_ch3_0, pwm_ch3_1, pwm_ch3_2, pwm_ch4_0,
                           pwm_ch4_1, pwm_ch4_2, pwm_ch4_3, pwm_ch5_0, pwm_ch5_1,
@@ -260,6 +282,7 @@ patternProperties:
          pins:
            description:
              An array of strings. Each string contains the name of a pin.
            items:
              enum: [GPIO_A, I2S1_IN, I2S1_OUT, I2S_BCLK, I2S_WS, I2S_MCLK, TXD0,
                     RXD0, SPI_WP, SPI_HOLD, SPI_CLK, SPI_MOSI, SPI_MISO, SPI_CS,
                     I2C_SDA, I2C_SCL, I2S2_IN, I2S3_IN, I2S4_IN, I2S2_OUT,
+38 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ properties:
          - qcom,pm6150-gpio
          - qcom,pm6150l-gpio
          - qcom,pm6350-gpio
          - qcom,pm6450-gpio
          - qcom,pm7250b-gpio
          - qcom,pm7325-gpio
          - qcom,pm7550ba-gpio
@@ -56,10 +57,12 @@ properties:
          - qcom,pma8084-gpio
          - qcom,pmc8180-gpio
          - qcom,pmc8180c-gpio
          - qcom,pmd8028-gpio
          - qcom,pmi632-gpio
          - qcom,pmi8950-gpio
          - qcom,pmi8994-gpio
          - qcom,pmi8998-gpio
          - qcom,pmih0108-gpio
          - qcom,pmk8350-gpio
          - qcom,pmk8550-gpio
          - qcom,pmm8155au-gpio
@@ -72,6 +75,7 @@ properties:
          - qcom,pmx55-gpio
          - qcom,pmx65-gpio
          - qcom,pmx75-gpio
          - qcom,pmxr2230-gpio

      - enum:
          - qcom,spmi-gpio
@@ -141,6 +145,7 @@ allOf:
              - qcom,pm8005-gpio
              - qcom,pm8450-gpio
              - qcom,pm8916-gpio
              - qcom,pmd8028-gpio
              - qcom,pmk8350-gpio
              - qcom,pmr735a-gpio
              - qcom,pmr735b-gpio
@@ -198,6 +203,7 @@ allOf:
          contains:
            enum:
              - qcom,pm6350-gpio
              - qcom,pm6450-gpio
              - qcom,pm8350c-gpio
    then:
      properties:
@@ -261,6 +267,7 @@ allOf:
              - qcom,pmc8180c-gpio
              - qcom,pmp8074-gpio
              - qcom,pms405-gpio
              - qcom,pmxr2230-gpio
    then:
      properties:
        gpio-line-names:
@@ -300,6 +307,21 @@ allOf:
          minItems: 1
          maxItems: 7

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pmih0108-gpio
    then:
      properties:
        gpio-line-names:
          minItems: 18
          maxItems: 18
        gpio-reserved-ranges:
          minItems: 1
          maxItems: 9

  - if:
      properties:
        compatible:
@@ -402,6 +424,10 @@ patternProperties:
            $ref: "#/$defs/qcom-pmic-gpio-state"
        additionalProperties: false

  "-hog(-[0-9]+)?$":
    required:
      - gpio-hog

$defs:
  qcom-pmic-gpio-state:
    type: object
@@ -417,6 +443,7 @@ $defs:
                 - gpio1-gpio10 for pm6150
                 - gpio1-gpio12 for pm6150l
                 - gpio1-gpio9 for pm6350
                 - gpio1-gpio9 for pm6450
                 - gpio1-gpio12 for pm7250b
                 - gpio1-gpio10 for pm7325
                 - gpio1-gpio8 for pm7550ba
@@ -447,9 +474,11 @@ $defs:
                 - gpio1-gpio22 for pm8994
                 - gpio1-gpio26 for pm8998
                 - gpio1-gpio22 for pma8084
                 - gpio1-gpio4 for pmd8028
                 - gpio1-gpio8 for pmi632
                 - gpio1-gpio2 for pmi8950
                 - gpio1-gpio10 for pmi8994
                 - gpio1-gpio18 for pmih0108
                 - gpio1-gpio4 for pmk8350
                 - gpio1-gpio6 for pmk8550
                 - gpio1-gpio10 for pmm8155au
@@ -464,6 +493,7 @@ $defs:
                                            and gpio11)
                 - gpio1-gpio16 for pmx65
                 - gpio1-gpio16 for pmx75
                 - gpio1-gpio12 for pmxr2230

        items:
          pattern: "^gpio([0-9]+)$"
@@ -545,6 +575,7 @@ $defs:

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>

    pm8921_gpio: gpio@150 {
@@ -568,5 +599,12 @@ examples:
          power-source = <PM8921_GPIO_S4>;
        };
      };

      otg-hog {
        gpio-hog;
        gpios = <35 GPIO_ACTIVE_HIGH>;
        output-high;
        line-name = "otg-gpio";
      };
    };
...
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ properties:
              - qcom,pm8038-mpp
              - qcom,pm8058-mpp
              - qcom,pm8821-mpp
              - qcom,pm8901-mpp
              - qcom,pm8917-mpp
              - qcom,pm8921-mpp
          - const: qcom,ssbi-mpp
+18 −34
Original line number Diff line number Diff line
@@ -72,40 +72,24 @@ $defs:
        description:
          Specify the alternative function to be configured for the specified
          pins.
        enum: [ gpio, atest_char, atest_char0, atest_char1, atest_char2,
                atest_char3, atest_usb0, atest_usb00, atest_usb01, atest_usb02,
                atest_usb03, audio_ref, cam_mclk, cci_async, cci_i2c,
                cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
                cmu_rng0, cmu_rng1, cmu_rng2, cmu_rng3, coex_uart1, cri_trng,
                cri_trng0, cri_trng1, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1,
                dp0_hot, gcc_gp1, gcc_gp2, gcc_gp3, host2wlan_sol, ibi_i3c,
                jitter_bist, mdp_vsync, mdp_vsync0, mdp_vsync1, mdp_vsync2,
                mdp_vsync3, mi2s0_data0, mi2s0_data1, mi2s0_sck, mi2s0_ws,
                mi2s2_data0, mi2s2_data1, mi2s2_sck, mi2s2_ws, mi2s_mclk0,
                mi2s_mclk1, nav_gpio0, nav_gpio1, nav_gpio2, pcie0_clk,
                phase_flag0, phase_flag1, phase_flag10, phase_flag11,
                phase_flag12, phase_flag13, phase_flag14, phase_flag15,
                phase_flag16, phase_flag17, phase_flag18, phase_flag19,
                phase_flag2, phase_flag20, phase_flag21, phase_flag22,
                phase_flag23, phase_flag24, phase_flag25, phase_flag26,
                phase_flag27, phase_flag28, phase_flag29, phase_flag3,
                phase_flag30, phase_flag31, phase_flag4, phase_flag5,
                phase_flag6, phase_flag7, phase_flag8, phase_flag9,
                pll_bist, pll_clk, prng_rosc0, prng_rosc1, prng_rosc2,
                prng_rosc3, qdss_cti, qdss_gpio, qdss_gpio0, qdss_gpio1,
                qdss_gpio10, qdss_gpio11, qdss_gpio12, qdss_gpio13, qdss_gpio14,
                qdss_gpio15, qdss_gpio2, qdss_gpio3, qdss_gpio4, qdss_gpio5,
                qdss_gpio6, qdss_gpio7, qdss_gpio8, qdss_gpio9, qlink0_enable,
                qlink0_request, qlink0_wmss, qlink1_enable, qlink1_request,
                qlink1_wmss, qlink2_enable, qlink2_request, qlink2_wmss,
                qup0_se0, qup0_se1, qup0_se2, qup0_se3, qup0_se4, qup0_se5,
                qup0_se6, qup0_se7, qup1_se0, qup1_se1, qup1_se2, qup1_se3,
                qup1_se4, qup1_se5, qup1_se6, sd_write, tb_trig, tgu_ch0,
                tgu_ch1, tgu_ch2, tgu_ch3, tmess_prng0, tmess_prng1,
                tmess_prng2, tmess_prng3, tsense_pwm1, tsense_pwm2, uim0_clk,
                uim0_data, uim0_present, uim0_reset, uim1_clk, uim1_data,
                uim1_present, uim1_reset, usb0_hs, usb0_phy, vfr_0, vfr_1,
                vsense_trigger ]
        enum: [ gpio, atest_char, atest_usb0, audio_ref_clk, cam_mclk,
                cci_async_in0, cci_i2c, cci, cmu_rng, coex_uart1_rx,
                coex_uart1_tx, cri_trng, dbg_out_clk, ddr_bist,
                ddr_pxi0_test, ddr_pxi1_test, gcc_gp1_clk, gcc_gp2_clk,
                gcc_gp3_clk, host2wlan_sol, ibi_i3c_qup0, ibi_i3c_qup1,
                jitter_bist_ref, mdp_vsync0_out, mdp_vsync1_out,
                mdp_vsync2_out, mdp_vsync3_out, mdp_vsync, nav,
                pcie0_clk_req, phase_flag, pll_bist_sync, pll_clk_aux,
                prng_rosc, qdss_cti_trig0, qdss_cti_trig1, qdss_gpio,
                qlink0_enable, qlink0_request, qlink0_wmss_reset,
                qup0_se0, qup0_se1, qup0_se2, qup0_se3, qup0_se4,
                qup1_se0, qup1_se1, qup1_se2, qup1_se2_l2, qup1_se3,
                qup1_se4, sd_write_protect, tb_trig_sdc1, tb_trig_sdc2,
                tgu_ch0_trigout, tgu_ch1_trigout, tgu_ch2_trigout,
                tgu_ch3_trigout, tmess_prng, tsense_pwm1_out,
                tsense_pwm2_out, uim0, uim1, usb0_hs_ac, usb0_phy_ps,
                vfr_0_mira, vfr_0_mirb, vfr_1, vsense_trigger_mirnat,
                wlan1_adc_dtest0, wlan1_adc_dtest1 ]

        required:
          - pins
+21 −0
Original line number Diff line number Diff line
@@ -73,6 +73,13 @@ properties:
    minItems: 1
    maxItems: 2

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: pclk

  wakeup-interrupt-controller:
    $ref: samsung,pinctrl-wakeup-interrupt.yaml

@@ -120,6 +127,20 @@ required:

allOf:
  - $ref: pinctrl.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: google,gs101-pinctrl
    then:
      required:
        - clocks
        - clock-names
    else:
      properties:
        clocks: false
        clock-names: false

  - if:
      properties:
        compatible:
Loading