Hi, I have accidentally pressed send in the earlier message. On Wed, 2014-07-23 at 15:47 +0300, Ivan T. Ivanov wrote: > On Tue, 2014-07-22 at 14:46 -0700, Bjorn Andersson wrote: > > On Thu, Jul 17, 2014 at 12:41 PM, Ivan T. Ivanov <iivanov@xxxxxxxxxx> wrote: > > > From: "Ivan T. Ivanov" <iivanov@xxxxxxxxxx> > > > > > > > Hi Ivan, > > > > Sorry for the slow response, I wanted to respin my pm8xxx-gpio driver to figure > > out some resonable answers to you. > > > > <snip> > > > > > > PM8018, PM8038, PM8058, PM8917, PM8921 pin controller hardware > > > support only one function 'gpio'. Currently GPIO's will > > > support only 'normal' mode. Rest of the modes will be added > > > later, if needed. > > > > > > > This is not true. > > > > As I said before, there is no such thing as "pin controller hardware"; This is matter of interpretation :-) > both on > > pm8xxx and qpnp-pin there are two different HW blocks, one for GPIO and one for > > MPP. And if you look in your pinconf_set function you will see that they are > > very different. I bet that the hardware blocks are almost identical, just register map is different. > > > > I'm still trying to figure out the correct pinmux mapping for the various > > pmics, but the current indication is a list that looks like this: > > "gpio" > > "paired" > > "ext_reg_en" > > "ext_smps_en" > > "fclk" > > "kypd_drv" > > "kypd_sns" > > "lpa" > > "lpg" > > "mp3_clk" > > "sleep_clk" > > "uart" > > "uim" > > "upl" > > Ok, I see. But lets make things simpler. It seems that "uim" could be "SDC_UIM_VBIAS" on DB8074, which looks like MPP in analog-output mode/function, with additional selection for voltage level (qcom,aout?) Closest to "uart" function, that I have found, is that one of the SPI buses on the above board is level translated trough several MPP's, but this still did not make them act like a UART. However, I seems that some of the GPIO's could act like clock and PWM sources. > > I haven't looked through the dts files for 8974 and 8084, but it's not possible > > to describe the previous Qualcomm reference formfactor devices (MTP) with only > > "gpio". I believe that these DTS files are using qcom,mode(DIG_IN|DIG_OUT|AIN|AOUT..) and qcom,src-sel to select desired function. For example: apq8074-dragonboard: /* GPIO 1 */ qcom,mode = <0> qcom,src-sel = <0> apq8084-cdp: qcom,mode = <1>; /* Digital output */ qcom,src-sel = <2>; /* Special Function 1=LPG 3 */ apq8084-mtp: /* NFC clk request */ qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ apq8084-sbc: /* BACKLIGHT2_PWM */ qcom,mode = <1>; /* Digital output */ qcom,src-sel = <2>; /* Special Function 1=LPG 5 */ apq8084-sbc: /* DIV_CLK3 SLEEP_CLK */ qcom,mode = <1>; /* Digital output */ qcom,src-sel = <3>; /* Function 2 */ ... I could just guess what the functions 1 and 2 means. In which case GPIO functions could be gpio, keypad, clk, pwm/lpg, ... Rest of the pinctrl parameters prosed looks fine. Thanks, Ivan -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html