Переглянути джерело

更新CPU工程
1. 删除rtc模块无效代码。
2. 优化CPU对各模块sema锁获取逻辑。
3. 优化CPU工程mmc驱动内存泄漏问题。
4. CPU工程添加NEON。
更新MCU工程(iram版本与sram nos版本)
1. 删除rtc模块无效代码。
2. 删除efuse未使用宏定义。

helen 6 місяців тому
батько
коміт
3e255b3c39

+ 0 - 12
amt630hv160-freertos-beta/ArkmicroFiles/libcpu-amt630hv160/include/rtc.h

@@ -22,23 +22,11 @@ typedef struct rtc_time {
 	int tm_yday;
 	int tm_yday;
 } SystemTime_t;
 } SystemTime_t;
 
 
-/*
- * This data structure is inspired by the EFI (v0.92) wakeup
- * alarm API.
- */
-struct rtc_wkalrm {
-	unsigned char enabled;	/* 0 = alarm disabled, 1 = alarm enabled */
-	unsigned char pending;  /* 0 = alarm not pending, 1 = alarm pending */
-	struct rtc_time time;	/* time the alarm is set to */
-};
-
 static inline int is_leap_year(unsigned int year)
 static inline int is_leap_year(unsigned int year)
 {
 {
 	return (!(year % 4) && (year % 100)) || !(year % 400);
 	return (!(year % 4) && (year % 100)) || !(year % 400);
 }
 }
 
 
-int rtc_init(void);
-
 int iGetLocalTime(SystemTime_t *tm);
 int iGetLocalTime(SystemTime_t *tm);
 
 
 int iSetLocalTime(SystemTime_t *tm);
 int iSetLocalTime(SystemTime_t *tm);

+ 5 - 273
amt630hv160-freertos-beta/ArkmicroFiles/libcpu-amt630hv160/source/rtc.c

@@ -5,65 +5,6 @@
 #include "errno.h"
 #include "errno.h"
 #include "access_module.h"
 #include "access_module.h"
 
 
-/* RTC registers */
-#define RTC_CTL			0x00 /*control register*/
-#define RTC_ANAWEN		0x04 /*analog block write enable register*/
-#define RTC_ANACTL		0x08 /*analog block control register*/
-#define RTC_IM			0x0c /*interrupt mode register*/
-#define RTC_STA			0x10 /*rtc status register*/
-#define RTC_ALMDAT		0x14 /*alarm data register*/
-#define RTC_DONT		0x18 /*delay on timer register*/
-#define RTC_RAM			0x1c /*ram bit register*/
-#define RTC_CNTL		0x20 /*rtc counter register*/
-#define RTC_CNTH		0x24 /*rtc sec counter register*/
-
-//RTC_CTL register fields defination
-#define CTL_CTL3_VALUE(x)				(x<<23)
-#define CTL_CTL2_VALUE(x)				(x<<22)
-#define CTL_BIAS_TRM_VALUE(x)			(x<<21)
-#define CTL_SOFT_SEL_VALUE(x)			(x<<20)
-#define CTL_CTL1_VALUE(x)				(x<<19)
-#define CTL_CTL0_VALUE(x)				(x<<18)
-#define CTL_SOFT_STR_VALUE(x)			(x<<17)
-#define CTL_OSC_EN_VALUE(x)				(x<<16)
-#define CTL_CTL3_SET					(1<<15)
-#define CTL_CTL2_SET					(1<<14)
-#define CTL_BIAS_TRM_SET				(1<<13)
-#define CTL_SOFT_SEL_SET				(1<<12)
-#define CTL_CTL1_SET					(1<<11)
-#define CTL_CTL0_SET					(1<<10)
-#define CTL_SOFT_STR_SET				(1<<9)
-#define CTL_OSC_EN_SET					(1<<8)
-#define CTL_ALM_DATA_WEN				(1<<3)
-#define CTL_PERIOD_INT_EN				(1<<2)
-#define CTL_ALARM_INT_EN				(1<<1)
-#define CTL_RESET						(1<<0)
-
-//RTC_ANAWEN register fields defination
-#define ANA_CNT_WEN						(1<<7)
-#define ANA_RAM_WEN						(1<<6)
-#define ANA_DELAY_TIMER_WEN				(1<<5)
-#define ANA_CLR_PWR_DET_WEN				(1<<4)
-#define ANA_DELAY_POWER_ON_WEN			(1<<3)
-#define ANA_FORCE_POWER_OFF_WEN			(1<<2)
-#define ANA_FORCE_POWER_ON_WEN			(1<<1)
-#define ANA_RTC_WEN						(1<<0)
-
-//RTC_ANACTL register fields defination
-#define ANACTL_CLR_PWR					(1<<4)
-#define ANACTL_DELAY_POWER_ON			(1<<3)
-#define ANACTL_FORCE_POWER_OFF			(1<<2)
-#define ANACTL_FORCE_POWER_ON			(1<<1)
-#define ANACTL_COUNTER_EN				(1<<0)
-
-/* STATUS_REG */
-#define STA_PWR_DET			(1<<6)
-#define STA_DELAY_ON		(1<<5)
-#define STA_FORCE_OFF		(1<<4)
-#define STA_FORCE_ON		(1<<3)
-#define STA_RCT_BUSY		(1<<2)
-#define STA_PERIOD_INT		(1<<1)
-#define STA_ALARM_INT		(1<<0)
 
 
 /* 2020-01-01 Wednesday */
 /* 2020-01-01 Wednesday */
 static struct rtc_time default_tm = {
 static struct rtc_time default_tm = {
@@ -216,92 +157,7 @@ uint32_t mktime(const unsigned int year0, const unsigned int mon0,
 uint32_t rtc_tm_to_time(struct rtc_time *tm)
 uint32_t rtc_tm_to_time(struct rtc_time *tm)
 {
 {
 	return mktime(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
 	return mktime(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
-			tm->tm_hour, tm->tm_min, tm->tm_sec);
-}
-
-static __INLINE void rtc_clear_interrupt(void)
-{
-	unsigned int val;
-
-	val = readl(REGS_RTC_BASE + RTC_STA);
-	val &= ~CTL_ALARM_INT_EN;
-	writel(val, REGS_RTC_BASE + RTC_STA);
-}
-
-static __INLINE void rtc_enable_interrupt(void)
-{
-	unsigned int val;
-
-	val = readl(REGS_RTC_BASE + RTC_CTL);
-	if (!(val & CTL_ALARM_INT_EN)) {
-		rtc_clear_interrupt();
-		val |= CTL_ALARM_INT_EN;
-		writel(val, REGS_RTC_BASE + RTC_CTL);
-	}
-}
-
-static __INLINE void rtc_disable_interrupt(void)
-{
-	unsigned int val;
-
-	val = readl(REGS_RTC_BASE + RTC_CTL);
-	if (val & CTL_ALARM_INT_EN) {
-		val &= ~CTL_ALARM_INT_EN;
-		writel(val, REGS_RTC_BASE + RTC_CTL);
-	}
-}
-
-static void rtc_wait_not_busy(void)
-{
-	int status, count = 0;
-
-	/* Assuming BUSY may stay active for 80 msec) */
-	for (count = 0; count < 0x1000; count++) {
-		status = readl(REGS_RTC_BASE + RTC_STA);
-		if ((status & STA_RCT_BUSY) == 0)
-			break;
-		/* check status busy, after each msec */
-		vTaskDelay(pdMS_TO_TICKS(1));
-	}
-}
-
-static void rtc_isr(void *para)
-{
-	unsigned int irq_data;
-
-	irq_data = readl(REGS_RTC_BASE + RTC_STA);
-
-	if ((irq_data & CTL_ALARM_INT_EN)) {
-		rtc_clear_interrupt();
-		return;
-	} else
-		return;
-}
-
-static void rtc_update_time(unsigned int time)
-{
-	unsigned int val;
-	int timeout = 100000;
-
-	val = readl(REGS_RTC_BASE + RTC_ANAWEN);
-	writel(val | ANA_RTC_WEN, REGS_RTC_BASE + RTC_ANAWEN);
-	val = readl(REGS_RTC_BASE + RTC_ANACTL);
-	writel(val | ANACTL_COUNTER_EN, REGS_RTC_BASE + RTC_ANACTL);
-
-	//wait rtc_busy;
-	rtc_wait_not_busy();
-
-	val = readl(REGS_RTC_BASE + RTC_ANAWEN);
-	writel(val | ANA_CNT_WEN, REGS_RTC_BASE + RTC_ANAWEN);
-	writel(time, REGS_RTC_BASE + RTC_CNTH);
-
-	//wait rtc_busy;
-	rtc_wait_not_busy();
-	while(readl(REGS_RTC_BASE + RTC_CNTH) != time) {
-		if (timeout-- == 0)
-			break;
-		taskYIELD();
-	}
+		tm->tm_hour, tm->tm_min, tm->tm_sec);
 }
 }
 
 
 /*
 /*
@@ -317,10 +173,7 @@ static int rtc_read_time(struct rtc_time *tm)
 #ifdef ACCESS_RTC_SUPPORT
 #ifdef ACCESS_RTC_SUPPORT
 	AccessRTC(ART_GET_TIME, &time);
 	AccessRTC(ART_GET_TIME, &time);
 #else
 #else
-	/* we don't report wday/yday/isdst ... */
-	rtc_wait_not_busy();
-
-	time = readl(REGS_RTC_BASE + RTC_CNTH);
+	//
 #endif
 #endif
 	rtc_time_to_tm(time, tm);
 	rtc_time_to_tm(time, tm);
 
 
@@ -346,135 +199,14 @@ static int rtc_set_time(struct rtc_time *tm)
 #ifdef ACCESS_RTC_SUPPORT
 #ifdef ACCESS_RTC_SUPPORT
 	return AccessRTC(ART_SET_TIME, &time);
 	return AccessRTC(ART_SET_TIME, &time);
 #else
 #else
-	rtc_update_time(time);
-#endif
-	return 0;
-}
-
-#if 0
-static void rtc_update_alarm_time(unsigned int time)
-{
-	unsigned int val;
-	int timeout = 100000;
-
-	val = readl(REGS_RTC_BASE + RTC_CTL);
-	writel(val | CTL_ALM_DATA_WEN, REGS_RTC_BASE + RTC_CTL);
-
-	writel(time, REGS_RTC_BASE + RTC_ALMDAT);
-
-	//wait rtc_busy;
-	rtc_wait_not_busy();
-	while(readl(REGS_RTC_BASE + RTC_ALMDAT) != time) {
-		if (timeout-- == 0)
-			break;
-		taskYIELD();
-	}
-}
-
-/*
- * rtc_read_alarm - read the alarm time
- * @alm: holds alarm date and time
- *
- * This function read alarm time and date. On success it will return 0
- * otherwise -ve error is returned.
- */
-static int rtc_read_alarm(struct rtc_wkalrm *alm)
-{
-	unsigned int time;
-
-	rtc_wait_not_busy();
-
-	time = readl(REGS_RTC_BASE + RTC_ALMDAT);
-
-	rtc_time_to_tm(time, &alm->time);
-
-	alm->enabled = readl(REGS_RTC_BASE + RTC_CTL) & CTL_ALARM_INT_EN;
-
-	return 0;
-}
-
-/*
- * rtc_set_alarm - set the alarm time
- * @alm: holds alarm date and time
- *
- * This function set alarm time and date. On success it will return 0
- * otherwise -ve error is returned.
- */
-static int rtc_set_alarm(struct rtc_wkalrm *alm)
-{
-	long unsigned int time;
-
-	if (rtc_valid_tm(&alm->time) < 0)
-		return -EINVAL;
-
-	/* convert tm to seconds. */
-	time = rtc_tm_to_time(&alm->time);
-
-	rtc_update_alarm_time(time);
-
-	if (alm->enabled)
-		rtc_enable_interrupt();
-	else
-		rtc_disable_interrupt();
-
-	return 0;
-}
+	//
 #endif
 #endif
-
-static int alarm_irq_enable(unsigned int enabled)
-{
-	int ret = 0;
-
-	rtc_clear_interrupt();
-
-	switch (enabled) {
-	case 0:
-		/* alarm off */
-		rtc_disable_interrupt();
-		break;
-	case 1:
-		/* alarm on */
-		rtc_enable_interrupt();
-		break;
-	default:
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-
-int rtc_init(void)
-{
-	struct rtc_time tm;
-
-	writel(0, REGS_RTC_BASE + RTC_CTL);
-	writel(CTL_SOFT_STR_SET|CTL_SOFT_STR_VALUE(1), REGS_RTC_BASE + RTC_CTL);
-	writel(CTL_OSC_EN_SET|CTL_OSC_EN_VALUE(0), REGS_RTC_BASE + RTC_CTL);
-	writel(CTL_CTL0_SET|CTL_CTL0_VALUE(0), REGS_RTC_BASE + RTC_CTL);
-	writel(CTL_CTL1_SET|CTL_CTL1_VALUE(0), REGS_RTC_BASE + RTC_CTL);
-	writel(CTL_CTL2_SET|CTL_CTL2_VALUE(0), REGS_RTC_BASE + RTC_CTL);
-	writel(CTL_CTL3_SET|CTL_CTL3_VALUE(0), REGS_RTC_BASE + RTC_CTL);
-	writel(CTL_BIAS_TRM_SET|CTL_BIAS_TRM_VALUE(1)|CTL_CTL3_VALUE(0), REGS_RTC_BASE + RTC_CTL);
-	udelay(1000);
-	writel(CTL_OSC_EN_SET|CTL_OSC_EN_VALUE(1), REGS_RTC_BASE + RTC_CTL);
-	udelay(1000);
-
-	request_irq(RTC_PRD_IRQn, 0, rtc_isr, NULL);
-	alarm_irq_enable(0);
-
-	rtc_read_time(&tm);
-	if (tm.tm_year == 70) {
-		rtc_set_time(&default_tm);
-	}
-
 	return 0;
 	return 0;
 }
 }
 
 
 int iGetLocalTime(SystemTime_t *tm)
 int iGetLocalTime(SystemTime_t *tm)
 {
 {
-	if(tm == NULL)
+	if (tm == NULL)
 		return -1;
 		return -1;
 
 
 	rtc_read_time(tm);
 	rtc_read_time(tm);
@@ -485,7 +217,7 @@ int iGetLocalTime(SystemTime_t *tm)
 
 
 int iSetLocalTime(SystemTime_t *tm)
 int iSetLocalTime(SystemTime_t *tm)
 {
 {
-	if(tm == NULL)
+	if (tm == NULL)
 		return -1;
 		return -1;
 
 
 	tm->tm_year -= 1900;
 	tm->tm_year -= 1900;

+ 7 - 2
amt630hv160-freertos-beta/ArkmicroFiles/libcpu-amt630hv160/source/sdio/mmc.c

@@ -159,10 +159,15 @@ static int mmc_get_ext_csd(struct mmcsd_card *card, uint8_t **new_ext_csd)
 
 
   mmcsd_send_request(card->host, &req);
   mmcsd_send_request(card->host, &req);
 
 
-  if (cmd.err)
+  if (cmd.err) {
+    vPortFree(ext_csd);
     return cmd.err;
     return cmd.err;
-  if (data.err)
+  }
+
+  if (data.err) {
+    vPortFree(ext_csd);
     return data.err;
     return data.err;
+  }
 
 
   *new_ext_csd = ext_csd;
   *new_ext_csd = ext_csd;
   return 0;
   return 0;

+ 8 - 6
amt630hv160-freertos-beta/ArkmicroFiles/libcpu-amt630hv160/source/sema.c

@@ -162,12 +162,10 @@ void sema_init(void)
 
 
 	//fixed config
 	//fixed config
 	sema_take(SEMA_GATE_SYS, portMAX_DELAY);
 	sema_take(SEMA_GATE_SYS, portMAX_DELAY);
-	sema_take(SEMA_GATE_GBUS, portMAX_DELAY);
-	sema_take(SEMA_GATE_VBUS, portMAX_DELAY);
-	sema_take(SEMA_GATE_CHBUS, portMAX_DELAY);
-	sema_take(SEMA_GATE_CABUS, portMAX_DELAY);
-	sema_take(SEMA_GATE_DDRCTL, portMAX_DELAY);
-	sema_take(SEMA_GATE_DDRPHY, portMAX_DELAY);
+//	sema_take(SEMA_GATE_GBUS, portMAX_DELAY);
+//	sema_take(SEMA_GATE_VBUS, portMAX_DELAY);
+//	sema_take(SEMA_GATE_CHBUS, portMAX_DELAY);
+//	sema_take(SEMA_GATE_CABUS, portMAX_DELAY);
 	sema_take(SEMA_GATE_TIMER, portMAX_DELAY);
 	sema_take(SEMA_GATE_TIMER, portMAX_DELAY);
 	sema_take(SEMA_GATE_UART0, portMAX_DELAY);
 	sema_take(SEMA_GATE_UART0, portMAX_DELAY);
 	sema_take(SEMA_GATE_UART1, portMAX_DELAY);
 	sema_take(SEMA_GATE_UART1, portMAX_DELAY);
@@ -195,8 +193,12 @@ void sema_init(void)
 	sema_take(SEMA_GATE_DDRRDC, portMAX_DELAY);
 	sema_take(SEMA_GATE_DDRRDC, portMAX_DELAY);
 	sema_take(SEMA_GATE_SRAMRDC, portMAX_DELAY);
 	sema_take(SEMA_GATE_SRAMRDC, portMAX_DELAY);
 	sema_take(SEMA_GATE_ITU, portMAX_DELAY);
 	sema_take(SEMA_GATE_ITU, portMAX_DELAY);
+#ifdef DW_I2C0_SUPPORT
 	sema_take(SEMA_GATE_I2C0, portMAX_DELAY);
 	sema_take(SEMA_GATE_I2C0, portMAX_DELAY);
+#endif
+#ifdef DW_I2C1_SUPPORT
 	sema_take(SEMA_GATE_I2C1, portMAX_DELAY);
 	sema_take(SEMA_GATE_I2C1, portMAX_DELAY);
+#endif
 	sema_take(SEMA_GATE_GPU, portMAX_DELAY);
 	sema_take(SEMA_GATE_GPU, portMAX_DELAY);
 #ifdef USB_SUPPORT
 #ifdef USB_SUPPORT
 	sema_take(SEMA_GATE_USB, portMAX_DELAY);
 	sema_take(SEMA_GATE_USB, portMAX_DELAY);

+ 0 - 1
amt630hv160-freertos-beta/main.c

@@ -122,7 +122,6 @@ static void prvBoardLateInitTask( void *pvParameters )
 
 
 /* you'd better init the rtc driver at last */
 /* you'd better init the rtc driver at last */
 #ifdef RTC_SUPPORT
 #ifdef RTC_SUPPORT
-	rtc_init();
 	SystemTime_t tm;
 	SystemTime_t tm;
 	iGetLocalTime(&tm);
 	iGetLocalTime(&tm);
 	printf("Time: %d-%.2d-%.2d %.2d:%.2d:%.2d.\n", tm.tm_year, tm.tm_mon,
 	printf("Time: %d-%.2d-%.2d %.2d:%.2d:%.2d.\n", tm.tm_year, tm.tm_mon,

+ 1 - 1
amt630hv160-freertos-beta/proj/amt630hv160.ewp

@@ -152,7 +152,7 @@
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>NEON</name>
                     <name>NEON</name>
-                    <state>0</state>
+                    <state>1</state>
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>GFPUCoreSlave2</name>
                     <name>GFPUCoreSlave2</name>

+ 0 - 5
amt630hv160-mcu/amt630hv160-mcu-iram/src/ArkmicroFiles/libcpu-amt630hv160/include/amt630hv160_efuse.h

@@ -32,11 +32,6 @@
 #define EFUSE_BOOTSRC_EMMC		2
 #define EFUSE_BOOTSRC_EMMC		2
 #define EFUSE_BOOTSRC_SPINAND	3
 #define EFUSE_BOOTSRC_SPINAND	3
 
 
-#define EFUSE_ISPMODE_USB_HOST		0
-#define EFUSE_ISPMODE_USB_DEVICE	1
-#define EFUSE_ISPMODE_UART			2
-#define EFUSE_ISPMODE_DISABLE		3
-
 typedef enum {
 typedef enum {
 	EFUSE_PARITY,
 	EFUSE_PARITY,
 	EFUSE_SECURE_BOOT_EN,
 	EFUSE_SECURE_BOOT_EN,

+ 0 - 56
amt630hv160-mcu/amt630hv160-mcu-iram/src/ArkmicroFiles/libcpu-amt630hv160/include/amt630hv160_rtc.h

@@ -74,16 +74,6 @@ typedef struct rtc_time {
 	int tm_yday;
 	int tm_yday;
 } SystemTime_t;
 } SystemTime_t;
 
 
-/*
- * This data structure is inspired by the EFI (v0.92) wakeup
- * alarm API.
- */
-struct rtc_wkalrm {
-	unsigned char enabled;	/* 0 = alarm disabled, 1 = alarm enabled */
-	unsigned char pending;  /* 0 = alarm not pending, 1 = alarm pending */
-	struct rtc_time time;	/* time the alarm is set to */
-};
-
 /* Exported constants --------------------------------------------------------*/
 /* Exported constants --------------------------------------------------------*/
 static inline int is_leap_year(unsigned int year)
 static inline int is_leap_year(unsigned int year)
 {
 {
@@ -93,52 +83,6 @@ static inline int is_leap_year(unsigned int year)
 #pragma section = "sleep_critical_data"
 #pragma section = "sleep_critical_data"
 
 
 /* Exported macro ------------------------------------------------------------*/
 /* Exported macro ------------------------------------------------------------*/
-//RTC_CTL register fields defination
-#define CTL_CTL3_VALUE(x)				(x<<23)
-#define CTL_CTL2_VALUE(x)				(x<<22)
-#define CTL_BIAS_TRM_VALUE(x)			(x<<21)
-#define CTL_SOFT_SEL_VALUE(x)			(x<<20)
-#define CTL_CTL1_VALUE(x)				(x<<19)
-#define CTL_CTL0_VALUE(x)				(x<<18)
-#define CTL_SOFT_STR_VALUE(x)			(x<<17)
-#define CTL_OSC_EN_VALUE(x)				(x<<16)
-#define CTL_CTL3_SET					(1<<15)
-#define CTL_CTL2_SET					(1<<14)
-#define CTL_BIAS_TRM_SET				(1<<13)
-#define CTL_SOFT_SEL_SET				(1<<12)
-#define CTL_CTL1_SET					(1<<11)
-#define CTL_CTL0_SET					(1<<10)
-#define CTL_SOFT_STR_SET				(1<<9)
-#define CTL_OSC_EN_SET					(1<<8)
-#define CTL_ALM_DATA_WEN				(1<<3)
-#define CTL_PERIOD_INT_EN				(1<<2)
-#define CTL_ALARM_INT_EN				(1<<1)
-#define CTL_RESET						(1<<0)
-
-//RTC_ANAWEN register fields defination
-#define ANA_CNT_WEN						(1<<12)
-#define ANA_SOFTWARE_WEN				(1<<11)
-#define ANA_DELAY_ON_TIMER_WEN			(1<<10)
-#define ANA_RTC_GPIO_WEN				(1<<9)
-#define ANA_PMC_H_WEN					(1<<8)
-#define ANA_PMC_L_WEN					(1<<7)
-#define ANA_ISOF_S_WEN					(1<<6)
-#define ANA_SLEEP_S_WEN					(1<<5)
-#define ANA_ISO_WEN						(1<<4)
-#define ANA_WATCHDOG_WEN				(1<<3)
-#define ANA_CLK32K_SEL_WEN				(1<<2)
-#define ANA_DELAY_ON_EN_WEN				(1<<1)
-#define ANA_FORCE_OFF_WEN				(1<<0)
-
-//RTC_ANACTL register fields defination
-#define ANACTL_ISOF_S					(1<<6)
-#define ANACTL_SLEEP_S					(1<<5)
-#define ANACTL_ISO						(1<<4)
-#define ANACTL_WATCHDOG_EN				(1<<3)
-#define ANACTL_CLK32K_SEL				(1<<2)
-#define ANACTL_DELAY_ON_EN				(1<<1)
-#define ANACTL_FORCE_OFF_EN				(1<<0)
-
 /* STATUS_REG */
 /* STATUS_REG */
 #define RTC_STA_BUSY					(1 << 2)
 #define RTC_STA_BUSY					(1 << 2)
 #define RTC_STA_SLEEPMODE				(1 << 3)
 #define RTC_STA_SLEEPMODE				(1 << 3)

+ 1 - 135
amt630hv160-mcu/amt630hv160-mcu-iram/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_rtc.c

@@ -448,47 +448,6 @@ uint32_t rtc_tm_to_time(struct rtc_time *tm)
 			tm->tm_hour, tm->tm_min, tm->tm_sec);
 			tm->tm_hour, tm->tm_min, tm->tm_sec);
 }
 }
 
 
-static __INLINE void rtc_clear_interrupt(void)
-{
-	unsigned int val;
-
-	val = RTC->RTCSTA;
-	val &= ~CTL_ALARM_INT_EN;
-	RTC->RTCSTA = val;
-}
-
-//static __INLINE void rtc_enable_interrupt(void)
-//{
-//	unsigned int val;
-//
-//	val = RTC->RTCCTL;
-//	if (!(val & CTL_ALARM_INT_EN)) {
-//		rtc_clear_interrupt();
-//		val |= CTL_ALARM_INT_EN;
-//		RTC->RTCCTL = val;
-//	}
-//}
-
-//static __INLINE void rtc_disable_interrupt(void)
-//{
-//	unsigned int val;
-//
-//	val = RTC->RTCCTL;
-//	if (val & CTL_ALARM_INT_EN) {
-//		val &= ~CTL_ALARM_INT_EN;
-//		RTC->RTCCTL = val;
-//	}
-//}
-
-void RTC_PRD_IRQHandler(void)
-{
-	if ((RTC->RTCSTA & CTL_ALARM_INT_EN)) {
-		rtc_clear_interrupt();
-		return;
-	} else
-		return;
-}
-
 static void rtc_update_time(unsigned int time)
 static void rtc_update_time(unsigned int time)
 {
 {
 	int timeout = 100000;
 	int timeout = 100000;
@@ -498,7 +457,7 @@ static void rtc_update_time(unsigned int time)
 
 
 	//wait rtc_busy;
 	//wait rtc_busy;
 	RTC_WaitNotBusy();
 	RTC_WaitNotBusy();
-	while(RTC->CNT_H != time) {
+	while (RTC->CNT_H != time) {
 		if (timeout-- == 0)
 		if (timeout-- == 0)
 			break;
 			break;
 		taskYIELD();
 		taskYIELD();
@@ -548,99 +507,6 @@ static int rtc_set_time(struct rtc_time *tm)
 	return 0;
 	return 0;
 }
 }
 
 
-#if 0
-static void rtc_update_alarm_time(unsigned int time)
-{
-	unsigned int val;
-	int timeout = 100000;
-
-	val = readl(REGS_RTC_BASE + RTC_CTL);
-	writel(val | CTL_ALM_DATA_WEN, REGS_RTC_BASE + RTC_CTL);
-
-	writel(time, REGS_RTC_BASE + RTC_ALMDAT);
-
-	//wait rtc_busy;
-	rtc_wait_not_busy();
-	while(readl(REGS_RTC_BASE + RTC_ALMDAT) != time) {
-		if (timeout-- == 0)
-			break;
-		taskYIELD();
-	}
-}
-
-/*
- * rtc_read_alarm - read the alarm time
- * @alm: holds alarm date and time
- *
- * This function read alarm time and date. On success it will return 0
- * otherwise -ve error is returned.
- */
-static int rtc_read_alarm(struct rtc_wkalrm *alm)
-{
-	unsigned int time;
-
-	rtc_wait_not_busy();
-
-	time = readl(REGS_RTC_BASE + RTC_ALMDAT);
-
-	rtc_time_to_tm(time, &alm->time);
-
-	alm->enabled = readl(REGS_RTC_BASE + RTC_CTL) & CTL_ALARM_INT_EN;
-
-	return 0;
-}
-
-/*
- * rtc_set_alarm - set the alarm time
- * @alm: holds alarm date and time
- *
- * This function set alarm time and date. On success it will return 0
- * otherwise -ve error is returned.
- */
-static int rtc_set_alarm(struct rtc_wkalrm *alm)
-{
-	long unsigned int time;
-
-	if (rtc_valid_tm(&alm->time) < 0)
-		return -EINVAL;
-
-	/* convert tm to seconds. */
-	time = rtc_tm_to_time(&alm->time);
-
-	rtc_update_alarm_time(time);
-
-	if (alm->enabled)
-		rtc_enable_interrupt();
-	else
-		rtc_disable_interrupt();
-
-	return 0;
-}
-#endif
-
-//static int alarm_irq_enable(unsigned int enabled)
-//{
-//	int ret = 0;
-//
-//	rtc_clear_interrupt();
-//
-//	switch (enabled) {
-//	case 0:
-//		/* alarm off */
-//		rtc_disable_interrupt();
-//		break;
-//	case 1:
-//		/* alarm on */
-//		rtc_enable_interrupt();
-//		break;
-//	default:
-//		ret = -EINVAL;
-//		break;
-//	}
-//
-//	return ret;
-//}
-
 int rtc_time_init(void)
 int rtc_time_init(void)
 {
 {
 	struct rtc_time tm;
 	struct rtc_time tm;

+ 0 - 5
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/ArkmicroFiles/libcpu-amt630hv160/include/amt630hv160_efuse.h

@@ -32,11 +32,6 @@
 #define EFUSE_BOOTSRC_EMMC		2
 #define EFUSE_BOOTSRC_EMMC		2
 #define EFUSE_BOOTSRC_SPINAND	3
 #define EFUSE_BOOTSRC_SPINAND	3
 
 
-#define EFUSE_ISPMODE_USB_HOST		0
-#define EFUSE_ISPMODE_USB_DEVICE	1
-#define EFUSE_ISPMODE_UART			2
-#define EFUSE_ISPMODE_DISABLE		3
-
 typedef enum {
 typedef enum {
 	EFUSE_PARITY,
 	EFUSE_PARITY,
 	EFUSE_SECURE_BOOT_EN,
 	EFUSE_SECURE_BOOT_EN,

+ 0 - 56
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/ArkmicroFiles/libcpu-amt630hv160/include/amt630hv160_rtc.h

@@ -74,16 +74,6 @@ typedef struct rtc_time {
 	int tm_yday;
 	int tm_yday;
 } SystemTime_t;
 } SystemTime_t;
 
 
-/*
- * This data structure is inspired by the EFI (v0.92) wakeup
- * alarm API.
- */
-struct rtc_wkalrm {
-	unsigned char enabled;	/* 0 = alarm disabled, 1 = alarm enabled */
-	unsigned char pending;  /* 0 = alarm not pending, 1 = alarm pending */
-	struct rtc_time time;	/* time the alarm is set to */
-};
-
 /* Exported constants --------------------------------------------------------*/
 /* Exported constants --------------------------------------------------------*/
 static inline int is_leap_year(unsigned int year)
 static inline int is_leap_year(unsigned int year)
 {
 {
@@ -93,52 +83,6 @@ static inline int is_leap_year(unsigned int year)
 #pragma section = "sleep_critical_data"
 #pragma section = "sleep_critical_data"
 
 
 /* Exported macro ------------------------------------------------------------*/
 /* Exported macro ------------------------------------------------------------*/
-//RTC_CTL register fields defination
-#define CTL_CTL3_VALUE(x)				(x<<23)
-#define CTL_CTL2_VALUE(x)				(x<<22)
-#define CTL_BIAS_TRM_VALUE(x)			(x<<21)
-#define CTL_SOFT_SEL_VALUE(x)			(x<<20)
-#define CTL_CTL1_VALUE(x)				(x<<19)
-#define CTL_CTL0_VALUE(x)				(x<<18)
-#define CTL_SOFT_STR_VALUE(x)			(x<<17)
-#define CTL_OSC_EN_VALUE(x)				(x<<16)
-#define CTL_CTL3_SET					(1<<15)
-#define CTL_CTL2_SET					(1<<14)
-#define CTL_BIAS_TRM_SET				(1<<13)
-#define CTL_SOFT_SEL_SET				(1<<12)
-#define CTL_CTL1_SET					(1<<11)
-#define CTL_CTL0_SET					(1<<10)
-#define CTL_SOFT_STR_SET				(1<<9)
-#define CTL_OSC_EN_SET					(1<<8)
-#define CTL_ALM_DATA_WEN				(1<<3)
-#define CTL_PERIOD_INT_EN				(1<<2)
-#define CTL_ALARM_INT_EN				(1<<1)
-#define CTL_RESET						(1<<0)
-
-//RTC_ANAWEN register fields defination
-#define ANA_CNT_WEN						(1<<12)
-#define ANA_SOFTWARE_WEN				(1<<11)
-#define ANA_DELAY_ON_TIMER_WEN			(1<<10)
-#define ANA_RTC_GPIO_WEN				(1<<9)
-#define ANA_PMC_H_WEN					(1<<8)
-#define ANA_PMC_L_WEN					(1<<7)
-#define ANA_ISOF_S_WEN					(1<<6)
-#define ANA_SLEEP_S_WEN					(1<<5)
-#define ANA_ISO_WEN						(1<<4)
-#define ANA_WATCHDOG_WEN				(1<<3)
-#define ANA_CLK32K_SEL_WEN				(1<<2)
-#define ANA_DELAY_ON_EN_WEN				(1<<1)
-#define ANA_FORCE_OFF_WEN				(1<<0)
-
-//RTC_ANACTL register fields defination
-#define ANACTL_ISOF_S					(1<<6)
-#define ANACTL_SLEEP_S					(1<<5)
-#define ANACTL_ISO						(1<<4)
-#define ANACTL_WATCHDOG_EN				(1<<3)
-#define ANACTL_CLK32K_SEL				(1<<2)
-#define ANACTL_DELAY_ON_EN				(1<<1)
-#define ANACTL_FORCE_OFF_EN				(1<<0)
-
 /* STATUS_REG */
 /* STATUS_REG */
 #define RTC_STA_BUSY					(1 << 2)
 #define RTC_STA_BUSY					(1 << 2)
 #define RTC_STA_SLEEPMODE				(1 << 3)
 #define RTC_STA_SLEEPMODE				(1 << 3)

+ 1 - 135
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_rtc.c

@@ -448,47 +448,6 @@ uint32_t rtc_tm_to_time(struct rtc_time *tm)
 			tm->tm_hour, tm->tm_min, tm->tm_sec);
 			tm->tm_hour, tm->tm_min, tm->tm_sec);
 }
 }
 
 
-static __INLINE void rtc_clear_interrupt(void)
-{
-	unsigned int val;
-
-	val = RTC->RTCSTA;
-	val &= ~CTL_ALARM_INT_EN;
-	RTC->RTCSTA = val;
-}
-
-//static __INLINE void rtc_enable_interrupt(void)
-//{
-//	unsigned int val;
-//
-//	val = RTC->RTCCTL;
-//	if (!(val & CTL_ALARM_INT_EN)) {
-//		rtc_clear_interrupt();
-//		val |= CTL_ALARM_INT_EN;
-//		RTC->RTCCTL = val;
-//	}
-//}
-
-//static __INLINE void rtc_disable_interrupt(void)
-//{
-//	unsigned int val;
-//
-//	val = RTC->RTCCTL;
-//	if (val & CTL_ALARM_INT_EN) {
-//		val &= ~CTL_ALARM_INT_EN;
-//		RTC->RTCCTL = val;
-//	}
-//}
-
-void RTC_PRD_IRQHandler(void)
-{
-	if ((RTC->RTCSTA & CTL_ALARM_INT_EN)) {
-		rtc_clear_interrupt();
-		return;
-	} else
-		return;
-}
-
 static void rtc_update_time(unsigned int time)
 static void rtc_update_time(unsigned int time)
 {
 {
 	int timeout = 100000;
 	int timeout = 100000;
@@ -498,7 +457,7 @@ static void rtc_update_time(unsigned int time)
 
 
 	//wait rtc_busy;
 	//wait rtc_busy;
 	RTC_WaitNotBusy();
 	RTC_WaitNotBusy();
-	while(RTC->CNT_H != time) {
+	while (RTC->CNT_H != time) {
 		if (timeout-- == 0)
 		if (timeout-- == 0)
 			break;
 			break;
 	}
 	}
@@ -547,99 +506,6 @@ static int rtc_set_time(struct rtc_time *tm)
 	return 0;
 	return 0;
 }
 }
 
 
-#if 0
-static void rtc_update_alarm_time(unsigned int time)
-{
-	unsigned int val;
-	int timeout = 100000;
-
-	val = readl(REGS_RTC_BASE + RTC_CTL);
-	writel(val | CTL_ALM_DATA_WEN, REGS_RTC_BASE + RTC_CTL);
-
-	writel(time, REGS_RTC_BASE + RTC_ALMDAT);
-
-	//wait rtc_busy;
-	rtc_wait_not_busy();
-	while(readl(REGS_RTC_BASE + RTC_ALMDAT) != time) {
-		if (timeout-- == 0)
-			break;
-		taskYIELD();
-	}
-}
-
-/*
- * rtc_read_alarm - read the alarm time
- * @alm: holds alarm date and time
- *
- * This function read alarm time and date. On success it will return 0
- * otherwise -ve error is returned.
- */
-static int rtc_read_alarm(struct rtc_wkalrm *alm)
-{
-	unsigned int time;
-
-	rtc_wait_not_busy();
-
-	time = readl(REGS_RTC_BASE + RTC_ALMDAT);
-
-	rtc_time_to_tm(time, &alm->time);
-
-	alm->enabled = readl(REGS_RTC_BASE + RTC_CTL) & CTL_ALARM_INT_EN;
-
-	return 0;
-}
-
-/*
- * rtc_set_alarm - set the alarm time
- * @alm: holds alarm date and time
- *
- * This function set alarm time and date. On success it will return 0
- * otherwise -ve error is returned.
- */
-static int rtc_set_alarm(struct rtc_wkalrm *alm)
-{
-	long unsigned int time;
-
-	if (rtc_valid_tm(&alm->time) < 0)
-		return -EINVAL;
-
-	/* convert tm to seconds. */
-	time = rtc_tm_to_time(&alm->time);
-
-	rtc_update_alarm_time(time);
-
-	if (alm->enabled)
-		rtc_enable_interrupt();
-	else
-		rtc_disable_interrupt();
-
-	return 0;
-}
-#endif
-
-//static int alarm_irq_enable(unsigned int enabled)
-//{
-//	int ret = 0;
-//
-//	rtc_clear_interrupt();
-//
-//	switch (enabled) {
-//	case 0:
-//		/* alarm off */
-//		rtc_disable_interrupt();
-//		break;
-//	case 1:
-//		/* alarm on */
-//		rtc_enable_interrupt();
-//		break;
-//	default:
-//		ret = -EINVAL;
-//		break;
-//	}
-//
-//	return ret;
-//}
-
 int rtc_time_init(void)
 int rtc_time_init(void)
 {
 {
 	struct rtc_time tm;
 	struct rtc_time tm;