drivers: hwinfo: Add support for MIMXRT1180

Add HWINFO support for MIMXRT1180

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
This commit is contained in:
Mahesh Mahadevan 2024-12-16 16:47:18 -06:00 committed by Benjamin Cabé
commit c3533472c1
3 changed files with 12 additions and 1 deletions

View file

@ -126,6 +126,8 @@ configuration supports the following hardware features:
+-----------+------------+-------------------------------------+ +-----------+------------+-------------------------------------+
| RTWDOG | on-chip | rtwdog | | RTWDOG | on-chip | rtwdog |
+-----------+------------+-------------------------------------+ +-----------+------------+-------------------------------------+
| HWINFO | on-chip | Unique device serial number |
+-----------+------------+-------------------------------------+
The default configuration can be found in the defconfig file: The default configuration can be found in the defconfig file:
:zephyr_file:`boards/nxp/mimxrt1180_evk/mimxrt1180_evk_mimxrt1189_cm33_defconfig` :zephyr_file:`boards/nxp/mimxrt1180_evk/mimxrt1180_evk_mimxrt1189_cm33_defconfig`

View file

@ -122,7 +122,7 @@ config HWINFO_MCUX_SYSCON
config HWINFO_IMXRT config HWINFO_IMXRT
bool "NXP i.mx RT device ID" bool "NXP i.mx RT device ID"
default y default y
depends on SOC_SERIES_IMXRT10XX || SOC_SERIES_IMXRT11XX depends on SOC_SERIES_IMXRT10XX || SOC_SERIES_IMXRT11XX || SOC_SERIES_IMXRT118X
select HWINFO_HAS_DRIVER select HWINFO_HAS_DRIVER
help help
Enable NXP i.mx RT hwinfo driver. Enable NXP i.mx RT hwinfo driver.

View file

@ -10,7 +10,11 @@
#include <zephyr/sys/byteorder.h> #include <zephyr/sys/byteorder.h>
struct imxrt_uid { struct imxrt_uid {
#if CONFIG_SOC_SERIES_IMXRT118X
uint32_t id[4];
#else
uint32_t id[2]; uint32_t id[2];
#endif
}; };
ssize_t z_impl_hwinfo_get_device_id(uint8_t *buffer, size_t length) ssize_t z_impl_hwinfo_get_device_id(uint8_t *buffer, size_t length)
@ -20,6 +24,11 @@ ssize_t z_impl_hwinfo_get_device_id(uint8_t *buffer, size_t length)
#ifdef CONFIG_SOC_SERIES_IMXRT11XX #ifdef CONFIG_SOC_SERIES_IMXRT11XX
dev_id.id[0] = sys_cpu_to_be32(OCOTP->FUSEN[17].FUSE); dev_id.id[0] = sys_cpu_to_be32(OCOTP->FUSEN[17].FUSE);
dev_id.id[1] = sys_cpu_to_be32(OCOTP->FUSEN[16].FUSE); dev_id.id[1] = sys_cpu_to_be32(OCOTP->FUSEN[16].FUSE);
#elif CONFIG_SOC_SERIES_IMXRT118X
dev_id.id[0] = sys_cpu_to_be32(OCOTP_FSB->OTP_SHADOW_PARTA[15]);
dev_id.id[1] = sys_cpu_to_be32(OCOTP_FSB->OTP_SHADOW_PARTA[14]);
dev_id.id[2] = sys_cpu_to_be32(OCOTP_FSB->OTP_SHADOW_PARTA[13]);
dev_id.id[3] = sys_cpu_to_be32(OCOTP_FSB->OTP_SHADOW_PARTA[12]);
#else #else
dev_id.id[0] = sys_cpu_to_be32(OCOTP->CFG2); dev_id.id[0] = sys_cpu_to_be32(OCOTP->CFG2);
dev_id.id[1] = sys_cpu_to_be32(OCOTP->CFG1); dev_id.id[1] = sys_cpu_to_be32(OCOTP->CFG1);