Add SGPIO DTS node and enable them for AST2600 EVB.

Signed-off-by: Billy Tsai <billy_t...@aspeedtech.com>
---
 arch/arm/dts/ast2600-evb.dts             | 10 ++++++
 arch/arm/dts/ast2600.dtsi                | 40 ++++++++++++++++++++++++
 drivers/pinctrl/aspeed/pinctrl_ast2600.c | 10 ++++++
 3 files changed, 60 insertions(+)

diff --git a/arch/arm/dts/ast2600-evb.dts b/arch/arm/dts/ast2600-evb.dts
index 9aac0e26f28..570ba61965a 100644
--- a/arch/arm/dts/ast2600-evb.dts
+++ b/arch/arm/dts/ast2600-evb.dts
@@ -266,3 +266,13 @@
        bootph-all;
        status = "okay";
 };
+
+&sgpiom0 {
+       status = "okay";
+       ngpios = <128>;
+};
+
+&sgpiom1 {
+       status = "okay";
+       ngpios = <80>;
+};
diff --git a/arch/arm/dts/ast2600.dtsi b/arch/arm/dts/ast2600.dtsi
index 43db80edfe5..cb8ce8b6b6f 100644
--- a/arch/arm/dts/ast2600.dtsi
+++ b/arch/arm/dts/ast2600.dtsi
@@ -501,6 +501,36 @@
                                ngpios = <208>;
                        };
 
+                       sgpiom0: sgpiom@1e780500 {
+                               compatible = "aspeed,ast2600-sgpiom";
+                               reg = <0x1e780500 0x100>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scu ASPEED_CLK_APB2>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+                               bus-frequency = <1000000>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_sgpm1_default>;
+                               status = "disabled";
+                       };
+
+                       sgpiom1: sgpiom@1e780600 {
+                               compatible = "aspeed,ast2600-sgpiom";
+                               reg = <0x1e780600 0x100>;
+                               interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scu ASPEED_CLK_APB2>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+                               bus-frequency = <12000000>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_sgpm2_default>;
+                               status = "disabled";
+                       };
+
                        gpio1: gpio@1e780800 {
                                compatible = "aspeed,ast2600-gpio";
                                reg = <0x1e780800 0x800>;
@@ -2167,4 +2197,14 @@
                function = "PCIE1RC";
                groups = "PCIE1RC";
        };
+
+       pinctrl_sgpm1_default: sgpm1_default {
+               function = "SGPM1";
+               groups = "SGPM1";
+       };
+
+       pinctrl_sgpm2_default: sgpm2_default {
+               function = "SGPM2";
+               groups = "SGPM2";
+       };
 };
diff --git a/drivers/pinctrl/aspeed/pinctrl_ast2600.c 
b/drivers/pinctrl/aspeed/pinctrl_ast2600.c
index bc12590e583..f4bec6fe53c 100644
--- a/drivers/pinctrl/aspeed/pinctrl_ast2600.c
+++ b/drivers/pinctrl/aspeed/pinctrl_ast2600.c
@@ -454,6 +454,14 @@ static struct aspeed_sig_desc pwm15g1[] = {
        {0x41c, BIT(31), 0},
 };
 
+static struct aspeed_sig_desc sgpm1[] = {
+       {0x414, GENMASK(27, 24), 0},
+};
+
+static struct aspeed_sig_desc sgpm2[] = {
+       {0x6d0, GENMASK(7, 4), 0},
+};
+
 static const struct aspeed_group_config ast2600_groups[] = {
        { "MAC1LINK", ARRAY_SIZE(mac1_link), mac1_link },
        { "MAC2LINK", ARRAY_SIZE(mac2_link), mac2_link },
@@ -543,6 +551,8 @@ static const struct aspeed_group_config ast2600_groups[] = {
        { "PWM14G1", ARRAY_SIZE(pwm14g1), pwm14g1 },
        { "PWM15G0", ARRAY_SIZE(pwm15g0), pwm15g0 },
        { "PWM15G1", ARRAY_SIZE(pwm15g1), pwm15g1 },
+       { "SGPM1", ARRAY_SIZE(sgpm1), sgpm1 },
+       { "SGPM2", ARRAY_SIZE(sgpm2), sgpm2 },
 };
 
 static int ast2600_pinctrl_get_groups_count(struct udevice *dev)
-- 
2.25.1

Reply via email to