From 957e6341d3d9fcae7dfb162207a8f70c8fbe3c3e Mon Sep 17 00:00:00 2001 From: John Whittington Date: Tue, 20 May 2025 15:04:03 +0200 Subject: [PATCH] boards: atmel: samx7x add hsmci peripheral Adds samx7x hsmci peripheral according to datasheet sections 10-1 and 14.1: https://ww1.microchip.com/downloads/aemDocuments/documents/MCU32/ProductDocuments/DataSheets/SAM-E70-S70-V70-V71-Family-Data-Sheet-DS60001527.pdf Updates sam_e70_xplained overlay to include pin mapping to the SD card connected to the hsmci and adds sdhc0 alias. Signed-off-by: John Whittington --- .../sam_e70_xplained/sam_e70_xplained-common.dtsi | 15 +++++++++++++++ .../sam_e70_xplained-pinctrl.dtsi | 11 +++++++++++ .../sam_e70_xplained_same70q21.yaml | 1 + .../sam_e70_xplained_same70q21b.yaml | 1 + dts/arm/atmel/samx7x.dtsi | 7 +++++++ 5 files changed, 35 insertions(+) diff --git a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-common.dtsi b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-common.dtsi index d6190e050f9..8875e53e511 100644 --- a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-common.dtsi +++ b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-common.dtsi @@ -17,6 +17,7 @@ led0 = &green_led; sw0 = &sw0_user_button; watchdog0 = &wdt; + sdhc0 = &hsmci; }; chosen { @@ -238,3 +239,17 @@ zephyr_udc0: &usbhs { pinctrl-names = "default"; }; }; + +&hsmci { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&hsmci_default>; + cd-gpios = <&pioc 16 GPIO_ACTIVE_LOW>; + + mmc { + compatible = "zephyr,sdmmc-disk"; + disk-name = "SD"; + status = "okay"; + }; +}; diff --git a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-pinctrl.dtsi b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-pinctrl.dtsi index 443bb39651f..bf09abaf1d0 100644 --- a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-pinctrl.dtsi +++ b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained-pinctrl.dtsi @@ -182,4 +182,15 @@ ; }; }; + + hsmci_default: hsmci_default { + group1 { + pinmux = , + , + , + , + , + ; + }; + }; }; diff --git a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21.yaml b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21.yaml index 3cec4f75182..6f958557d7b 100644 --- a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21.yaml +++ b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21.yaml @@ -18,6 +18,7 @@ supported: - i2s - pwm - netif:eth + - sdhc - spi - usb_device - watchdog diff --git a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21b.yaml b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21b.yaml index 7a70dbc5844..2007e30e92e 100644 --- a/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21b.yaml +++ b/boards/atmel/sam/sam_e70_xplained/sam_e70_xplained_same70q21b.yaml @@ -18,6 +18,7 @@ supported: - i2s - pwm - netif:eth + - sdhc - spi - usb_device - watchdog diff --git a/dts/arm/atmel/samx7x.dtsi b/dts/arm/atmel/samx7x.dtsi index 23f43b92926..d38cd93d4b4 100644 --- a/dts/arm/atmel/samx7x.dtsi +++ b/dts/arm/atmel/samx7x.dtsi @@ -46,6 +46,13 @@ }; soc { + hsmci: hsmci@40000000 { + compatible = "atmel,sam-hsmci"; + reg = <0x40000000 0x4000>; + clocks = <&pmc PMC_TYPE_PERIPHERAL 18>; + status = "disabled"; + }; + ssc: ssc@40004000 { compatible = "atmel,sam-ssc"; reg = <0x40004000 0x4000>;