Hi Songjun,In legacy platform in open source, it only defined asc1 in dts.
On Wed, Aug 8, 2018 at 6:05 AM Wu, Songjun <songjun.wu@xxxxxxxxxxxxxxx> wrote:
On 8/7/2018 3:33 PM, Geert Uytterhoeven wrote:Why does the driver need to use which serial instance is used for the console?
On Fri, Aug 3, 2018 at 5:04 AM Songjun Wu <songjun.wu@xxxxxxxxxxxxxxx> wrote:Thanks for your comment.
Get serial id from dts.Thanks for your patch!
"#ifdef CONFIG_LANTIQ" preprocessor is used because LTQ_EARLY_ASC
macro is defined in lantiq_soc.h.
lantiq_soc.h is in arch path for legacy product support.
arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
If "#ifdef preprocessor" is changed to
"if (IS_ENABLED(CONFIG_LANTIQ))", when CONFIG_LANTIQ is not enabled,
code using LTQ_EARLY_ASC is compiled.
Compilation will fail for no LTQ_EARLY_ASC defined.
Signed-off-by: Songjun Wu <songjun.wu@xxxxxxxxxxxxxxx>
@@ -699,9 +700,19 @@ lqasc_probe(struct platform_device *pdev)Please note that not providing a fallback here makes life harder when using
return -ENODEV;
}
- /* check if this is the console port */
- if (mmres->start != CPHYSADDR(LTQ_EARLY_ASC))
- line = 1;
+ /* get serial id */
+ line = of_alias_get_id(node, "serial");
+ if (line < 0) {
+#ifdef CONFIG_LANTIQ
+ if (mmres->start == CPHYSADDR(LTQ_EARLY_ASC))
+ line = 0;
+ else
+ line = 1;
+#else
+ dev_err(&pdev->dev, "failed to get alias id, errno %d\n", line);
+ return line;
DT overlays.
See the description of commit 7678f4c20fa7670f ("serial: sh-sci: Add support
for dynamic instances") for background info.
The logic in commit 7678f4c20fa7670f is not suitable here.
We need to know which serial instance is used for console.
We cannot use dynamic serial instance here.
Hardcoding that is not an option, as the board DTS may specify the console using
chosen/stdout-path.