On 07/28/14 01:39, Ivan T. Ivanov wrote: > I am working on proposal from Stephen Boyd to encode GPIO/MPP mode and > source select into combined function. Something like this one: > > #define PM8XXX_DIGITAL_IN 0 > #define PM8XXX_DIGITAL_OUT 1 > #define PM8XXX_DIGITAL_IN_OUT 2 > > ... > > /* mode and source select */ > #define PM8XXX_FUNCTION(m,s) ((m) << 16 | (s)) > > #define PM8921_GPIO1_14_KYPD_SNS PM8XXX_FUNCTION(PM8XXX_DIGITAL_IN, 1) > #define PM8921_GPIO9_14_KYPD_DRV PM8XXX_FUNCTION(PM8XXX_DIGITAL_OUT, 1) > #define PM8921_GPIO33_35_PWM PM8XXX_FUNCTION(PM8XXX_DIGITAL_OUT, 3) > > .. > > This isn't what I was suggesting at all. The function should be something like KYPD, PWM and those should just be defined to be 1 or 3. The mode should be some other property like input or output, and the driver should or the two together and put it into the register. Basically we shouldn't see any shifts or ors in the #defines, just convenient numbers that correspond to the value of the field in the register. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -- 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