----- Mail original ----- De: "Linus Walleij" <linus.walleij@xxxxxxxxxx> > @@ -2415,7 +2411,13 @@ static int pxa_udc_probe(struct platform_device *pdev) > { > struct resource *regs; > struct pxa_udc *udc = &memory; > - int retval = 0, gpio; > + struct pxa2xx_udc_mach_info *mach = dev_get_platdata(&pdev->dev); > + int retval = 0; > + > + if (mach) { > + udc->gpiod = gpio_to_desc(mach->gpio_pullup); > + udc->mach = mach; > + } > } else { > udv->gpiod = devm_gpiod_get(&pdev->dev, ...); > } > Here you can also use the flags. Yeah, but my problem is in the if statement, not in the else. The else is for the DT/ACPI cases, in which there is no problem. On the other hand, the "if" is for the legacy platform_data cases which bother me. The mach info contains : - gpio_pullup : number of the gpio - gpio_pullup_inverted : the active low state What I would have needed would be something like : if (mach) { udc->gpiod = gpio_to_desc(mach->gpio_pullup); gpiod_MAGIC_FUNC_set_flags(udc->gpiod, mach->gpio_pullup_inverted ? ACTIVE_LOW : 0); udc->mach = mach; } else { udv->gpiod = devm_gpiod_get(&pdev->dev, ...); } The "MAGIC_FUNC" is what I'm missing here. And I agree this is something that is bound in electronics, and eventually will have to be shifted to platform code. The porting issue I have is that I don't want the dependency of changing *all* pxa27x machines as a dependency for a patch to pxa27x_udc to support device-tree. Or alternatively have something like : udc->gpiod = gpio_to_desc_with_flags(mach->gpio_pullup, flags). Or another way, to enable a smooth transition without the dependency. Even I have not found any machine code using this inverted flag, I might have overlooked something, and I'm not feeling confortable killing a platform because I made a wrong decision. Cheers. -- Robert -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html