From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Genoud Subject: Re: [PATCH v3 4/9] serial: atmel: Use common rs485 device tree parsing function Date: Tue, 27 Jun 2017 10:27:25 +0200 Message-ID: References: <20170626090803.10981-1-u.kleine-koenig@pengutronix.de> <20170626090803.10981-5-u.kleine-koenig@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Nicolas Ferre , =?UTF-8?Q?Uwe_Kleine-K=c3=b6nig?= , linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org, Sascha Hauer , Alexandre Belloni , kernel@pengutronix.de List-Id: devicetree@vger.kernel.org T24gMjcvMDYvMjAxNyAwOTo0MSwgTmljb2xhcyBGZXJyZSB3cm90ZToKPiBPbiAyNi8wNi8yMDE3 IGF0IDExOjA3LCBVd2UgS2xlaW5lLUvDtm5pZyB3cm90ZToKPj4gRnJvbTogU2FzY2hhIEhhdWVy IDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgo+Pgo+PiBXZSBqdXN0IGdvdCBhIGNvbW1vbiBoZWxw ZXIgZm9yIHBhcnNpbmcgdGhlIHJzNDg1IHNwZWNpZmljCj4+IGRldmljZSB0cmVlIHByb3BlcnRp ZXMuIFVzZSBpdCBhbmQgZHJvcCB0aGUgb3BlbiBjb2RlZCBwYXJzZXIuCj4+Cj4+IE5vdGUgdGhh dCB0aGVyZSBpcyBhIHNtYWxsIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgcmVtb3ZlZCBhbmQgdGhl IG5vdwo+PiB1c2VkIGltcGxlbWVudGF0aW9uOiBUaGUgZm9ybWVyIGNsZWFyZWQgZmxhZ3MgdG8g MCBpZiByczQ4NS1ydHMtZGVsYXkKPj4gd2FzIGdpdmVuLCB0aGUgY29tbW9uIGhlbHBlciBjbGVh cnMgU0VSX1JTNDg1X1JYX0RVUklOR19UWCBhbmQKPj4gU0VSX1JTNDg1X0VOQUJMRUQgb25seSBi dXQgYWx3YXlzIHdoaWNoIG1ha2VzIG1vcmUgc2Vuc2UuCj4gCj4gU3VyZToKPiBBY2tlZC1ieTog Tmljb2xhcyBGZXJyZSA8bmljb2xhcy5mZXJyZUBtaWNyb2NoaXAuY29tPgo+IAo+IFRoYW5rcyBT YXNoYSBhbmQgVXdlIQo+IApBY2tlZC1ieTogUmljaGFyZCBHZW5vdWQgPHJpY2hhcmQuZ2Vub3Vk QGdtYWlsLmNvbT4KClRoYW5rcyAhCj4+IFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5o YXVlckBwZW5ndXRyb25peC5kZT4KPj4gW3VrbGVpbmVrOiBwb2ludCBvdXQgc2VtYW50aWMgY2hh bmdlIGluIGNvbW1pdCBsb2ddCj4+IFNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUtS8O2bmlnIDx1 LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+Cj4+IC0tLQo+PiAgZHJpdmVycy90dHkvc2Vy aWFsL2F0bWVsX3NlcmlhbC5jIHwgMjUgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyNCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9hdG1lbF9zZXJpYWwuYyBiL2RyaXZlcnMvdHR5L3Nl cmlhbC9hdG1lbF9zZXJpYWwuYwo+PiBpbmRleCA5MzdkNjdmMjJmYmEuLjI0NWQ5YzIyN2FkNSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCj4+ICsrKyBi L2RyaXZlcnMvdHR5L3NlcmlhbC9hdG1lbF9zZXJpYWwuYwo+PiBAQCAtMTY4NCwyOSArMTY4NCw2 IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2luaXRfcHJvcGVydHkoc3RydWN0IGF0bWVsX3VhcnRfcG9y dCAqYXRtZWxfcG9ydCwKPj4gIAl9Cj4+ICB9Cj4+ICAKPj4gLXN0YXRpYyB2b2lkIGF0bWVsX2lu aXRfcnM0ODUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKPj4gLQkJCQlzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+PiAtewo+PiAtCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5k ZXYub2Zfbm9kZTsKPj4gLQo+PiAtCXN0cnVjdCBzZXJpYWxfcnM0ODUgKnJzNDg1Y29uZiA9ICZw b3J0LT5yczQ4NTsKPj4gLQl1MzIgcnM0ODVfZGVsYXlbMl07Cj4+IC0KPj4gLQkvKiByczQ4NSBw cm9wZXJ0aWVzICovCj4+IC0JaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KG5wLCAicnM0 ODUtcnRzLWRlbGF5IiwKPj4gLQkJCQkgICAgICAgcnM0ODVfZGVsYXksIDIpID09IDApIHsKPj4g LQkJcnM0ODVjb25mLT5kZWxheV9ydHNfYmVmb3JlX3NlbmQgPSByczQ4NV9kZWxheVswXTsKPj4g LQkJcnM0ODVjb25mLT5kZWxheV9ydHNfYWZ0ZXJfc2VuZCA9IHJzNDg1X2RlbGF5WzFdOwo+PiAt CQlyczQ4NWNvbmYtPmZsYWdzID0gMDsKPj4gLQl9Cj4+IC0KPj4gLQlpZiAob2ZfZ2V0X3Byb3Bl cnR5KG5wLCAicnM0ODUtcngtZHVyaW5nLXR4IiwgTlVMTCkpCj4+IC0JCXJzNDg1Y29uZi0+Zmxh Z3MgfD0gU0VSX1JTNDg1X1JYX0RVUklOR19UWDsKPj4gLQo+PiAtCWlmIChvZl9nZXRfcHJvcGVy dHkobnAsICJsaW51eCxyczQ4NS1lbmFibGVkLWF0LWJvb3QtdGltZSIsIE5VTEwpKQo+PiAtCQly czQ4NWNvbmYtPmZsYWdzIHw9IFNFUl9SUzQ4NV9FTkFCTEVEOwo+PiAtfQo+PiAtCj4+ICBzdGF0 aWMgdm9pZCBhdG1lbF9zZXRfb3BzKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCj4+ICB7Cj4+ICAJ c3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCA9IHRvX2F0bWVsX3VhcnRfcG9ydChw b3J0KTsKPj4gQEAgLTIzOTAsNyArMjM2Nyw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfaW5pdF9wb3J0 KHN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKmF0bWVsX3BvcnQsCj4+ICAJYXRtZWxfaW5pdF9wcm9w ZXJ0eShhdG1lbF9wb3J0LCBwZGV2KTsKPj4gIAlhdG1lbF9zZXRfb3BzKHBvcnQpOwo+PiAgCj4+ IC0JYXRtZWxfaW5pdF9yczQ4NShwb3J0LCBwZGV2KTsKPj4gKwlvZl9nZXRfcnM0ODVfbW9kZShw ZGV2LT5kZXYub2Zfbm9kZSwgJnBvcnQtPnJzNDg1KTsKPj4gIAo+PiAgCXBvcnQtPmlvdHlwZQkJ PSBVUElPX01FTTsKPj4gIAlwb3J0LT5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiB8IFVQRl9J T1JFTUFQOwo+Pgo+IAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: richard.genoud@gmail.com (Richard Genoud) Date: Tue, 27 Jun 2017 10:27:25 +0200 Subject: [PATCH v3 4/9] serial: atmel: Use common rs485 device tree parsing function In-Reply-To: References: <20170626090803.10981-1-u.kleine-koenig@pengutronix.de> <20170626090803.10981-5-u.kleine-koenig@pengutronix.de> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 27/06/2017 09:41, Nicolas Ferre wrote: > On 26/06/2017 at 11:07, Uwe Kleine-K?nig wrote: >> From: Sascha Hauer >> >> We just got a common helper for parsing the rs485 specific >> device tree properties. Use it and drop the open coded parser. >> >> Note that there is a small difference between the removed and the now >> used implementation: The former cleared flags to 0 if rs485-rts-delay >> was given, the common helper clears SER_RS485_RX_DURING_TX and >> SER_RS485_ENABLED only but always which makes more sense. > > Sure: > Acked-by: Nicolas Ferre > > Thanks Sasha and Uwe! > Acked-by: Richard Genoud Thanks ! >> Signed-off-by: Sascha Hauer >> [ukleinek: point out semantic change in commit log] >> Signed-off-by: Uwe Kleine-K?nig >> --- >> drivers/tty/serial/atmel_serial.c | 25 +------------------------ >> 1 file changed, 1 insertion(+), 24 deletions(-) >> >> diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c >> index 937d67f22fba..245d9c227ad5 100644 >> --- a/drivers/tty/serial/atmel_serial.c >> +++ b/drivers/tty/serial/atmel_serial.c >> @@ -1684,29 +1684,6 @@ static void atmel_init_property(struct atmel_uart_port *atmel_port, >> } >> } >> >> -static void atmel_init_rs485(struct uart_port *port, >> - struct platform_device *pdev) >> -{ >> - struct device_node *np = pdev->dev.of_node; >> - >> - struct serial_rs485 *rs485conf = &port->rs485; >> - u32 rs485_delay[2]; >> - >> - /* rs485 properties */ >> - if (of_property_read_u32_array(np, "rs485-rts-delay", >> - rs485_delay, 2) == 0) { >> - rs485conf->delay_rts_before_send = rs485_delay[0]; >> - rs485conf->delay_rts_after_send = rs485_delay[1]; >> - rs485conf->flags = 0; >> - } >> - >> - if (of_get_property(np, "rs485-rx-during-tx", NULL)) >> - rs485conf->flags |= SER_RS485_RX_DURING_TX; >> - >> - if (of_get_property(np, "linux,rs485-enabled-at-boot-time", NULL)) >> - rs485conf->flags |= SER_RS485_ENABLED; >> -} >> - >> static void atmel_set_ops(struct uart_port *port) >> { >> struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); >> @@ -2390,7 +2367,7 @@ static int atmel_init_port(struct atmel_uart_port *atmel_port, >> atmel_init_property(atmel_port, pdev); >> atmel_set_ops(port); >> >> - atmel_init_rs485(port, pdev); >> + of_get_rs485_mode(pdev->dev.of_node, &port->rs485); >> >> port->iotype = UPIO_MEM; >> port->flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP; >> > >