[PATCH v3 1/9] arm64: dts: amlogic: t7: Add eMMC, SD card and SDIO pinctrl nodes

Ronald Claveau posted 9 patches 1 week, 4 days ago
There is a newer version of this series
[PATCH v3 1/9] arm64: dts: amlogic: t7: Add eMMC, SD card and SDIO pinctrl nodes
Posted by Ronald Claveau 1 week, 4 days ago
These pinctrl nodes are required by the eMMC, SD card and SDIO drivers
to configure pin muxing at runtime.

- eMMC: control, 4-bit/8-bit data, data strobe and clock gate pins
- SD card: data, clock, command and clock gate pins
- SDIO: data, clock, command and clock gate pins

Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 98 +++++++++++++++++++++++++++++
 1 file changed, 98 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
index 6510068bcff92..ac8de8e9b8010 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
@@ -250,6 +250,104 @@ gpio: bank@4000 {
 					#gpio-cells = <2>;
 					gpio-ranges = <&periphs_pinctrl 0 0 157>;
 				};
+
+				emmc_ctrl_pins: emmc-ctrl {
+					mux-0 {
+						groups = "emmc_cmd";
+						function = "emmc";
+						bias-pull-up;
+					};
+
+					mux-1 {
+						groups = "emmc_clk";
+						function = "emmc";
+						bias-disable;
+					};
+				};
+
+				emmc_data_4b_pins: emmc-data-4b {
+					mux-0 {
+						groups = "emmc_nand_d0",
+							 "emmc_nand_d1",
+							 "emmc_nand_d2",
+							 "emmc_nand_d3";
+						function = "emmc";
+						bias-pull-up;
+					};
+				};
+
+				emmc_data_8b_pins: emmc-data-8b {
+					mux-0 {
+						groups = "emmc_nand_d0",
+							 "emmc_nand_d1",
+							 "emmc_nand_d2",
+							 "emmc_nand_d3",
+							 "emmc_nand_d4",
+							 "emmc_nand_d5",
+							 "emmc_nand_d6",
+							 "emmc_nand_d7";
+						function = "emmc";
+						bias-pull-up;
+					};
+				};
+
+				emmc_ds_pins: emmc-ds {
+					mux {
+						groups = "emmc_nand_ds";
+						function = "emmc";
+						bias-pull-down;
+					};
+				};
+
+				emmc_clk_gate_pins: emmc_clk_gate {
+					mux {
+						groups = "GPIOB_8";
+						function = "gpio_periphs";
+						bias-pull-down;
+					};
+				};
+
+				sdcard_pins: sdcard {
+					mux {
+						groups = "sdcard_d0",
+							 "sdcard_d1",
+							 "sdcard_d2",
+							 "sdcard_d3",
+							 "sdcard_clk",
+							 "sdcard_cmd";
+						function = "sdcard";
+						bias-pull-up;
+					};
+				};
+
+				sdcard_clk_gate_pins: sdcard_clk_gate {
+					mux {
+						groups = "GPIOC_4";
+						function = "gpio_periphs";
+						bias-pull-down;
+					};
+				};
+
+				sdio_pins: sdio {
+					mux-0 {
+						groups = "sdio_d0",
+							 "sdio_d1",
+							 "sdio_d2",
+							 "sdio_d3",
+							 "sdio_clk",
+							 "sdio_cmd";
+						function = "sdio";
+						bias-pull-up;
+					};
+				};
+
+				sdio_clk_gate_pins: sdio_clk_gate {
+					mux {
+						groups = "GPIOX_4";
+						function = "gpio_periphs";
+						bias-pull-up;
+					};
+				};
 			};
 
 			gpio_intc: interrupt-controller@4080 {

-- 
2.49.0
Re: [PATCH v3 1/9] arm64: dts: amlogic: t7: Add eMMC, SD card and SDIO pinctrl nodes
Posted by Xianwei Zhao 1 week, 2 days ago
Hi Ronald,

On 2026/3/23 17:55, Ronald Claveau wrote:
> These pinctrl nodes are required by the eMMC, SD card and SDIO drivers
> to configure pin muxing at runtime.
> 
> - eMMC: control, 4-bit/8-bit data, data strobe and clock gate pins
> - SD card: data, clock, command and clock gate pins
> - SDIO: data, clock, command and clock gate pins
> 
> Signed-off-by: Ronald Claveau<linux-kernel-dev@aliel.fr>
> ---
>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 98 +++++++++++++++++++++++++++++
>   1 file changed, 98 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> index 6510068bcff92..ac8de8e9b8010 100644
> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> @@ -250,6 +250,104 @@ gpio: bank@4000 {
>                                          #gpio-cells = <2>;
>                                          gpio-ranges = <&periphs_pinctrl 0 0 157>;
>                                  };
> +
> +                               emmc_ctrl_pins: emmc-ctrl {
> +                                       mux-0 {
> +                                               groups = "emmc_cmd";
> +                                               function = "emmc";
> +                                               bias-pull-up;
> +                                       };
> +
> +                                       mux-1 {
> +                                               groups = "emmc_clk";
> +                                               function = "emmc";
> +                                               bias-disable;
> +                                       };
> +                               };
> +
> +                               emmc_data_4b_pins: emmc-data-4b {
> +                                       mux-0 {
> +                                               groups = "emmc_nand_d0",
> +                                                        "emmc_nand_d1",
> +                                                        "emmc_nand_d2",
> +                                                        "emmc_nand_d3";
> +                                               function = "emmc";
> +                                               bias-pull-up;
> +                                       };
> +                               };
> +
> +                               emmc_data_8b_pins: emmc-data-8b {
> +                                       mux-0 {
> +                                               groups = "emmc_nand_d0",
> +                                                        "emmc_nand_d1",
> +                                                        "emmc_nand_d2",
> +                                                        "emmc_nand_d3",
> +                                                        "emmc_nand_d4",
> +                                                        "emmc_nand_d5",
> +                                                        "emmc_nand_d6",
> +                                                        "emmc_nand_d7";
> +                                               function = "emmc";
> +                                               bias-pull-up;
> +                                       };
> +                               };
> +
> +                               emmc_ds_pins: emmc-ds {
> +                                       mux {
> +                                               groups = "emmc_nand_ds";
> +                                               function = "emmc";
> +                                               bias-pull-down;
> +                                       };
> +                               };
> +
> +                               emmc_clk_gate_pins: emmc_clk_gate {

Node names should use hyphens ('-') instead of underscores ('_'), 
consistent with the following nodes.

> +                                       mux {
> +                                               groups = "GPIOB_8";
> +                                               function = "gpio_periphs";
> +                                               bias-pull-down;
> +                                       };
> +                               };
> +
> +                               sdcard_pins: sdcard {
> +                                       mux {
> +                                               groups = "sdcard_d0",
> +                                                        "sdcard_d1",
> +                                                        "sdcard_d2",
> +                                                        "sdcard_d3",
> +                                                        "sdcard_clk",
> +                                                        "sdcard_cmd";
> +                                               function = "sdcard";
> +                                               bias-pull-up;
> +                                       };
> +                               };
> +
> +                               sdcard_clk_gate_pins: sdcard_clk_gate {
> +                                       mux {
> +                                               groups = "GPIOC_4";
> +                                               function = "gpio_periphs";
> +                                               bias-pull-down;
> +                                       };
> +                               };
> +
> +                               sdio_pins: sdio {
> +                                       mux-0 {
> +                                               groups = "sdio_d0",
> +                                                        "sdio_d1",
> +                                                        "sdio_d2",
> +                                                        "sdio_d3",
> +                                                        "sdio_clk",
> +                                                        "sdio_cmd";
> +                                               function = "sdio";
> +                                               bias-pull-up;
> +                                       };
> +                               };
> +
> +                               sdio_clk_gate_pins: sdio_clk_gate {
> +                                       mux {
> +                                               groups = "GPIOX_4";
> +                                               function = "gpio_periphs";
> +                                               bias-pull-up;
> +                                       };
> +                               };
>                          };
> 
>                          gpio_intc: interrupt-controller@4080 {
Re: [PATCH v3 1/9] arm64: dts: amlogic: t7: Add eMMC, SD card and SDIO pinctrl nodes
Posted by Ronald Claveau 1 week, 2 days ago
On 3/25/26 3:48 AM, Xianwei Zhao wrote:
> Hi Ronald,
> 
> On 2026/3/23 17:55, Ronald Claveau wrote:
>> These pinctrl nodes are required by the eMMC, SD card and SDIO drivers
>> to configure pin muxing at runtime.
>>
>> - eMMC: control, 4-bit/8-bit data, data strobe and clock gate pins
>> - SD card: data, clock, command and clock gate pins
>> - SDIO: data, clock, command and clock gate pins
>>
>> Signed-off-by: Ronald Claveau<linux-kernel-dev@aliel.fr>
>> ---
>>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 98 +++++++++++++++++++
>> ++++++++++
>>   1 file changed, 98 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/
>> boot/dts/amlogic/amlogic-t7.dtsi
>> index 6510068bcff92..ac8de8e9b8010 100644
>> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
>> @@ -250,6 +250,104 @@ gpio: bank@4000 {
>>                                          #gpio-cells = <2>;
>>                                          gpio-ranges =
>> <&periphs_pinctrl 0 0 157>;
>>                                  };
>> +
>> +                               emmc_ctrl_pins: emmc-ctrl {
>> +                                       mux-0 {
>> +                                               groups = "emmc_cmd";
>> +                                               function = "emmc";
>> +                                               bias-pull-up;
>> +                                       };
>> +
>> +                                       mux-1 {
>> +                                               groups = "emmc_clk";
>> +                                               function = "emmc";
>> +                                               bias-disable;
>> +                                       };
>> +                               };
>> +
>> +                               emmc_data_4b_pins: emmc-data-4b {
>> +                                       mux-0 {
>> +                                               groups = "emmc_nand_d0",
>> +                                                        "emmc_nand_d1",
>> +                                                        "emmc_nand_d2",
>> +                                                        "emmc_nand_d3";
>> +                                               function = "emmc";
>> +                                               bias-pull-up;
>> +                                       };
>> +                               };
>> +
>> +                               emmc_data_8b_pins: emmc-data-8b {
>> +                                       mux-0 {
>> +                                               groups = "emmc_nand_d0",
>> +                                                        "emmc_nand_d1",
>> +                                                        "emmc_nand_d2",
>> +                                                        "emmc_nand_d3",
>> +                                                        "emmc_nand_d4",
>> +                                                        "emmc_nand_d5",
>> +                                                        "emmc_nand_d6",
>> +                                                        "emmc_nand_d7";
>> +                                               function = "emmc";
>> +                                               bias-pull-up;
>> +                                       };
>> +                               };
>> +
>> +                               emmc_ds_pins: emmc-ds {
>> +                                       mux {
>> +                                               groups = "emmc_nand_ds";
>> +                                               function = "emmc";
>> +                                               bias-pull-down;
>> +                                       };
>> +                               };
>> +
>> +                               emmc_clk_gate_pins: emmc_clk_gate {
> 
> Node names should use hyphens ('-') instead of underscores ('_'),
> consistent with the following nodes.
> 

Thanks for your feedback Xianwei.
I will change that.

>> +                                       mux {
>> +                                               groups = "GPIOB_8";
>> +                                               function =
>> "gpio_periphs";
>> +                                               bias-pull-down;
>> +                                       };
>> +                               };
>> +
>> +                               sdcard_pins: sdcard {
>> +                                       mux {
>> +                                               groups = "sdcard_d0",
>> +                                                        "sdcard_d1",
>> +                                                        "sdcard_d2",
>> +                                                        "sdcard_d3",
>> +                                                        "sdcard_clk",
>> +                                                        "sdcard_cmd";
>> +                                               function = "sdcard";
>> +                                               bias-pull-up;
>> +                                       };
>> +                               };
>> +
>> +                               sdcard_clk_gate_pins: sdcard_clk_gate {
>> +                                       mux {
>> +                                               groups = "GPIOC_4";
>> +                                               function =
>> "gpio_periphs";
>> +                                               bias-pull-down;
>> +                                       };
>> +                               };
>> +
>> +                               sdio_pins: sdio {
>> +                                       mux-0 {
>> +                                               groups = "sdio_d0",
>> +                                                        "sdio_d1",
>> +                                                        "sdio_d2",
>> +                                                        "sdio_d3",
>> +                                                        "sdio_clk",
>> +                                                        "sdio_cmd";
>> +                                               function = "sdio";
>> +                                               bias-pull-up;
>> +                                       };
>> +                               };
>> +
>> +                               sdio_clk_gate_pins: sdio_clk_gate {
>> +                                       mux {
>> +                                               groups = "GPIOX_4";
>> +                                               function =
>> "gpio_periphs";
>> +                                               bias-pull-up;
>> +                                       };
>> +                               };
>>                          };
>>
>>                          gpio_intc: interrupt-controller@4080 {


-- 
Best regards,
Ronald