On Fri, Dec 4, 2015 at 11:37 PM, Piotr Madalinski <piotr.madalin...@yahoo.pl> wrote: > Hi, > I'm hacking my openwrt router and look for a proper way to make a serial > driver call a platform-specific function such as this: > > static void ath79_enable_uart(void) { > if (soc_is_ar933x()) > ath79_gpio_function_enable(AR933X_GPIO_FUNC_UART_EN); > } > > and > > static void ath79_disable_uart(void) { > if (soc_is_ar933x()) > ath79_gpio_function_disable(AR933X_GPIO_FUNC_UART_EN); > } > > on driver bind/unbind instead of in platform initialization code, in order > to be able to > reuse the pins as gpio, without disabling uart entirely. > > My current solution uses platform_data to pass function pointers, > and invokes them in driver's request_port and release_port functions > respectively. > > And, oddly enough, the one in release_port gets invoked on unbind but the > other one > isn't called on bind (I had to add a call to it in probe to get it working). > > So I wonder, if the request/release functions are a proper place for such a > callback, > or is there some better, more 'canonical' solution.
pinctrl framework / API? > > Also, I could attach my patches but it is my first post here, and they are a > bit openwrt specific, > and I don't want to be yelled upon ;-). -- With Best Regards, Andy Shevchenko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/