From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko =?ISO-8859-1?Q?St=FCbner?= Subject: Re: [PATCH] soc/rockchip: add handler for usb-uart functionality Date: Fri, 10 Jul 2015 23:07:26 +0200 Message-ID: <1748257.PI6hyOPu9L@diego> References: <1574322.mYky5df1dK@diego> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1574322.mYky5df1dK@diego> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+glpar-linux-rockchip=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Arnd Bergmann Cc: amstan-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Kevin Hilman , dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Yunzhi Li , Olof Johansson List-Id: linux-rockchip.vger.kernel.org QW0gTWl0dHdvY2gsIDguIEp1bGkgMjAxNSwgMjE6MDA6MDYgc2NocmllYiBIZWlrbyBTdMO8Ym5l cjoKPiBNb3N0IG5ld2VyIFJvY2tjaGlwIFNvQ3MgcHJvdmlkZSB0aGUgcG9zc2liaWxpdHkgdG8g dXNlIGEgdXNiLXBoeQo+IGFzIHBhc3N0aHJvdWdoIGZvciB0aGUgZGVidWcgdWFydCAodWFydDIp LCBtYWtpbmcgaXQgcG9zc2libGUgdG8KPiBnZXQgY29uc29sZSBvdXRwdXQgd2l0aG91dCBuZWVk aW5nIHRvIG9wZW4gdGhlIGRldmljZS4KPiAKPiBUaGlzIHBhdGNoIGFkZHMgYW4gZWFybHlfaW5p dGNhbGwgdG8gZW5hYmxlIHRoaXMgZnVuY3Rpb25hbGl0eQo+IGNvbmRpdGlvbmFsbHkgdmlhIHRo ZSBjb21tYW5kbGluZSBhbmQgYWxzbyBkaXNhYmxlcyB0aGUgY29ycmVzcG9uZGluZwo+IHVzYiBj b250cm9sbGVyIGluIHRoZSBkZXZpY2V0cmVlLgo+IAo+IEN1cnJlbnRseSBvbmx5IGRhdGEgZm9y IHRoZSByazMyODggaXMgcHJvdmlkZWQsIGJ1dCBhdCBsZWFzdCB0aGUKPiByazMxODggYW5kIGFy bTY0IHJrMzM2OCBhbHNvIHByb3ZpZGUgdGhpcyBmdW5jdGlvbmFsaXR5IGFuZCB3aWxsIGJlCj4g ZW5hYmxlZCBsYXRlci4KPiAKPiBPbiBhIHNwbGljZWQgdXNiIGNhYmxlIHRoZSBzaWduYWxzIGFy ZSB0eCBvbiB3aGl0ZSB3aXJlKEQrKSBhbmQKPiByeCBvbiBncmVlbiB3aXJlKEQtKS4KPiAKPiBT aWduZWQtb2ZmLWJ5OiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPgoKZHVtcGluZyBz b21lIHRob3VnaHRzIHRoYXQgc3RlbSBmcm9tIGNvbW1lbnRzIGluIG15IGcrIHBvc3QgYWJvdXQg dGhpczoKCgpBcm5kIEJlcmdtYW5uLCB5ZXN0ZXJkYXkgMTk6NDA6CldvdWxkIGl0IGhlbHAgdG8g bW92ZSB0aGlzIGNvZGUgaW50byB0aGUgY29uc29sZSBpbml0IHNlY3Rpb24gb2YgdGhlIFVBUlQg CmRyaXZlciB0byBhdm9pZCBsb3NpbmcgdGhlIGluaXRpYWwgb3V0cHV0P++7vwoKCkhlaWtvIFN0 w7xibmVyLCB5ZXN0ZXJkYXkgMjA6MDgKSSBkb24ndCB0aGluayBzby4gVGhlIGZ1bmN0aW9uYWxp dHkgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgdWFydCBpdHNlbGYgLSAKaW4gZmFjdCBmb3Ig dGhlIHN5c3RlbSBldmVyeXRoaW5nIHN0YXlzIHRoZSBzYW1lIC0gb25seSB0aGUgcm91dGluZyBi ZWNvbWVzIApkaWZmZXJlbnQuIEl0IHNob3VsZCBldmVuIHdvcmsgd2l0aCBlYXJseXByaW50ay9l YXJseWNvbi4KClRoZSBvbmx5IG91dHB1dCB5b3UgbG9vc2UgaXMgdXAgdG8gdGhlIHBvaW50IHdo ZW4gdGhlIGVhcmx5X2luaXRjYWxsIGlzIApleGVjdXRlZCAtIHdoaWNoIGlzIGFyb3VuZCB0aGUg c21wIGJyaW5ndXAgdGltZS4gQW5kIEkgZ3Vlc3MgaWYgc29tZWJvZHkgaXMgCmRvaW5nIGtlcm5l bCBjaGFuZ2VzIGZvciB0aGlzIGVhcmx5IHN0YWdlLCB0aGV5IHdpbGwgcHJvYmFibHkgdXNlIGEg Ym9hcmQgd2l0aCAKYSByZWFsIHVhcnQgb3IgbW9kaWZ5IHRoZWlyIHVib290IHRvIGFscmVhZHkg YWxzbyBzZXQgdGhpcyBvcHRpb24u77u/CgoKQXJuZCBCZXJnbWFubiwgeWVzdGVyZGF5IDIwOjUy Cklzbid0IGVhcmx5X2luaXRjYWxsIC9tdWNoLyBsYXRlciB0aGFuIGNvbnNvbGVfaW5pdCwgb3Ig ZXZlbiBlYXJseWNvbj8KVGhlIGNvbnNvbGUgb3V0cHV0IGdldHMgYnVmZmVyZWQgdW50aWwgdGhl IGZpcnN0IGNvbnNvbGUgZ2V0cyBmb3VuZCBhbmQgaXMgdGhlbiAKZmx1c2hlZCB0byB0aGF0LiBJ ZiB5b3Ugc3dpdGNoIHRoZSBNVVgganVzdCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIGNvbnNvbGUs IHlvdSAKc2hvdWxkIG5vdCBsb3NlIGFueXRoaW5nLCBhbmQgYWxzbyBwdXQgdGhpcyBjb2RlIGlu IGEgbW9yZSBuYXR1cmFsIGxvY2F0aW9uLu+7vwoKCkhlaWtvIFN0w7xibmVyLCB0b2RheSAyMzow MwpZZXAgYXMgSSBzYWlkLCB0d2kgc3dpdGNoIGN1cnJlbnRseSBydW5zIGFyb3VuZCB0aGUgdGlt ZSBvZiB0aGUgc21wIGJyaW5ndXAgLiAKSSdtIHByb2JhYmx5IGp1c3QgZGFmdCwgYnV0IGFsc28g c3RpbGwgbm90IHN1cmUgaG93IHRoaXMgc2hvdWxkIGZpdCBpbnRvIHRoZSAKdWFydCBkcml2ZXIv Y29uc29sZSBzdHVmZi4gRXNwZWNpYWxseSBhcyBpdCBpcyBub3QgZXZlbiBhIHByb3BlcnR5IG9m IHRoZSAKKGRlc2lnbndhcmUpIHVhcnQgaXBzLCBidXQgaW5zdGVhZCBpdCBtaWdodCBldmVuIGJl IG1vcmUgYSBwcm9wZXJ0eSBvZiB0aGUgdXNiIApwaHkuIEluIHRlcm1zIG9mIG5hdHVyYWwgbG9j YXRpb24sIHRoZSB1c2JwaHkgZHJpdmVyIG1pZ2h0IHRoZW4gYmUgYSBtb3JlIApzdWl0YWJsZSBw b3NpdGlvbj8KCkluIHRlcm1zIG9mIHdoZW4gdG8gcnVuLCBpdCBhbHNvIGxvb2tzIGxpa2UgZWFy bHlfaW5pdGNhbGwgaXMgb25lIG9mIHRoZSAKZWFybGllc3QgdGltZXMgdG8gcnVuLCBhcyB0aGUg Y29kZSBuZWVkcyBzeXNjb25zLCBkZXZpY2V0cmVlIG1hdGNoaW5nIGFuZCBhbHNvIApkZXZpY2V0 cmVlIHVwZGF0ZXMuCgpJZiBqdXN0IHRoZSByZWd1bGFyIGNvbnNvbGUgaXMgaW5jbHVkZWQsIG5v dGhpbmcgaXMgbG9zdCBhbmQgSSBndWVzcyB3aGVuIApzb21lYm9keSBuZWVkcyB0byB0b3VjaCAo YW5kIGRlYnVnKSBzdWNoIGxvdy1sb3ctbGV2ZWwgcGFydHMgbGlrZSBiZWZvcmUgdGhlIApzbXAg YnJpbmd1cCB0aGV5IHdvbid0IGRvIGl0IG9uIGEgYm9hcmQgd2l0aG91dCBhIHJlYWwgc2VyaWFs IHBvcnQgSSBndWVzcy4KCkkgZ3Vlc3Mgd2Ugc2hvdWxkIGFsc28gbW92ZSB0aGlzIHRvIGEgbWFp bGluZyBsaXN0IC4uLiBJIGd1ZXNzIEknbGwganVzdCBjb3B5IApvdXIgdGhyZWFkIGhlcmUgaW50 byBhIHJlcGx5IHRvIG15IHBhdGNoIDstKSAu77u/CgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4 LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: heiko@sntech.de (Heiko =?ISO-8859-1?Q?St=FCbner?=) Date: Fri, 10 Jul 2015 23:07:26 +0200 Subject: [PATCH] soc/rockchip: add handler for usb-uart functionality In-Reply-To: <1574322.mYky5df1dK@diego> References: <1574322.mYky5df1dK@diego> Message-ID: <1748257.PI6hyOPu9L@diego> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Am Mittwoch, 8. Juli 2015, 21:00:06 schrieb Heiko St?bner: > Most newer Rockchip SoCs provide the possibility to use a usb-phy > as passthrough for the debug uart (uart2), making it possible to > get console output without needing to open the device. > > This patch adds an early_initcall to enable this functionality > conditionally via the commandline and also disables the corresponding > usb controller in the devicetree. > > Currently only data for the rk3288 is provided, but at least the > rk3188 and arm64 rk3368 also provide this functionality and will be > enabled later. > > On a spliced usb cable the signals are tx on white wire(D+) and > rx on green wire(D-). > > Signed-off-by: Heiko Stuebner dumping some thoughts that stem from comments in my g+ post about this: Arnd Bergmann, yesterday 19:40: Would it help to move this code into the console init section of the UART driver to avoid losing the initial output?? Heiko St?bner, yesterday 20:08 I don't think so. The functionality has nothing to do with the uart itself - in fact for the system everything stays the same - only the routing becomes different. It should even work with earlyprintk/earlycon. The only output you loose is up to the point when the early_initcall is executed - which is around the smp bringup time. And I guess if somebody is doing kernel changes for this early stage, they will probably use a board with a real uart or modify their uboot to already also set this option.? Arnd Bergmann, yesterday 20:52 Isn't early_initcall /much/ later than console_init, or even earlycon? The console output gets buffered until the first console gets found and is then flushed to that. If you switch the MUX just before registering the console, you should not lose anything, and also put this code in a more natural location.? Heiko St?bner, today 23:03 Yep as I said, twi switch currently runs around the time of the smp bringup . I'm probably just daft, but also still not sure how this should fit into the uart driver/console stuff. Especially as it is not even a property of the (designware) uart ips, but instead it might even be more a property of the usb phy. In terms of natural location, the usbphy driver might then be a more suitable position? In terms of when to run, it also looks like early_initcall is one of the earliest times to run, as the code needs syscons, devicetree matching and also devicetree updates. If just the regular console is included, nothing is lost and I guess when somebody needs to touch (and debug) such low-low-level parts like before the smp bringup they won't do it on a board without a real serial port I guess. I guess we should also move this to a mailing list ... I guess I'll just copy our thread here into a reply to my patch ;-) .?