From nobody Sun Feb 8 09:32:51 2026 Received: from TWMBX01.aspeed.com (mail.aspeedtech.com [211.20.114.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1823631D757; Tue, 3 Feb 2026 03:55:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=211.20.114.72 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770090916; cv=none; b=AjynruA24cTk6nZ1I6TM3guEETAK6gzaUOUJ/HUmE+HMDOt74T9no+Q4lMrk3Fz1CMPdap06IHaiZsM7NAruX7Vdyijo+Hr66G+gU08FWXKf7RAB/4FDhN9VoI4BZ2yXrJIq19nVP71XlWj3aS8WdWUkp024slIPGtF5CsjsCcU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770090916; c=relaxed/simple; bh=29cX7wLiEvG4nuiYCRISWCJL6gqUkOol7p8pKkxhJmA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=L8GhnXNFxuqi6SJynZhVnnHcnCLdzmal+N3tg8042OWpoQyjqjrHO5SemUcHMQHEsk1RLAjfLByj3X2D76m7bXb9LTeLyuy7a1QILExm3onvGIctVGSLQftD6zp6VioNvcyHhuWRDoIv+RcDt6S2ynmmmZasMAJQYgfZU+cQ5X8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=aspeedtech.com; spf=pass smtp.mailfrom=aspeedtech.com; arc=none smtp.client-ip=211.20.114.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=aspeedtech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aspeedtech.com Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Tue, 3 Feb 2026 11:55:11 +0800 Received: from [127.0.1.1] (192.168.10.13) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Tue, 3 Feb 2026 11:55:11 +0800 From: Jammy Huang Date: Tue, 3 Feb 2026 11:55:08 +0800 Subject: [PATCH 1/2] dt-bindings: soc: aspeed: add aspeed,ast2700nx-uart-routing compatible Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260203-upstream_uart_routing-v1-1-6bd5dd75ee3b@aspeedtech.com> References: <20260203-upstream_uart_routing-v1-0-6bd5dd75ee3b@aspeedtech.com> In-Reply-To: <20260203-upstream_uart_routing-v1-0-6bd5dd75ee3b@aspeedtech.com> To: Joel Stanley , Andrew Jeffery , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Oskar Senft" , Chia-Wei Wang CC: , , , , Jammy Huang X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1770090911; l=916; i=jammy_huang@aspeedtech.com; s=20251124; h=from:subject:message-id; bh=29cX7wLiEvG4nuiYCRISWCJL6gqUkOol7p8pKkxhJmA=; b=kQhySbgAx4A+uRYNmsCnwp3PcP3dXS7qxsxh6Qqka3k3mWwmHYWC/IpgObc7AOFm3/U0tvPlX RJhzRbIuEKfBnKcurBxw1SQa5FhMJi4+ttxz8LRdv+YdDm70/HFyxge X-Developer-Key: i=jammy_huang@aspeedtech.com; a=ed25519; pk=E5YwijeJZZcuDR6srvwNlXrNHvLxwipUg3Mb/xxUF9o= Add aspeed,ast2700n0-uart-routing and aspeed,ast2700n1-uart-routing dedicated compatible for representing the Aspeed 7th generation. Signed-off-by: Jammy Huang Acked-by: Conor Dooley --- Documentation/devicetree/bindings/soc/aspeed/uart-routing.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/aspeed/uart-routing.yaml= b/Documentation/devicetree/bindings/soc/aspeed/uart-routing.yaml index 51aaf34acb..6e0d63ca8b 100644 --- a/Documentation/devicetree/bindings/soc/aspeed/uart-routing.yaml +++ b/Documentation/devicetree/bindings/soc/aspeed/uart-routing.yaml @@ -31,6 +31,8 @@ properties: - aspeed,ast2400-uart-routing - aspeed,ast2500-uart-routing - aspeed,ast2600-uart-routing + - aspeed,ast2700n0-uart-routing + - aspeed,ast2700n1-uart-routing reg: maxItems: 1 =20 --=20 2.34.1 From nobody Sun Feb 8 09:32:51 2026 Received: from TWMBX01.aspeed.com (mail.aspeedtech.com [211.20.114.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D07031D735; Tue, 3 Feb 2026 03:55:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=211.20.114.72 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770090919; cv=none; b=VP1bUUSNb9Dse+xbE4WSv3PqFKhyC1oiG+rjvRA2GEv2dsttBeHc8BDhR4WBblyNJqhkcGWtcuGQOYM4m7RU/o9Fd2qvjRhUBe0tV29ZxCA/voljIgKuHIu3t38M1DxCopEkilH1gE50qz6kvkNIgZpqOCwTpO6a0L7ZL/GstmU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770090919; c=relaxed/simple; bh=ZauTzfFquNvtx/4RcxN7x1+q8xNLDFsmkSZazio5WzA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=rBURJKSdBS2PC97KaeK4CbcXjLFxRDs9kQq2frGB7swhkyulwK3WxovKzBkoMzy0tD+vpwbbWN0PLJreqxMw3w1OxVzymS4bO4uWPoat0biquUEKRRRI/gsn7abFZ5s71YamhzLevjF3ZjwIYqhFmI5XTJIILziCVuRUE3nSJtw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=aspeedtech.com; spf=pass smtp.mailfrom=aspeedtech.com; arc=none smtp.client-ip=211.20.114.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=aspeedtech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aspeedtech.com Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Tue, 3 Feb 2026 11:55:11 +0800 Received: from [127.0.1.1] (192.168.10.13) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Tue, 3 Feb 2026 11:55:11 +0800 From: Jammy Huang Date: Tue, 3 Feb 2026 11:55:09 +0800 Subject: [PATCH 2/2] soc: aspeed: uart-routing: Add AST27xx dual node support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260203-upstream_uart_routing-v1-2-6bd5dd75ee3b@aspeedtech.com> References: <20260203-upstream_uart_routing-v1-0-6bd5dd75ee3b@aspeedtech.com> In-Reply-To: <20260203-upstream_uart_routing-v1-0-6bd5dd75ee3b@aspeedtech.com> To: Joel Stanley , Andrew Jeffery , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Oskar Senft" , Chia-Wei Wang CC: , , , , Jammy Huang X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1770090911; l=12415; i=jammy_huang@aspeedtech.com; s=20251124; h=from:subject:message-id; bh=C+gKHTXPGEeSoSOHR1iwE6giVzW3rWmmmHtDD/QYRfU=; b=fZlFakSoNkWt98SJsU/kor2vLlCtWPDjRhDRsuZ0UkZIDIg9I/UzrLDx/WWAIVs7xDPa/K+ST Db8fOKbX5i+BykSeIS6I9iVQ64Yh8PcN4369URfifXi6ScstLnQCa4v X-Developer-Key: i=jammy_huang@aspeedtech.com; a=ed25519; pk=E5YwijeJZZcuDR6srvwNlXrNHvLxwipUg3Mb/xxUF9o= From: Chia-Wei Wang Add dual node support for AST27xx SoCs. Signed-off-by: Chia-Wei Wang Signed-off-by: Jammy Huang --- drivers/soc/aspeed/aspeed-uart-routing.c | 424 +++++++++++++++++++++++++++= ++++ 1 file changed, 424 insertions(+) diff --git a/drivers/soc/aspeed/aspeed-uart-routing.c b/drivers/soc/aspeed/= aspeed-uart-routing.c index 0191e36e66..9b648f5a1b 100644 --- a/drivers/soc/aspeed/aspeed-uart-routing.c +++ b/drivers/soc/aspeed/aspeed-uart-routing.c @@ -15,20 +15,30 @@ #define HICRA 0x9c =20 /* attributes options */ +#define UART_ROUTING_IO0 "io0" #define UART_ROUTING_IO1 "io1" #define UART_ROUTING_IO2 "io2" #define UART_ROUTING_IO3 "io3" #define UART_ROUTING_IO4 "io4" #define UART_ROUTING_IO5 "io5" #define UART_ROUTING_IO6 "io6" +#define UART_ROUTING_IO7 "io7" +#define UART_ROUTING_IO8 "io8" +#define UART_ROUTING_IO9 "io9" #define UART_ROUTING_IO10 "io10" +#define UART_ROUTING_IO12 "io12" +#define UART_ROUTING_UART0 "uart0" #define UART_ROUTING_UART1 "uart1" #define UART_ROUTING_UART2 "uart2" #define UART_ROUTING_UART3 "uart3" #define UART_ROUTING_UART4 "uart4" #define UART_ROUTING_UART5 "uart5" #define UART_ROUTING_UART6 "uart6" +#define UART_ROUTING_UART7 "uart7" +#define UART_ROUTING_UART8 "uart8" +#define UART_ROUTING_UART9 "uart9" #define UART_ROUTING_UART10 "uart10" +#define UART_ROUTING_UART12 "uart12" #define UART_ROUTING_RES "reserved" =20 struct aspeed_uart_routing { @@ -488,6 +498,416 @@ static const struct attribute_group ast2600_uart_rout= ing_attr_group =3D { .attrs =3D ast2600_uart_routing_attrs, }; =20 +/* routing selector for AST27xx node 0 */ +static struct aspeed_uart_routing_selector ast2700n0_uart9_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART9), + .reg =3D HICR9, + .shift =3D 12, + .mask =3D 0xf, + .options =3D { + UART_ROUTING_IO9, + UART_ROUTING_IO0, + UART_ROUTING_IO1, + UART_ROUTING_IO2, + UART_ROUTING_IO3, + UART_ROUTING_RES, + UART_ROUTING_UART0, + UART_ROUTING_UART1, + UART_ROUTING_UART2, + UART_ROUTING_UART3, + UART_ROUTING_UART12, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_io9_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO9), + .reg =3D HICR9, + .shift =3D 8, + .mask =3D 0xf, + .options =3D { + UART_ROUTING_UART0, + UART_ROUTING_UART1, + UART_ROUTING_UART2, + UART_ROUTING_UART3, + UART_ROUTING_UART12, + UART_ROUTING_IO0, + UART_ROUTING_IO1, + UART_ROUTING_IO2, + UART_ROUTING_IO3, + UART_ROUTING_RES, + UART_ROUTING_UART9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_uart3_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART3), + .reg =3D HICRA, + .shift =3D 25, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO3, + UART_ROUTING_IO0, + UART_ROUTING_IO1, + UART_ROUTING_IO2, + UART_ROUTING_UART0, + UART_ROUTING_UART1, + UART_ROUTING_UART2, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_uart2_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART2), + .reg =3D HICRA, + .shift =3D 22, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO2, + UART_ROUTING_IO3, + UART_ROUTING_IO0, + UART_ROUTING_IO1, + UART_ROUTING_UART3, + UART_ROUTING_UART0, + UART_ROUTING_UART1, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_uart1_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART1), + .reg =3D HICRA, + .shift =3D 19, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO1, + UART_ROUTING_IO2, + UART_ROUTING_IO3, + UART_ROUTING_IO0, + UART_ROUTING_UART2, + UART_ROUTING_UART3, + UART_ROUTING_UART0, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_uart0_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART0), + .reg =3D HICRA, + .shift =3D 16, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO0, + UART_ROUTING_IO1, + UART_ROUTING_IO2, + UART_ROUTING_IO3, + UART_ROUTING_UART1, + UART_ROUTING_UART2, + UART_ROUTING_UART3, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_io3_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO3), + .reg =3D HICRA, + .shift =3D 9, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART3, + UART_ROUTING_UART9, + UART_ROUTING_UART0, + UART_ROUTING_UART1, + UART_ROUTING_UART2, + UART_ROUTING_IO0, + UART_ROUTING_IO1, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_io2_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO2), + .reg =3D HICRA, + .shift =3D 6, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART2, + UART_ROUTING_UART3, + UART_ROUTING_UART9, + UART_ROUTING_UART0, + UART_ROUTING_UART1, + UART_ROUTING_IO0, + UART_ROUTING_IO1, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_io1_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO1), + .reg =3D HICRA, + .shift =3D 3, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART1, + UART_ROUTING_UART2, + UART_ROUTING_UART3, + UART_ROUTING_UART9, + UART_ROUTING_UART0, + UART_ROUTING_IO2, + UART_ROUTING_IO3, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n0_io0_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO0), + .reg =3D HICRA, + .shift =3D 0, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART0, + UART_ROUTING_UART1, + UART_ROUTING_UART2, + UART_ROUTING_UART3, + UART_ROUTING_UART9, + UART_ROUTING_IO2, + UART_ROUTING_IO3, + UART_ROUTING_IO9, + NULL, + }, +}; + +static struct attribute *ast2700n0_uart_routing_attrs[] =3D { + &ast2700n0_uart9_sel.dev_attr.attr, + &ast2700n0_io9_sel.dev_attr.attr, + &ast2700n0_uart3_sel.dev_attr.attr, + &ast2700n0_uart2_sel.dev_attr.attr, + &ast2700n0_uart1_sel.dev_attr.attr, + &ast2700n0_uart0_sel.dev_attr.attr, + &ast2700n0_io3_sel.dev_attr.attr, + &ast2700n0_io2_sel.dev_attr.attr, + &ast2700n0_io1_sel.dev_attr.attr, + &ast2700n0_io0_sel.dev_attr.attr, + NULL, +}; + +static const struct attribute_group ast2700n0_uart_routing_attr_group =3D { + .attrs =3D ast2700n0_uart_routing_attrs, +}; + +/* routing selector for AST27xx node 1 */ +static struct aspeed_uart_routing_selector ast2700n1_uart10_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART10), + .reg =3D HICR9, + .shift =3D 12, + .mask =3D 0xf, + .options =3D { + UART_ROUTING_IO10, + UART_ROUTING_IO5, + UART_ROUTING_IO6, + UART_ROUTING_IO7, + UART_ROUTING_IO8, + UART_ROUTING_RES, + UART_ROUTING_UART5, + UART_ROUTING_UART6, + UART_ROUTING_UART7, + UART_ROUTING_UART8, + UART_ROUTING_UART12, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_io10_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO10), + .reg =3D HICR9, + .shift =3D 8, + .mask =3D 0xf, + .options =3D { + UART_ROUTING_UART5, + UART_ROUTING_UART6, + UART_ROUTING_UART7, + UART_ROUTING_UART8, + UART_ROUTING_UART12, + UART_ROUTING_IO5, + UART_ROUTING_IO6, + UART_ROUTING_IO7, + UART_ROUTING_IO8, + UART_ROUTING_RES, + UART_ROUTING_UART10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_uart8_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART8), + .reg =3D HICRA, + .shift =3D 25, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO8, + UART_ROUTING_IO5, + UART_ROUTING_IO6, + UART_ROUTING_IO7, + UART_ROUTING_UART5, + UART_ROUTING_UART6, + UART_ROUTING_UART7, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_uart7_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART7), + .reg =3D HICRA, + .shift =3D 22, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO7, + UART_ROUTING_IO8, + UART_ROUTING_IO5, + UART_ROUTING_IO6, + UART_ROUTING_UART8, + UART_ROUTING_UART5, + UART_ROUTING_UART6, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_uart6_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART6), + .reg =3D HICRA, + .shift =3D 19, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO6, + UART_ROUTING_IO7, + UART_ROUTING_IO8, + UART_ROUTING_IO5, + UART_ROUTING_UART7, + UART_ROUTING_UART8, + UART_ROUTING_UART5, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_uart5_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_UART5), + .reg =3D HICRA, + .shift =3D 16, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_IO5, + UART_ROUTING_IO6, + UART_ROUTING_IO7, + UART_ROUTING_IO8, + UART_ROUTING_UART6, + UART_ROUTING_UART7, + UART_ROUTING_UART8, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_io8_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO8), + .reg =3D HICRA, + .shift =3D 9, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART8, + UART_ROUTING_UART10, + UART_ROUTING_UART5, + UART_ROUTING_UART6, + UART_ROUTING_UART7, + UART_ROUTING_IO5, + UART_ROUTING_IO6, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_io7_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO7), + .reg =3D HICRA, + .shift =3D 6, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART7, + UART_ROUTING_UART8, + UART_ROUTING_UART10, + UART_ROUTING_UART5, + UART_ROUTING_UART6, + UART_ROUTING_IO5, + UART_ROUTING_IO6, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_io6_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO6), + .reg =3D HICRA, + .shift =3D 3, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART6, + UART_ROUTING_UART7, + UART_ROUTING_UART8, + UART_ROUTING_UART10, + UART_ROUTING_UART5, + UART_ROUTING_IO7, + UART_ROUTING_IO8, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct aspeed_uart_routing_selector ast2700n1_io5_sel =3D { + .dev_attr =3D ROUTING_ATTR(UART_ROUTING_IO5), + .reg =3D HICRA, + .shift =3D 0, + .mask =3D 0x7, + .options =3D { + UART_ROUTING_UART5, + UART_ROUTING_UART6, + UART_ROUTING_UART7, + UART_ROUTING_UART8, + UART_ROUTING_UART10, + UART_ROUTING_IO7, + UART_ROUTING_IO8, + UART_ROUTING_IO10, + NULL, + }, +}; + +static struct attribute *ast2700n1_uart_routing_attrs[] =3D { + &ast2700n1_uart10_sel.dev_attr.attr, + &ast2700n1_io10_sel.dev_attr.attr, + &ast2700n1_uart8_sel.dev_attr.attr, + &ast2700n1_uart7_sel.dev_attr.attr, + &ast2700n1_uart6_sel.dev_attr.attr, + &ast2700n1_uart5_sel.dev_attr.attr, + &ast2700n1_io8_sel.dev_attr.attr, + &ast2700n1_io7_sel.dev_attr.attr, + &ast2700n1_io6_sel.dev_attr.attr, + &ast2700n1_io5_sel.dev_attr.attr, + NULL, +}; + +static const struct attribute_group ast2700n1_uart_routing_attr_group =3D { + .attrs =3D ast2700n1_uart_routing_attrs, +}; + static ssize_t aspeed_uart_routing_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -580,6 +1000,10 @@ static const struct of_device_id aspeed_uart_routing_= table[] =3D { .data =3D &ast2500_uart_routing_attr_group }, { .compatible =3D "aspeed,ast2600-uart-routing", .data =3D &ast2600_uart_routing_attr_group }, + { .compatible =3D "aspeed,ast2700n0-uart-routing", + .data =3D &ast2700n0_uart_routing_attr_group }, + { .compatible =3D "aspeed,ast2700n1-uart-routing", + .data =3D &ast2700n1_uart_routing_attr_group }, { }, }; =20 --=20 2.34.1