drivers: hwinfo: Add support for Apollo510 hwinfo
This commit adds support for Apollo510 SoC in ambiq hwinfo driver Signed-off-by: Hao Luo <hluo@ambiq.com>
This commit is contained in:
parent
ba52a93ac9
commit
95153de15b
3 changed files with 20 additions and 2 deletions
|
@ -16,6 +16,7 @@ supported:
|
||||||
- spi
|
- spi
|
||||||
- i2c
|
- i2c
|
||||||
- rtc
|
- rtc
|
||||||
|
- hwinfo
|
||||||
- clock_control
|
- clock_control
|
||||||
- mspi
|
- mspi
|
||||||
testing:
|
testing:
|
||||||
|
|
|
@ -247,7 +247,7 @@ config HWINFO_RW61X
|
||||||
config HWINFO_AMBIQ
|
config HWINFO_AMBIQ
|
||||||
bool "AMBIQ hwinfo"
|
bool "AMBIQ hwinfo"
|
||||||
default y
|
default y
|
||||||
depends on SOC_SERIES_APOLLO4X
|
depends on SOC_SERIES_APOLLO4X || SOC_SERIES_APOLLO5X
|
||||||
select HWINFO_HAS_DRIVER
|
select HWINFO_HAS_DRIVER
|
||||||
select AMBIQ_HAL
|
select AMBIQ_HAL
|
||||||
select AMBIQ_HAL_USE_HWINFO
|
select AMBIQ_HAL_USE_HWINFO
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
|
||||||
struct ambiq_hwinfo {
|
struct ambiq_hwinfo {
|
||||||
/* Ambiq Chip ID0 */
|
/* Ambiq Chip ID0 */
|
||||||
uint32_t chip_id_0;
|
uint32_t chip_id_0;
|
||||||
|
@ -27,7 +26,12 @@ ssize_t z_impl_hwinfo_get_device_id(uint8_t *buffer, size_t length)
|
||||||
/* Contains the HAL hardware information about the device. */
|
/* Contains the HAL hardware information about the device. */
|
||||||
am_hal_mcuctrl_device_t mcu_ctrl_device;
|
am_hal_mcuctrl_device_t mcu_ctrl_device;
|
||||||
|
|
||||||
|
#if (CONFIG_SOC_SERIES_APOLLO5X)
|
||||||
|
am_hal_info1_read(AM_HAL_INFO_INFOSPACE_CURRENT_INFO1, AM_REG_OTP_INFO1_TRIM_REV_O / 4, 1,
|
||||||
|
&dev_hw_info.factory_trim_version);
|
||||||
|
#else
|
||||||
am_hal_mram_info_read(1, AM_REG_INFO1_TRIM_REV_O / 4, 1, &dev_hw_info.factory_trim_version);
|
am_hal_mram_info_read(1, AM_REG_INFO1_TRIM_REV_O / 4, 1, &dev_hw_info.factory_trim_version);
|
||||||
|
#endif
|
||||||
am_hal_mcuctrl_info_get(AM_HAL_MCUCTRL_INFO_DEVICEID, &mcu_ctrl_device);
|
am_hal_mcuctrl_info_get(AM_HAL_MCUCTRL_INFO_DEVICEID, &mcu_ctrl_device);
|
||||||
|
|
||||||
dev_hw_info.chip_id_0 = mcu_ctrl_device.ui32ChipID0;
|
dev_hw_info.chip_id_0 = mcu_ctrl_device.ui32ChipID0;
|
||||||
|
@ -61,9 +65,15 @@ int z_impl_hwinfo_get_reset_cause(uint32_t *cause)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* POWER CYCLE */
|
/* POWER CYCLE */
|
||||||
|
#if (CONFIG_SOC_SERIES_APOLLO5X)
|
||||||
|
if (reset_status & AM_HAL_RESET_STATUS_POA) {
|
||||||
|
flags |= RESET_POR;
|
||||||
|
}
|
||||||
|
#else
|
||||||
if (reset_status & AM_HAL_RESET_STATUS_POR) {
|
if (reset_status & AM_HAL_RESET_STATUS_POR) {
|
||||||
flags |= RESET_POR;
|
flags |= RESET_POR;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* BROWNOUT DETECTOR */
|
/* BROWNOUT DETECTOR */
|
||||||
if (reset_status & AM_HAL_RESET_STATUS_BOD) {
|
if (reset_status & AM_HAL_RESET_STATUS_BOD) {
|
||||||
|
@ -110,6 +120,13 @@ int z_impl_hwinfo_get_reset_cause(uint32_t *cause)
|
||||||
flags |= RESET_HARDWARE;
|
flags |= RESET_HARDWARE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (CONFIG_SOC_SERIES_APOLLO5X)
|
||||||
|
/* AIRCR */
|
||||||
|
if (reset_status & AM_HAL_RESET_STATUS_AIRCR) {
|
||||||
|
flags |= RESET_SOFTWARE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
*cause = flags;
|
*cause = flags;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue