summaryrefslogtreecommitdiff
path: root/components/drivers/include
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2021-03-31 14:15:21 +0800
committerGitHub <[email protected]>2021-03-31 14:15:21 +0800
commit259144b2e658d6bdc543afb6b2e88f5461a070b4 (patch)
tree7e4e1a241a70330b4f6a4e78d6549c9e68d4873d /components/drivers/include
parent28ec21671cfd8992b3ad2d6ea48989968ad23e7c (diff)
parenta15040d3a9175b13486d756eafe0dd03645368da (diff)
Merge branch 'master' into master
Diffstat (limited to 'components/drivers/include')
-rw-r--r--components/drivers/include/drivers/adc.h2
-rw-r--r--components/drivers/include/drivers/alarm.h2
-rw-r--r--components/drivers/include/drivers/audio.h2
-rw-r--r--components/drivers/include/drivers/can.h2
-rw-r--r--components/drivers/include/drivers/cputime.h2
-rw-r--r--components/drivers/include/drivers/crypto.h2
-rw-r--r--components/drivers/include/drivers/dac.h2
-rw-r--r--components/drivers/include/drivers/hwtimer.h4
-rw-r--r--components/drivers/include/drivers/i2c-bit-ops.h2
-rw-r--r--components/drivers/include/drivers/i2c.h2
-rw-r--r--components/drivers/include/drivers/i2c_dev.h2
-rw-r--r--components/drivers/include/drivers/mmc.h244
-rw-r--r--components/drivers/include/drivers/mmcsd_card.h190
-rw-r--r--components/drivers/include/drivers/mmcsd_cmd.h12
-rw-r--r--components/drivers/include/drivers/mmcsd_core.h264
-rw-r--r--components/drivers/include/drivers/mmcsd_host.h148
-rw-r--r--components/drivers/include/drivers/mtd_nand.h2
-rw-r--r--components/drivers/include/drivers/mtd_nor.h44
-rw-r--r--components/drivers/include/drivers/phy.h2
-rw-r--r--components/drivers/include/drivers/phy_mdio.h2
-rw-r--r--components/drivers/include/drivers/pin.h9
-rw-r--r--components/drivers/include/drivers/pm.h2
-rw-r--r--components/drivers/include/drivers/pulse_encoder.h2
-rw-r--r--components/drivers/include/drivers/rt_drv_pwm.h2
-rw-r--r--components/drivers/include/drivers/rt_inputcapture.h2
-rw-r--r--components/drivers/include/drivers/rtc.h2
-rw-r--r--components/drivers/include/drivers/sd.h2
-rw-r--r--components/drivers/include/drivers/sdio.h14
-rw-r--r--components/drivers/include/drivers/sdio_func_ids.h4
-rw-r--r--components/drivers/include/drivers/sensor.h238
-rw-r--r--components/drivers/include/drivers/serial.h6
-rw-r--r--components/drivers/include/drivers/spi.h4
-rw-r--r--components/drivers/include/drivers/usb_common.h22
-rw-r--r--components/drivers/include/drivers/usb_device.h23
-rw-r--r--components/drivers/include/drivers/usb_host.h38
-rw-r--r--components/drivers/include/drivers/watchdog.h4
-rw-r--r--components/drivers/include/drivers/wlan.h2
-rw-r--r--components/drivers/include/ipc/completion.h2
-rw-r--r--components/drivers/include/ipc/dataqueue.h2
-rw-r--r--components/drivers/include/ipc/pipe.h2
-rw-r--r--components/drivers/include/ipc/poll.h2
-rw-r--r--components/drivers/include/ipc/ringblk_buf.h2
-rw-r--r--components/drivers/include/ipc/ringbuffer.h2
-rw-r--r--components/drivers/include/ipc/waitqueue.h4
-rw-r--r--components/drivers/include/ipc/workqueue.h4
-rw-r--r--components/drivers/include/rtdevice.h42
46 files changed, 809 insertions, 561 deletions
diff --git a/components/drivers/include/drivers/adc.h b/components/drivers/include/drivers/adc.h
index 8e3498e791..e2ce087fb9 100644
--- a/components/drivers/include/drivers/adc.h
+++ b/components/drivers/include/drivers/adc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/alarm.h b/components/drivers/include/drivers/alarm.h
index e59c4142c7..11637df949 100644
--- a/components/drivers/include/drivers/alarm.h
+++ b/components/drivers/include/drivers/alarm.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/audio.h b/components/drivers/include/drivers/audio.h
index 86057e7626..45c31be2f3 100644
--- a/components/drivers/include/drivers/audio.h
+++ b/components/drivers/include/drivers/audio.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/can.h b/components/drivers/include/drivers/can.h
index d4fcc845b4..bb05317d4f 100644
--- a/components/drivers/include/drivers/can.h
+++ b/components/drivers/include/drivers/can.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/cputime.h b/components/drivers/include/drivers/cputime.h
index 78c22fc1da..0141f24805 100644
--- a/components/drivers/include/drivers/cputime.h
+++ b/components/drivers/include/drivers/cputime.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/crypto.h b/components/drivers/include/drivers/crypto.h
index 5341d9ee48..8270a78b09 100644
--- a/components/drivers/include/drivers/crypto.h
+++ b/components/drivers/include/drivers/crypto.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/dac.h b/components/drivers/include/drivers/dac.h
index b6043348dc..7d5ff3592a 100644
--- a/components/drivers/include/drivers/dac.h
+++ b/components/drivers/include/drivers/dac.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/hwtimer.h b/components/drivers/include/drivers/hwtimer.h
index cbfeec2bf8..0bf4893790 100644
--- a/components/drivers/include/drivers/hwtimer.h
+++ b/components/drivers/include/drivers/hwtimer.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -70,7 +70,7 @@ typedef struct rt_hwtimer_device
rt_int32_t freq; /* counting frequency set by the user */
rt_int32_t overflow; /* timer overflows */
- float period_sec;
+ float period_sec;
rt_int32_t cycles; /* how many times will generate a timeout event after overflow */
rt_int32_t reload; /* reload cycles(using in period mode) */
rt_hwtimer_mode_t mode; /* timing mode(oneshot/period) */
diff --git a/components/drivers/include/drivers/i2c-bit-ops.h b/components/drivers/include/drivers/i2c-bit-ops.h
index ddf9a36d73..0d94de114a 100644
--- a/components/drivers/include/drivers/i2c-bit-ops.h
+++ b/components/drivers/include/drivers/i2c-bit-ops.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/i2c.h b/components/drivers/include/drivers/i2c.h
index d93e82fc2b..50ce021d53 100644
--- a/components/drivers/include/drivers/i2c.h
+++ b/components/drivers/include/drivers/i2c.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/i2c_dev.h b/components/drivers/include/drivers/i2c_dev.h
index 5ef9dd1a8c..94f110c055 100644
--- a/components/drivers/include/drivers/i2c_dev.h
+++ b/components/drivers/include/drivers/i2c_dev.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/mmc.h b/components/drivers/include/drivers/mmc.h
index 95dce7178a..d472bbbc5d 100644
--- a/components/drivers/include/drivers/mmc.h
+++ b/components/drivers/include/drivers/mmc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -22,163 +22,163 @@ extern "C" {
* EXT_CSD fields
*/
-#define EXT_CSD_FLUSH_CACHE 32 /* W */
-#define EXT_CSD_CACHE_CTRL 33 /* R/W */
-#define EXT_CSD_POWER_OFF_NOTIFICATION 34 /* R/W */
-#define EXT_CSD_PACKED_FAILURE_INDEX 35 /* RO */
-#define EXT_CSD_PACKED_CMD_STATUS 36 /* RO */
-#define EXT_CSD_EXP_EVENTS_STATUS 54 /* RO, 2 bytes */
-#define EXT_CSD_EXP_EVENTS_CTRL 56 /* R/W, 2 bytes */
-#define EXT_CSD_DATA_SECTOR_SIZE 61 /* R */
-#define EXT_CSD_GP_SIZE_MULT 143 /* R/W */
-#define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */
-#define EXT_CSD_PARTITION_SUPPORT 160 /* RO */
-#define EXT_CSD_HPI_MGMT 161 /* R/W */
-#define EXT_CSD_RST_N_FUNCTION 162 /* R/W */
-#define EXT_CSD_BKOPS_EN 163 /* R/W */
-#define EXT_CSD_BKOPS_START 164 /* W */
-#define EXT_CSD_SANITIZE_START 165 /* W */
-#define EXT_CSD_WR_REL_PARAM 166 /* RO */
-#define EXT_CSD_RPMB_MULT 168 /* RO */
-#define EXT_CSD_BOOT_WP 173 /* R/W */
-#define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */
-#define EXT_CSD_PART_CONFIG 179 /* R/W */
-#define EXT_CSD_ERASED_MEM_CONT 181 /* RO */
-#define EXT_CSD_BUS_WIDTH 183 /* R/W */
-#define EXT_CSD_HS_TIMING 185 /* R/W */
-#define EXT_CSD_POWER_CLASS 187 /* R/W */
-#define EXT_CSD_REV 192 /* RO */
-#define EXT_CSD_STRUCTURE 194 /* RO */
-#define EXT_CSD_CARD_TYPE 196 /* RO */
-#define EXT_CSD_OUT_OF_INTERRUPT_TIME 198 /* RO */
+#define EXT_CSD_FLUSH_CACHE 32 /* W */
+#define EXT_CSD_CACHE_CTRL 33 /* R/W */
+#define EXT_CSD_POWER_OFF_NOTIFICATION 34 /* R/W */
+#define EXT_CSD_PACKED_FAILURE_INDEX 35 /* RO */
+#define EXT_CSD_PACKED_CMD_STATUS 36 /* RO */
+#define EXT_CSD_EXP_EVENTS_STATUS 54 /* RO, 2 bytes */
+#define EXT_CSD_EXP_EVENTS_CTRL 56 /* R/W, 2 bytes */
+#define EXT_CSD_DATA_SECTOR_SIZE 61 /* R */
+#define EXT_CSD_GP_SIZE_MULT 143 /* R/W */
+#define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */
+#define EXT_CSD_PARTITION_SUPPORT 160 /* RO */
+#define EXT_CSD_HPI_MGMT 161 /* R/W */
+#define EXT_CSD_RST_N_FUNCTION 162 /* R/W */
+#define EXT_CSD_BKOPS_EN 163 /* R/W */
+#define EXT_CSD_BKOPS_START 164 /* W */
+#define EXT_CSD_SANITIZE_START 165 /* W */
+#define EXT_CSD_WR_REL_PARAM 166 /* RO */
+#define EXT_CSD_RPMB_MULT 168 /* RO */
+#define EXT_CSD_BOOT_WP 173 /* R/W */
+#define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */
+#define EXT_CSD_PART_CONFIG 179 /* R/W */
+#define EXT_CSD_ERASED_MEM_CONT 181 /* RO */
+#define EXT_CSD_BUS_WIDTH 183 /* R/W */
+#define EXT_CSD_HS_TIMING 185 /* R/W */
+#define EXT_CSD_POWER_CLASS 187 /* R/W */
+#define EXT_CSD_REV 192 /* RO */
+#define EXT_CSD_STRUCTURE 194 /* RO */
+#define EXT_CSD_CARD_TYPE 196 /* RO */
+#define EXT_CSD_OUT_OF_INTERRUPT_TIME 198 /* RO */
#define EXT_CSD_PART_SWITCH_TIME 199 /* RO */
-#define EXT_CSD_PWR_CL_52_195 200 /* RO */
-#define EXT_CSD_PWR_CL_26_195 201 /* RO */
-#define EXT_CSD_PWR_CL_52_360 202 /* RO */
-#define EXT_CSD_PWR_CL_26_360 203 /* RO */
-#define EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */
-#define EXT_CSD_S_A_TIMEOUT 217 /* RO */
-#define EXT_CSD_REL_WR_SEC_C 222 /* RO */
-#define EXT_CSD_HC_WP_GRP_SIZE 221 /* RO */
-#define EXT_CSD_ERASE_TIMEOUT_MULT 223 /* RO */
-#define EXT_CSD_HC_ERASE_GRP_SIZE 224 /* RO */
-#define EXT_CSD_BOOT_MULT 226 /* RO */
-#define EXT_CSD_SEC_TRIM_MULT 229 /* RO */
-#define EXT_CSD_SEC_ERASE_MULT 230 /* RO */
-#define EXT_CSD_SEC_FEATURE_SUPPORT 231 /* RO */
-#define EXT_CSD_TRIM_MULT 232 /* RO */
-#define EXT_CSD_PWR_CL_200_195 236 /* RO */
-#define EXT_CSD_PWR_CL_200_360 237 /* RO */
-#define EXT_CSD_PWR_CL_DDR_52_195 238 /* RO */
-#define EXT_CSD_PWR_CL_DDR_52_360 239 /* RO */
-#define EXT_CSD_BKOPS_STATUS 246 /* RO */
-#define EXT_CSD_POWER_OFF_LONG_TIME 247 /* RO */
-#define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */
-#define EXT_CSD_CACHE_SIZE 249 /* RO, 4 bytes */
-#define EXT_CSD_PWR_CL_DDR_200_360 253 /* RO */
-#define EXT_CSD_TAG_UNIT_SIZE 498 /* RO */
-#define EXT_CSD_DATA_TAG_SUPPORT 499 /* RO */
-#define EXT_CSD_MAX_PACKED_WRITES 500 /* RO */
-#define EXT_CSD_MAX_PACKED_READS 501 /* RO */
-#define EXT_CSD_BKOPS_SUPPORT 502 /* RO */
-#define EXT_CSD_HPI_FEATURES 503 /* RO */
+#define EXT_CSD_PWR_CL_52_195 200 /* RO */
+#define EXT_CSD_PWR_CL_26_195 201 /* RO */
+#define EXT_CSD_PWR_CL_52_360 202 /* RO */
+#define EXT_CSD_PWR_CL_26_360 203 /* RO */
+#define EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */
+#define EXT_CSD_S_A_TIMEOUT 217 /* RO */
+#define EXT_CSD_REL_WR_SEC_C 222 /* RO */
+#define EXT_CSD_HC_WP_GRP_SIZE 221 /* RO */
+#define EXT_CSD_ERASE_TIMEOUT_MULT 223 /* RO */
+#define EXT_CSD_HC_ERASE_GRP_SIZE 224 /* RO */
+#define EXT_CSD_BOOT_MULT 226 /* RO */
+#define EXT_CSD_SEC_TRIM_MULT 229 /* RO */
+#define EXT_CSD_SEC_ERASE_MULT 230 /* RO */
+#define EXT_CSD_SEC_FEATURE_SUPPORT 231 /* RO */
+#define EXT_CSD_TRIM_MULT 232 /* RO */
+#define EXT_CSD_PWR_CL_200_195 236 /* RO */
+#define EXT_CSD_PWR_CL_200_360 237 /* RO */
+#define EXT_CSD_PWR_CL_DDR_52_195 238 /* RO */
+#define EXT_CSD_PWR_CL_DDR_52_360 239 /* RO */
+#define EXT_CSD_BKOPS_STATUS 246 /* RO */
+#define EXT_CSD_POWER_OFF_LONG_TIME 247 /* RO */
+#define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */
+#define EXT_CSD_CACHE_SIZE 249 /* RO, 4 bytes */
+#define EXT_CSD_PWR_CL_DDR_200_360 253 /* RO */
+#define EXT_CSD_TAG_UNIT_SIZE 498 /* RO */
+#define EXT_CSD_DATA_TAG_SUPPORT 499 /* RO */
+#define EXT_CSD_MAX_PACKED_WRITES 500 /* RO */
+#define EXT_CSD_MAX_PACKED_READS 501 /* RO */
+#define EXT_CSD_BKOPS_SUPPORT 502 /* RO */
+#define EXT_CSD_HPI_FEATURES 503 /* RO */
/*
* EXT_CSD field definitions
*/
-#define EXT_CSD_WR_REL_PARAM_EN (1<<2)
+#define EXT_CSD_WR_REL_PARAM_EN (1<<2)
-#define EXT_CSD_BOOT_WP_B_PWR_WP_DIS (0x40)
-#define EXT_CSD_BOOT_WP_B_PERM_WP_DIS (0x10)
-#define EXT_CSD_BOOT_WP_B_PERM_WP_EN (0x04)
-#define EXT_CSD_BOOT_WP_B_PWR_WP_EN (0x01)
+#define EXT_CSD_BOOT_WP_B_PWR_WP_DIS (0x40)
+#define EXT_CSD_BOOT_WP_B_PERM_WP_DIS (0x10)
+#define EXT_CSD_BOOT_WP_B_PERM_WP_EN (0x04)
+#define EXT_CSD_BOOT_WP_B_PWR_WP_EN (0x01)
-#define EXT_CSD_PART_CONFIG_ACC_MASK (0x7)
-#define EXT_CSD_PART_CONFIG_ACC_BOOT0 (0x1)
-#define EXT_CSD_PART_CONFIG_ACC_RPMB (0x3)
-#define EXT_CSD_PART_CONFIG_ACC_GP0 (0x4)
+#define EXT_CSD_PART_CONFIG_ACC_MASK (0x7)
+#define EXT_CSD_PART_CONFIG_ACC_BOOT0 (0x1)
+#define EXT_CSD_PART_CONFIG_ACC_RPMB (0x3)
+#define EXT_CSD_PART_CONFIG_ACC_GP0 (0x4)
-#define EXT_CSD_PART_SUPPORT_PART_EN (0x1)
+#define EXT_CSD_PART_SUPPORT_PART_EN (0x1)
-#define EXT_CSD_CMD_SET_NORMAL (1<<0)
-#define EXT_CSD_CMD_SET_SECURE (1<<1)
-#define EXT_CSD_CMD_SET_CPSECURE (1<<2)
+#define EXT_CSD_CMD_SET_NORMAL (1<<0)
+#define EXT_CSD_CMD_SET_SECURE (1<<1)
+#define EXT_CSD_CMD_SET_CPSECURE (1<<2)
-#define EXT_CSD_CARD_TYPE_HS_26 (1<<0) /* Card can run at 26MHz */
-#define EXT_CSD_CARD_TYPE_HS_52 (1<<1) /* Card can run at 52MHz */
-#define EXT_CSD_CARD_TYPE_HS (EXT_CSD_CARD_TYPE_HS_26 | \
+#define EXT_CSD_CARD_TYPE_HS_26 (1<<0) /* Card can run at 26MHz */
+#define EXT_CSD_CARD_TYPE_HS_52 (1<<1) /* Card can run at 52MHz */
+#define EXT_CSD_CARD_TYPE_HS (EXT_CSD_CARD_TYPE_HS_26 | \
EXT_CSD_CARD_TYPE_HS_52)
#define EXT_CSD_CARD_TYPE_DDR_1_8V (1<<2) /* Card can run at 52MHz */
/* DDR mode @1.8V or 3V I/O */
#define EXT_CSD_CARD_TYPE_DDR_1_2V (1<<3) /* Card can run at 52MHz */
- /* DDR mode @1.2V I/O */
+ /* DDR mode @1.2V I/O */
#define EXT_CSD_CARD_TYPE_DDR_52 (EXT_CSD_CARD_TYPE_DDR_1_8V \
| EXT_CSD_CARD_TYPE_DDR_1_2V)
-#define EXT_CSD_CARD_TYPE_HS200_1_8V (1<<4) /* Card can run at 200MHz */
-#define EXT_CSD_CARD_TYPE_HS200_1_2V (1<<5) /* Card can run at 200MHz */
- /* SDR mode @1.2V I/O */
-#define EXT_CSD_CARD_TYPE_HS200 (EXT_CSD_CARD_TYPE_HS200_1_8V | \
- EXT_CSD_CARD_TYPE_HS200_1_2V)
-#define EXT_CSD_CARD_TYPE_HS400_1_8V (1<<6) /* Card can run at 200MHz DDR, 1.8V */
-#define EXT_CSD_CARD_TYPE_HS400_1_2V (1<<7) /* Card can run at 200MHz DDR, 1.2V */
-#define EXT_CSD_CARD_TYPE_HS400 (EXT_CSD_CARD_TYPE_HS400_1_8V | \
- EXT_CSD_CARD_TYPE_HS400_1_2V)
+#define EXT_CSD_CARD_TYPE_HS200_1_8V (1<<4) /* Card can run at 200MHz */
+#define EXT_CSD_CARD_TYPE_HS200_1_2V (1<<5) /* Card can run at 200MHz */
+ /* SDR mode @1.2V I/O */
+#define EXT_CSD_CARD_TYPE_HS200 (EXT_CSD_CARD_TYPE_HS200_1_8V | \
+ EXT_CSD_CARD_TYPE_HS200_1_2V)
+#define EXT_CSD_CARD_TYPE_HS400_1_8V (1<<6) /* Card can run at 200MHz DDR, 1.8V */
+#define EXT_CSD_CARD_TYPE_HS400_1_2V (1<<7) /* Card can run at 200MHz DDR, 1.2V */
+#define EXT_CSD_CARD_TYPE_HS400 (EXT_CSD_CARD_TYPE_HS400_1_8V | \
+ EXT_CSD_CARD_TYPE_HS400_1_2V)
-#define EXT_CSD_BUS_WIDTH_1 0 /* Card is in 1 bit mode */
-#define EXT_CSD_BUS_WIDTH_4 1 /* Card is in 4 bit mode */
-#define EXT_CSD_BUS_WIDTH_8 2 /* Card is in 8 bit mode */
-#define EXT_CSD_DDR_BUS_WIDTH_4 5 /* Card is in 4 bit DDR mode */
-#define EXT_CSD_DDR_BUS_WIDTH_8 6 /* Card is in 8 bit DDR mode */
+#define EXT_CSD_BUS_WIDTH_1 0 /* Card is in 1 bit mode */
+#define EXT_CSD_BUS_WIDTH_4 1 /* Card is in 4 bit mode */
+#define EXT_CSD_BUS_WIDTH_8 2 /* Card is in 8 bit mode */
+#define EXT_CSD_DDR_BUS_WIDTH_4 5 /* Card is in 4 bit DDR mode */
+#define EXT_CSD_DDR_BUS_WIDTH_8 6 /* Card is in 8 bit DDR mode */
-#define EXT_CSD_TIMING_BC 0 /* Backwards compatility */
-#define EXT_CSD_TIMING_HS 1 /* High speed */
-#define EXT_CSD_TIMING_HS200 2 /* HS200 */
-#define EXT_CSD_TIMING_HS400 3 /* HS400 */
+#define EXT_CSD_TIMING_BC 0 /* Backwards compatility */
+#define EXT_CSD_TIMING_HS 1 /* High speed */
+#define EXT_CSD_TIMING_HS200 2 /* HS200 */
+#define EXT_CSD_TIMING_HS400 3 /* HS400 */
-#define EXT_CSD_SEC_ER_EN BIT(0)
-#define EXT_CSD_SEC_BD_BLK_EN BIT(2)
-#define EXT_CSD_SEC_GB_CL_EN BIT(4)
-#define EXT_CSD_SEC_SANITIZE BIT(6) /* v4.5 only */
+#define EXT_CSD_SEC_ER_EN BIT(0)
+#define EXT_CSD_SEC_BD_BLK_EN BIT(2)
+#define EXT_CSD_SEC_GB_CL_EN BIT(4)
+#define EXT_CSD_SEC_SANITIZE BIT(6) /* v4.5 only */
-#define EXT_CSD_RST_N_EN_MASK 0x3
-#define EXT_CSD_RST_N_ENABLED 1 /* RST_n is enabled on card */
+#define EXT_CSD_RST_N_EN_MASK 0x3
+#define EXT_CSD_RST_N_ENABLED 1 /* RST_n is enabled on card */
-#define EXT_CSD_NO_POWER_NOTIFICATION 0
-#define EXT_CSD_POWER_ON 1
-#define EXT_CSD_POWER_OFF_SHORT 2
-#define EXT_CSD_POWER_OFF_LONG 3
+#define EXT_CSD_NO_POWER_NOTIFICATION 0
+#define EXT_CSD_POWER_ON 1
+#define EXT_CSD_POWER_OFF_SHORT 2
+#define EXT_CSD_POWER_OFF_LONG 3
-#define EXT_CSD_PWR_CL_8BIT_MASK 0xF0 /* 8 bit PWR CLS */
-#define EXT_CSD_PWR_CL_4BIT_MASK 0x0F /* 8 bit PWR CLS */
-#define EXT_CSD_PWR_CL_8BIT_SHIFT 4
-#define EXT_CSD_PWR_CL_4BIT_SHIFT 0
+#define EXT_CSD_PWR_CL_8BIT_MASK 0xF0 /* 8 bit PWR CLS */
+#define EXT_CSD_PWR_CL_4BIT_MASK 0x0F /* 8 bit PWR CLS */
+#define EXT_CSD_PWR_CL_8BIT_SHIFT 4
+#define EXT_CSD_PWR_CL_4BIT_SHIFT 0
-#define EXT_CSD_PACKED_EVENT_EN BIT(3)
+#define EXT_CSD_PACKED_EVENT_EN BIT(3)
/*
* EXCEPTION_EVENT_STATUS field
*/
-#define EXT_CSD_URGENT_BKOPS BIT(0)
-#define EXT_CSD_DYNCAP_NEEDED BIT(1)
-#define EXT_CSD_SYSPOOL_EXHAUSTED BIT(2)
-#define EXT_CSD_PACKED_FAILURE BIT(3)
+#define EXT_CSD_URGENT_BKOPS BIT(0)
+#define EXT_CSD_DYNCAP_NEEDED BIT(1)
+#define EXT_CSD_SYSPOOL_EXHAUSTED BIT(2)
+#define EXT_CSD_PACKED_FAILURE BIT(3)
-#define EXT_CSD_PACKED_GENERIC_ERROR BIT(0)
-#define EXT_CSD_PACKED_INDEXED_ERROR BIT(1)
+#define EXT_CSD_PACKED_GENERIC_ERROR BIT(0)
+#define EXT_CSD_PACKED_INDEXED_ERROR BIT(1)
/*
* BKOPS status level
*/
-#define EXT_CSD_BKOPS_LEVEL_2 0x2
+#define EXT_CSD_BKOPS_LEVEL_2 0x2
/*
* MMC_SWITCH access modes
*/
-#define MMC_SWITCH_MODE_CMD_SET 0x00 /* Change the command set */
-#define MMC_SWITCH_MODE_SET_BITS 0x01 /* Set bits which are 1 in value */
-#define MMC_SWITCH_MODE_CLEAR_BITS 0x02 /* Clear bits which are 1 in value */
-#define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target to value */
-
+#define MMC_SWITCH_MODE_CMD_SET 0x00 /* Change the command set */
+#define MMC_SWITCH_MODE_SET_BITS 0x01 /* Set bits which are 1 in value */
+#define MMC_SWITCH_MODE_CLEAR_BITS 0x02 /* Clear bits which are 1 in value */
+#define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target to value */
+
/*
* extern function
*/
diff --git a/components/drivers/include/drivers/mmcsd_card.h b/components/drivers/include/drivers/mmcsd_card.h
index 3ee5a20465..511cc1167d 100644
--- a/components/drivers/include/drivers/mmcsd_card.h
+++ b/components/drivers/include/drivers/mmcsd_card.h
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
- * Date Author Notes
- * 2011-07-25 weety first version
+ * Date Author Notes
+ * 2011-07-25 weety first version
*/
#ifndef __MMCSD_CARD_H__
@@ -17,87 +17,87 @@
extern "C" {
#endif
-#define SD_SCR_BUS_WIDTH_1 (1 << 0)
-#define SD_SCR_BUS_WIDTH_4 (1 << 2)
+#define SD_SCR_BUS_WIDTH_1 (1 << 0)
+#define SD_SCR_BUS_WIDTH_4 (1 << 2)
struct rt_mmcsd_cid {
- rt_uint8_t mid; /* ManufacturerID */
- rt_uint8_t prv; /* Product Revision */
- rt_uint16_t oid; /* OEM/Application ID */
- rt_uint32_t psn; /* Product Serial Number */
- rt_uint8_t pnm[5]; /* Product Name */
- rt_uint8_t reserved1;/* reserved */
- rt_uint16_t mdt; /* Manufacturing Date */
- rt_uint8_t crc; /* CID CRC */
- rt_uint8_t reserved2;/* not used, always 1 */
+ rt_uint8_t mid; /* ManufacturerID */
+ rt_uint8_t prv; /* Product Revision */
+ rt_uint16_t oid; /* OEM/Application ID */
+ rt_uint32_t psn; /* Product Serial Number */
+ rt_uint8_t pnm[5]; /* Product Name */
+ rt_uint8_t reserved1;/* reserved */
+ rt_uint16_t mdt; /* Manufacturing Date */
+ rt_uint8_t crc; /* CID CRC */
+ rt_uint8_t reserved2;/* not used, always 1 */
};
struct rt_mmcsd_csd {
- rt_uint8_t csd_structure; /* CSD register version */
- rt_uint8_t taac;
- rt_uint8_t nsac;
- rt_uint8_t tran_speed; /* max data transfer rate */
- rt_uint16_t card_cmd_class; /* card command classes */
- rt_uint8_t rd_blk_len; /* max read data block length */
- rt_uint8_t rd_blk_part;
- rt_uint8_t wr_blk_misalign;
- rt_uint8_t rd_blk_misalign;
- rt_uint8_t dsr_imp; /* DSR implemented */
- rt_uint8_t c_size_mult; /* CSD 1.0 , device size multiplier */
- rt_uint32_t c_size; /* device size */
- rt_uint8_t r2w_factor;
- rt_uint8_t wr_blk_len; /* max wtire data block length */
- rt_uint8_t wr_blk_partial;
- rt_uint8_t csd_crc;
-
+ rt_uint8_t csd_structure; /* CSD register version */
+ rt_uint8_t taac;
+ rt_uint8_t nsac;
+ rt_uint8_t tran_speed; /* max data transfer rate */
+ rt_uint16_t card_cmd_class; /* card command classes */
+ rt_uint8_t rd_blk_len; /* max read data block length */
+ rt_uint8_t rd_blk_part;
+ rt_uint8_t wr_blk_misalign;
+ rt_uint8_t rd_blk_misalign;
+ rt_uint8_t dsr_imp; /* DSR implemented */
+ rt_uint8_t c_size_mult; /* CSD 1.0 , device size multiplier */
+ rt_uint32_t c_size; /* device size */
+ rt_uint8_t r2w_factor;
+ rt_uint8_t wr_blk_len; /* max wtire data block length */
+ rt_uint8_t wr_blk_partial;
+ rt_uint8_t csd_crc;
+
};
struct rt_sd_scr {
- rt_uint8_t sd_version;
- rt_uint8_t sd_bus_widths;
+ rt_uint8_t sd_version;
+ rt_uint8_t sd_bus_widths;
};
struct rt_sdio_cccr {
- rt_uint8_t sdio_version;
- rt_uint8_t sd_version;
- rt_uint8_t direct_cmd:1, /* Card Supports Direct Commands during data transfer
- only SD mode, not used for SPI mode */
- multi_block:1, /* Card Supports Multi-Block */
- read_wait:1, /* Card Supports Read Wait
- only SD mode, not used for SPI mode */
- suspend_resume:1, /* Card supports Suspend/Resume
- only SD mode, not used for SPI mode */
- s4mi:1, /* generate interrupts during a 4-bit
- multi-block data transfer */
- e4mi:1, /* Enable the multi-block IRQ during
- 4-bit transfer for the SDIO card */
- low_speed:1, /* Card is a Low-Speed card */
- low_speed_4:1; /* 4-bit support for Low-Speed cards */
+ rt_uint8_t sdio_version;
+ rt_uint8_t sd_version;
+ rt_uint8_t direct_cmd:1, /* Card Supports Direct Commands during data transfer
+ only SD mode, not used for SPI mode */
+ multi_block:1, /* Card Supports Multi-Block */
+ read_wait:1, /* Card Supports Read Wait
+ only SD mode, not used for SPI mode */
+ suspend_resume:1, /* Card supports Suspend/Resume
+ only SD mode, not used for SPI mode */
+ s4mi:1, /* generate interrupts during a 4-bit
+ multi-block data transfer */
+ e4mi:1, /* Enable the multi-block IRQ during
+ 4-bit transfer for the SDIO card */
+ low_speed:1, /* Card is a Low-Speed card */
+ low_speed_4:1; /* 4-bit support for Low-Speed cards */
+
+ rt_uint8_t bus_width:1, /* Support SDIO bus width, 1:4bit, 0:1bit */
+ cd_disable:1, /* Connect[0]/Disconnect[1] the 10K-90K ohm pull-up
+ resistor on CD/DAT[3] (pin 1) of the card */
+ power_ctrl:1, /* Support Master Power Control */
+ high_speed:1; /* Support High-Speed */
+
- rt_uint8_t bus_width:1, /* Support SDIO bus width, 1:4bit, 0:1bit */
- cd_disable:1, /* Connect[0]/Disconnect[1] the 10K-90K ohm pull-up
- resistor on CD/DAT[3] (pin 1) of the card */
- power_ctrl:1, /* Support Master Power Control */
- high_speed:1; /* Support High-Speed */
-
-
};
struct rt_sdio_cis {
- rt_uint16_t manufacturer;
- rt_uint16_t product;
- rt_uint16_t func0_blk_size;
- rt_uint32_t max_tran_speed;
+ rt_uint16_t manufacturer;
+ rt_uint16_t product;
+ rt_uint16_t func0_blk_size;
+ rt_uint32_t max_tran_speed;
};
/*
* SDIO function CIS tuple (unknown to the core)
*/
struct rt_sdio_function_tuple {
- struct rt_sdio_function_tuple *next;
- rt_uint8_t code;
- rt_uint8_t size;
- rt_uint8_t *data;
+ struct rt_sdio_function_tuple *next;
+ rt_uint8_t code;
+ rt_uint8_t size;
+ rt_uint8_t *data;
};
struct rt_sdio_function;
@@ -107,60 +107,60 @@ typedef void (rt_sdio_irq_handler_t)(struct rt_sdio_function *);
* SDIO function devices
*/
struct rt_sdio_function {
- struct rt_mmcsd_card *card; /* the card this device belongs to */
- rt_sdio_irq_handler_t *irq_handler; /* IRQ callback */
- rt_uint8_t num; /* function number */
+ struct rt_mmcsd_card *card; /* the card this device belongs to */
+ rt_sdio_irq_handler_t *irq_handler; /* IRQ callback */
+ rt_uint8_t num; /* function number */
+
+ rt_uint8_t func_code; /* Standard SDIO Function interface code */
+ rt_uint16_t manufacturer; /* manufacturer id */
+ rt_uint16_t product; /* product id */
- rt_uint8_t func_code; /* Standard SDIO Function interface code */
- rt_uint16_t manufacturer; /* manufacturer id */
- rt_uint16_t product; /* product id */
+ rt_uint32_t max_blk_size; /* maximum block size */
+ rt_uint32_t cur_blk_size; /* current block size */
- rt_uint32_t max_blk_size; /* maximum block size */
- rt_uint32_t cur_blk_size; /* current block size */
+ rt_uint32_t enable_timeout_val; /* max enable timeout in msec */
- rt_uint32_t enable_timeout_val; /* max enable timeout in msec */
+ struct rt_sdio_function_tuple *tuples;
- struct rt_sdio_function_tuple *tuples;
-
void *priv;
};
-#define SDIO_MAX_FUNCTIONS 7
+#define SDIO_MAX_FUNCTIONS 7
struct rt_mmcsd_card {
- struct rt_mmcsd_host *host;
- rt_uint32_t rca; /* card addr */
- rt_uint32_t resp_cid[4]; /* card CID register */
- rt_uint32_t resp_csd[4]; /* card CSD register */
- rt_uint32_t resp_scr[2]; /* card SCR register */
+ struct rt_mmcsd_host *host;
+ rt_uint32_t rca; /* card addr */
+ rt_uint32_t resp_cid[4]; /* card CID register */
+ rt_uint32_t resp_csd[4]; /* card CSD register */
+ rt_uint32_t resp_scr[2]; /* card SCR register */
- rt_uint16_t tacc_clks; /* data access time by ns */
- rt_uint32_t tacc_ns; /* data access time by clk cycles */
- rt_uint32_t max_data_rate; /* max data transfer rate */
- rt_uint32_t card_capacity; /* card capacity, unit:KB */
- rt_uint32_t card_blksize; /* card block size */
- rt_uint32_t erase_size; /* erase size in sectors */
- rt_uint16_t card_type;
+ rt_uint16_t tacc_clks; /* data access time by ns */
+ rt_uint32_t tacc_ns; /* data access time by clk cycles */
+ rt_uint32_t max_data_rate; /* max data transfer rate */
+ rt_uint32_t card_capacity; /* card capacity, unit:KB */
+ rt_uint32_t card_blksize; /* card block size */
+ rt_uint32_t erase_size; /* erase size in sectors */
+ rt_uint16_t card_type;
#define CARD_TYPE_MMC 0 /* MMC card */
#define CARD_TYPE_SD 1 /* SD card */
#define CARD_TYPE_SDIO 2 /* SDIO card */
#define CARD_TYPE_SDIO_COMBO 3 /* SD combo (IO+mem) card */
- rt_uint16_t flags;
+ rt_uint16_t flags;
#define CARD_FLAG_HIGHSPEED (1 << 0) /* SDIO bus speed 50MHz */
#define CARD_FLAG_SDHC (1 << 1) /* SDHC card */
#define CARD_FLAG_SDXC (1 << 2) /* SDXC card */
- struct rt_sd_scr scr;
- struct rt_mmcsd_csd csd;
- rt_uint32_t hs_max_data_rate; /* max data transfer rate in high speed mode */
+ struct rt_sd_scr scr;
+ struct rt_mmcsd_csd csd;
+ rt_uint32_t hs_max_data_rate; /* max data transfer rate in high speed mode */
- rt_uint8_t sdio_function_num; /* totol number of SDIO functions */
- struct rt_sdio_cccr cccr; /* common card info */
- struct rt_sdio_cis cis; /* common tuple info */
- struct rt_sdio_function *sdio_function[SDIO_MAX_FUNCTIONS + 1]; /* SDIO functions (devices) */
+ rt_uint8_t sdio_function_num; /* totol number of SDIO functions */
+ struct rt_sdio_cccr cccr; /* common card info */
+ struct rt_sdio_cis cis; /* common tuple info */
+ struct rt_sdio_function *sdio_function[SDIO_MAX_FUNCTIONS + 1]; /* SDIO functions (devices) */
};
diff --git a/components/drivers/include/drivers/mmcsd_cmd.h b/components/drivers/include/drivers/mmcsd_cmd.h
index 7c2f26e892..2993fe5406 100644
--- a/components/drivers/include/drivers/mmcsd_cmd.h
+++ b/components/drivers/include/drivers/mmcsd_cmd.h
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
- * Date Author Notes
- * 2011-07-25 weety first version
+ * Date Author Notes
+ * 2011-07-25 weety first version
*/
#ifndef __CMD_H__
@@ -85,9 +85,9 @@ extern "C" {
#define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */
#define SD_APP_SEND_SCR 51 /* adtc R1 */
-#define SCR_SPEC_VER_0 0 /* Implements system specification 1.0 - 1.01 */
-#define SCR_SPEC_VER_1 1 /* Implements system specification 1.10 */
-#define SCR_SPEC_VER_2 2 /* Implements system specification 2.00 */
+#define SCR_SPEC_VER_0 0 /* Implements system specification 1.0 - 1.01 */
+#define SCR_SPEC_VER_1 1 /* Implements system specification 1.10 */
+#define SCR_SPEC_VER_2 2 /* Implements system specification 2.00 */
/* SDIO commands type argument response */
diff --git a/components/drivers/include/drivers/mmcsd_core.h b/components/drivers/include/drivers/mmcsd_core.h
index 05a5af6d79..11b1386b23 100644
--- a/components/drivers/include/drivers/mmcsd_core.h
+++ b/components/drivers/include/drivers/mmcsd_core.h
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
- * Date Author Notes
- * 2011-07-25 weety first version
+ * Date Author Notes
+ * 2011-07-25 weety first version
*/
#ifndef __CORE_H__
@@ -27,139 +27,139 @@ extern "C" {
#endif
struct rt_mmcsd_data {
- rt_uint32_t blksize;
- rt_uint32_t blks;
- rt_uint32_t *buf;
- rt_int32_t err;
- rt_uint32_t flags;
-#define DATA_DIR_WRITE (1 << 0)
-#define DATA_DIR_READ (1 << 1)
-#define DATA_STREAM (1 << 2)
+ rt_uint32_t blksize;
+ rt_uint32_t blks;
+ rt_uint32_t *buf;
+ rt_int32_t err;
+ rt_uint32_t flags;
+#define DATA_DIR_WRITE (1 << 0)
+#define DATA_DIR_READ (1 << 1)
+#define DATA_STREAM (1 << 2)
- unsigned int bytes_xfered;
+ unsigned int bytes_xfered;
- struct rt_mmcsd_cmd *stop; /* stop command */
- struct rt_mmcsd_req *mrq; /* associated request */
+ struct rt_mmcsd_cmd *stop; /* stop command */
+ struct rt_mmcsd_req *mrq; /* associated request */
- rt_uint32_t timeout_ns;
- rt_uint32_t timeout_clks;
+ rt_uint32_t timeout_ns;
+ rt_uint32_t timeout_clks;
};
struct rt_mmcsd_cmd {
- rt_uint32_t cmd_code;
- rt_uint32_t arg;
- rt_uint32_t resp[4];
- rt_uint32_t flags;
-/*rsponse types
+ rt_uint32_t cmd_code;
+ rt_uint32_t arg;
+ rt_uint32_t resp[4];
+ rt_uint32_t flags;
+/*rsponse types
*bits:0~3
*/
-#define RESP_MASK (0xF)
-#define RESP_NONE (0)
-#define RESP_R1 (1 << 0)
-#define RESP_R1B (2 << 0)
-#define RESP_R2 (3 << 0)
-#define RESP_R3 (4 << 0)
-#define RESP_R4 (5 << 0)
-#define RESP_R6 (6 << 0)
-#define RESP_R7 (7 << 0)
-#define RESP_R5 (8 << 0) /*SDIO command response type*/
-/*command types
+#define RESP_MASK (0xF)
+#define RESP_NONE (0)
+#define RESP_R1 (1 << 0)
+#define RESP_R1B (2 << 0)
+#define RESP_R2 (3 << 0)
+#define RESP_R3 (4 << 0)
+#define RESP_R4 (5 << 0)
+#define RESP_R6 (6 << 0)
+#define RESP_R7 (7 << 0)
+#define RESP_R5 (8 << 0) /*SDIO command response type*/
+/*command types
*bits:4~5
*/
-#define CMD_MASK (3 << 4) /* command type */
-#define CMD_AC (0 << 4)
-#define CMD_ADTC (1 << 4)
-#define CMD_BC (2 << 4)
-#define CMD_BCR (3 << 4)
+#define CMD_MASK (3 << 4) /* command type */
+#define CMD_AC (0 << 4)
+#define CMD_ADTC (1 << 4)
+#define CMD_BC (2 << 4)
+#define CMD_BCR (3 << 4)
-#define resp_type(cmd) ((cmd)->flags & RESP_MASK)
+#define resp_type(cmd) ((cmd)->flags & RESP_MASK)
-/*spi rsponse types
+/*spi rsponse types
*bits:6~8
*/
-#define RESP_SPI_MASK (0x7 << 6)
-#define RESP_SPI_R1 (1 << 6)
-#define RESP_SPI_R1B (2 << 6)
-#define RESP_SPI_R2 (3 << 6)
-#define RESP_SPI_R3 (4 << 6)
-#define RESP_SPI_R4 (5 << 6)
-#define RESP_SPI_R5 (6 << 6)
-#define RESP_SPI_R7 (7 << 6)
+#define RESP_SPI_MASK (0x7 << 6)
+#define RESP_SPI_R1 (1 << 6)
+#define RESP_SPI_R1B (2 << 6)
+#define RESP_SPI_R2 (3 << 6)
+#define RESP_SPI_R3 (4 << 6)
+#define RESP_SPI_R4 (5 << 6)
+#define RESP_SPI_R5 (6 << 6)
+#define RESP_SPI_R7 (7 << 6)
-#define spi_resp_type(cmd) ((cmd)->flags & RESP_SPI_MASK)
+#define spi_resp_type(cmd) ((cmd)->flags & RESP_SPI_MASK)
/*
* These are the command types.
*/
-#define cmd_type(cmd) ((cmd)->flags & CMD_MASK)
-
- rt_int32_t retries; /* max number of retries */
- rt_int32_t err;
+#define cmd_type(cmd) ((cmd)->flags & CMD_MASK)
- struct rt_mmcsd_data *data;
- struct rt_mmcsd_req *mrq; /* associated request */
+ rt_int32_t retries; /* max number of retries */
+ rt_int32_t err;
+
+ struct rt_mmcsd_data *data;
+ struct rt_mmcsd_req *mrq; /* associated request */
};
struct rt_mmcsd_req {
- struct rt_mmcsd_data *data;
- struct rt_mmcsd_cmd *cmd;
- struct rt_mmcsd_cmd *stop;
+ struct rt_mmcsd_data *data;
+ struct rt_mmcsd_cmd *cmd;
+ struct rt_mmcsd_cmd *stop;
};
/*the following is response bit*/
-#define R1_OUT_OF_RANGE (1 << 31) /* er, c */
-#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */
-#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */
-#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */
-#define R1_ERASE_PARAM (1 << 27) /* ex, c */
-#define R1_WP_VIOLATION (1 << 26) /* erx, c */
-#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */
-#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */
-#define R1_COM_CRC_ERROR (1 << 23) /* er, b */
-#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */
-#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */
-#define R1_CC_ERROR (1 << 20) /* erx, c */
-#define R1_ERROR (1 << 19) /* erx, c */
-#define R1_UNDERRUN (1 << 18) /* ex, c */
-#define R1_OVERRUN (1 << 17) /* ex, c */
-#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */
-#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */
-#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */
-#define R1_ERASE_RESET (1 << 13) /* sr, c */
+#define R1_OUT_OF_RANGE (1 << 31) /* er, c */
+#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */
+#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */
+#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */
+#define R1_ERASE_PARAM (1 << 27) /* ex, c */
+#define R1_WP_VIOLATION (1 << 26) /* erx, c */
+#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */
+#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */
+#define R1_COM_CRC_ERROR (1 << 23) /* er, b */
+#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */
+#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */
+#define R1_CC_ERROR (1 << 20) /* erx, c */
+#define R1_ERROR (1 << 19) /* erx, c */
+#define R1_UNDERRUN (1 << 18) /* ex, c */
+#define R1_OVERRUN (1 << 17) /* ex, c */
+#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */
+#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */
+#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */
+#define R1_ERASE_RESET (1 << 13) /* sr, c */
#define R1_STATUS(x) (x & 0xFFFFE000)
-#define R1_CURRENT_STATE(x) ((x & 0x00001E00) >> 9) /* sx, b (4 bits) */
-#define R1_READY_FOR_DATA (1 << 8) /* sx, a */
-#define R1_APP_CMD (1 << 5) /* sr, c */
+#define R1_CURRENT_STATE(x) ((x & 0x00001E00) >> 9) /* sx, b (4 bits) */
+#define R1_READY_FOR_DATA (1 << 8) /* sx, a */
+#define R1_APP_CMD (1 << 5) /* sr, c */
-#define R1_SPI_IDLE (1 << 0)
-#define R1_SPI_ERASE_RESET (1 << 1)
-#define R1_SPI_ILLEGAL_COMMAND (1 << 2)
-#define R1_SPI_COM_CRC (1 << 3)
-#define R1_SPI_ERASE_SEQ (1 << 4)
-#define R1_SPI_ADDRESS (1 << 5)
-#define R1_SPI_PARAMETER (1 << 6)
+#define R1_SPI_IDLE (1 << 0)
+#define R1_SPI_ERASE_RESET (1 << 1)
+#define R1_SPI_ILLEGAL_COMMAND (1 << 2)
+#define R1_SPI_COM_CRC (1 << 3)
+#define R1_SPI_ERASE_SEQ (1 << 4)
+#define R1_SPI_ADDRESS (1 << 5)
+#define R1_SPI_PARAMETER (1 << 6)
/* R1 bit 7 is always zero */
-#define R2_SPI_CARD_LOCKED (1 << 8)
-#define R2_SPI_WP_ERASE_SKIP (1 << 9) /* or lock/unlock fail */
-#define R2_SPI_LOCK_UNLOCK_FAIL R2_SPI_WP_ERASE_SKIP
-#define R2_SPI_ERROR (1 << 10)
-#define R2_SPI_CC_ERROR (1 << 11)
-#define R2_SPI_CARD_ECC_ERROR (1 << 12)
-#define R2_SPI_WP_VIOLATION (1 << 13)
-#define R2_SPI_ERASE_PARAM (1 << 14)
-#define R2_SPI_OUT_OF_RANGE (1 << 15) /* or CSD overwrite */
-#define R2_SPI_CSD_OVERWRITE R2_SPI_OUT_OF_RANGE
+#define R2_SPI_CARD_LOCKED (1 << 8)
+#define R2_SPI_WP_ERASE_SKIP (1 << 9) /* or lock/unlock fail */
+#define R2_SPI_LOCK_UNLOCK_FAIL R2_SPI_WP_ERASE_SKIP
+#define R2_SPI_ERROR (1 << 10)
+#define R2_SPI_CC_ERROR (1 << 11)
+#define R2_SPI_CARD_ECC_ERROR (1 << 12)
+#define R2_SPI_WP_VIOLATION (1 << 13)
+#define R2_SPI_ERASE_PARAM (1 << 14)
+#define R2_SPI_OUT_OF_RANGE (1 << 15) /* or CSD overwrite */
+#define R2_SPI_CSD_OVERWRITE R2_SPI_OUT_OF_RANGE
-#define CARD_BUSY 0x80000000 /* Card Power up status bit */
+#define CARD_BUSY 0x80000000 /* Card Power up status bit */
/* R5 response bits */
-#define R5_COM_CRC_ERROR (1 << 15)
-#define R5_ILLEGAL_COMMAND (1 << 14)
-#define R5_ERROR (1 << 11)
-#define R5_FUNCTION_NUMBER (1 << 9)
-#define R5_OUT_OF_RANGE (1 << 8)
-#define R5_STATUS(x) (x & 0xCB00)
-#define R5_IO_CURRENT_STATE(x) ((x & 0x3000) >> 12)
+#define R5_COM_CRC_ERROR (1 << 15)
+#define R5_ILLEGAL_COMMAND (1 << 14)
+#define R5_ERROR (1 << 11)
+#define R5_FUNCTION_NUMBER (1 << 9)
+#define R5_OUT_OF_RANGE (1 << 8)
+#define R5_STATUS(x) (x & 0xCB00)
+#define R5_IO_CURRENT_STATE(x) ((x & 0x3000) >> 12)
@@ -173,36 +173,36 @@ struct rt_mmcsd_req {
rt_inline rt_uint32_t __rt_fls(rt_uint32_t val)
{
- rt_uint32_t bit = 32;
+ rt_uint32_t bit = 32;
- if (!val)
- return 0;
- if (!(val & 0xffff0000u))
- {
- val <<= 16;
- bit -= 16;
- }
- if (!(val & 0xff000000u))
- {
- val <<= 8;
- bit -= 8;
- }
- if (!(val & 0xf0000000u))
- {
- val <<= 4;
- bit -= 4;
- }
- if (!(val & 0xc0000000u))
- {
- val <<= 2;
- bit -= 2;
- }
- if (!(val & 0x80000000u))
- {
- bit -= 1;
- }
+ if (!val)
+ return 0;
+ if (!(val & 0xffff0000u))
+ {
+ val <<= 16;
+ bit -= 16;
+ }
+ if (!(val & 0xff000000u))
+ {
+ val <<= 8;
+ bit -= 8;
+ }
+ if (!(val & 0xf0000000u))
+ {
+ val <<= 4;
+ bit -= 4;
+ }
+ if (!(val & 0xc0000000u))
+ {
+ val <<= 2;
+ bit -= 2;
+ }
+ if (!(val & 0x80000000u))
+ {
+ bit -= 1;
+ }
- return bit;
+ return bit;
}
#define MMCSD_HOST_PLUGED 0
diff --git a/components/drivers/include/drivers/mmcsd_host.h b/components/drivers/include/drivers/mmcsd_host.h
index 1253062aef..c7f673aeb1 100644
--- a/components/drivers/include/drivers/mmcsd_host.h
+++ b/components/drivers/include/drivers/mmcsd_host.h
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
- * Date Author Notes
- * 2011-07-25 weety first version
+ * Date Author Notes
+ * 2011-07-25 weety first version
*/
#ifndef __HOST_H__
@@ -18,33 +18,33 @@ extern "C" {
#endif
struct rt_mmcsd_io_cfg {
- rt_uint32_t clock; /* clock rate */
- rt_uint16_t vdd;
+ rt_uint32_t clock; /* clock rate */
+ rt_uint16_t vdd;
/* vdd stores the bit number of the selected voltage range from below. */
- rt_uint8_t bus_mode; /* command output mode */
+ rt_uint8_t bus_mode; /* command output mode */
-#define MMCSD_BUSMODE_OPENDRAIN 1
-#define MMCSD_BUSMODE_PUSHPULL 2
+#define MMCSD_BUSMODE_OPENDRAIN 1
+#define MMCSD_BUSMODE_PUSHPULL 2
- rt_uint8_t chip_select; /* SPI chip select */
+ rt_uint8_t chip_select; /* SPI chip select */
-#define MMCSD_CS_IGNORE 0
-#define MMCSD_CS_HIGH 1
-#define MMCSD_CS_LOW 2
+#define MMCSD_CS_IGNORE 0
+#define MMCSD_CS_HIGH 1
+#define MMCSD_CS_LOW 2
- rt_uint8_t power_mode; /* power supply mode */
+ rt_uint8_t power_mode; /* power supply mode */
-#define MMCSD_POWER_OFF 0
-#define MMCSD_POWER_UP 1
-#define MMCSD_POWER_ON 2
+#define MMCSD_POWER_OFF 0
+#define MMCSD_POWER_UP 1
+#define MMCSD_POWER_ON 2
- rt_uint8_t bus_width; /* data bus width */
+ rt_uint8_t bus_width; /* data bus width */
-#define MMCSD_BUS_WIDTH_1 0
-#define MMCSD_BUS_WIDTH_4 2
-#define MMCSD_BUS_WIDTH_8 3
+#define MMCSD_BUS_WIDTH_1 0
+#define MMCSD_BUS_WIDTH_4 2
+#define MMCSD_BUS_WIDTH_8 3
};
@@ -52,71 +52,71 @@ struct rt_mmcsd_host;
struct rt_mmcsd_req;
struct rt_mmcsd_host_ops {
- void (*request)(struct rt_mmcsd_host *host, struct rt_mmcsd_req *req);
- void (*set_iocfg)(struct rt_mmcsd_host *host, struct rt_mmcsd_io_cfg *io_cfg);
- rt_int32_t (*get_card_status)(struct rt_mmcsd_host *host);
- void (*enable_sdio_irq)(struct rt_mmcsd_host *host, rt_int32_t en);
+ void (*request)(struct rt_mmcsd_host *host, struct rt_mmcsd_req *req);
+ void (*set_iocfg)(struct rt_mmcsd_host *host, struct rt_mmcsd_io_cfg *io_cfg);
+ rt_int32_t (*get_card_status)(struct rt_mmcsd_host *host);
+ void (*enable_sdio_irq)(struct rt_mmcsd_host *host, rt_int32_t en);
};
struct rt_mmcsd_host {
- struct rt_mmcsd_card *card;
- const struct rt_mmcsd_host_ops *ops;
- rt_uint32_t freq_min;
- rt_uint32_t freq_max;
- struct rt_mmcsd_io_cfg io_cfg;
- rt_uint32_t valid_ocr; /* current valid OCR */
-#define VDD_165_195 (1 << 7) /* VDD voltage 1.65 - 1.95 */
-#define VDD_20_21 (1 << 8) /* VDD voltage 2.0 ~ 2.1 */
-#define VDD_21_22 (1 << 9) /* VDD voltage 2.1 ~ 2.2 */
-#define VDD_22_23 (1 << 10) /* VDD voltage 2.2 ~ 2.3 */
-#define VDD_23_24 (1 << 11) /* VDD voltage 2.3 ~ 2.4 */
-#define VDD_24_25 (1 << 12) /* VDD voltage 2.4 ~ 2.5 */
-#define VDD_25_26 (1 << 13) /* VDD voltage 2.5 ~ 2.6 */
-#define VDD_26_27 (1 << 14) /* VDD voltage 2.6 ~ 2.7 */
-#define VDD_27_28 (1 << 15) /* VDD voltage 2.7 ~ 2.8 */
-#define VDD_28_29 (1 << 16) /* VDD voltage 2.8 ~ 2.9 */
-#define VDD_29_30 (1 << 17) /* VDD voltage 2.9 ~ 3.0 */
-#define VDD_30_31 (1 << 18) /* VDD voltage 3.0 ~ 3.1 */
-#define VDD_31_32 (1 << 19) /* VDD voltage 3.1 ~ 3.2 */
-#define VDD_32_33 (1 << 20) /* VDD voltage 3.2 ~ 3.3 */
-#define VDD_33_34 (1 << 21) /* VDD voltage 3.3 ~ 3.4 */
-#define VDD_34_35 (1 << 22) /* VDD voltage 3.4 ~ 3.5 */
-#define VDD_35_36 (1 << 23) /* VDD voltage 3.5 ~ 3.6 */
- rt_uint32_t flags; /* define device capabilities */
-#define MMCSD_BUSWIDTH_4 (1 << 0)
-#define MMCSD_BUSWIDTH_8 (1 << 1)
-#define MMCSD_MUTBLKWRITE (1 << 2)
-#define MMCSD_HOST_IS_SPI (1 << 3)
-#define controller_is_spi(host) (host->flags & MMCSD_HOST_IS_SPI)
-#define MMCSD_SUP_SDIO_IRQ (1 << 4) /* support signal pending SDIO IRQs */
-#define MMCSD_SUP_HIGHSPEED (1 << 5) /* support high speed */
+ struct rt_mmcsd_card *card;
+ const struct rt_mmcsd_host_ops *ops;
+ rt_uint32_t freq_min;
+ rt_uint32_t freq_max;
+ struct rt_mmcsd_io_cfg io_cfg;
+ rt_uint32_t valid_ocr; /* current valid OCR */
+#define VDD_165_195 (1 << 7) /* VDD voltage 1.65 - 1.95 */
+#define VDD_20_21 (1 << 8) /* VDD voltage 2.0 ~ 2.1 */
+#define VDD_21_22 (1 << 9) /* VDD voltage 2.1 ~ 2.2 */
+#define VDD_22_23 (1 << 10) /* VDD voltage 2.2 ~ 2.3 */
+#define VDD_23_24 (1 << 11) /* VDD voltage 2.3 ~ 2.4 */
+#define VDD_24_25 (1 << 12) /* VDD voltage 2.4 ~ 2.5 */
+#define VDD_25_26 (1 << 13) /* VDD voltage 2.5 ~ 2.6 */
+#define VDD_26_27 (1 << 14) /* VDD voltage 2.6 ~ 2.7 */
+#define VDD_27_28 (1 << 15) /* VDD voltage 2.7 ~ 2.8 */
+#define VDD_28_29 (1 << 16) /* VDD voltage 2.8 ~ 2.9 */
+#define VDD_29_30 (1 << 17) /* VDD voltage 2.9 ~ 3.0 */
+#define VDD_30_31 (1 << 18) /* VDD voltage 3.0 ~ 3.1 */
+#define VDD_31_32 (1 << 19) /* VDD voltage 3.1 ~ 3.2 */
+#define VDD_32_33 (1 << 20) /* VDD voltage 3.2 ~ 3.3 */
+#define VDD_33_34 (1 << 21) /* VDD voltage 3.3 ~ 3.4 */
+#define VDD_34_35 (1 << 22) /* VDD voltage 3.4 ~ 3.5 */
+#define VDD_35_36 (1 << 23) /* VDD voltage 3.5 ~ 3.6 */
+ rt_uint32_t flags; /* define device capabilities */
+#define MMCSD_BUSWIDTH_4 (1 << 0)
+#define MMCSD_BUSWIDTH_8 (1 << 1)
+#define MMCSD_MUTBLKWRITE (1 << 2)
+#define MMCSD_HOST_IS_SPI (1 << 3)
+#define controller_is_spi(host) (host->flags & MMCSD_HOST_IS_SPI)
+#define MMCSD_SUP_SDIO_IRQ (1 << 4) /* support signal pending SDIO IRQs */
+#define MMCSD_SUP_HIGHSPEED (1 << 5) /* support high speed */
- rt_uint32_t max_seg_size; /* maximum size of one dma segment */
- rt_uint32_t max_dma_segs; /* maximum number of dma segments in one request */
- rt_uint32_t max_blk_size; /* maximum block size */
- rt_uint32_t max_blk_count; /* maximum block count */
+ rt_uint32_t max_seg_size; /* maximum size of one dma segment */
+ rt_uint32_t max_dma_segs; /* maximum number of dma segments in one request */
+ rt_uint32_t max_blk_size; /* maximum block size */
+ rt_uint32_t max_blk_count; /* maximum block count */
- rt_uint32_t spi_use_crc;
- struct rt_mutex bus_lock;
- struct rt_semaphore sem_ack;
+ rt_uint32_t spi_use_crc;
+ struct rt_mutex bus_lock;
+ struct rt_semaphore sem_ack;
- rt_uint32_t sdio_irq_num;
- struct rt_semaphore *sdio_irq_sem;
- struct rt_thread *sdio_irq_thread;
+ rt_uint32_t sdio_irq_num;
+ struct rt_semaphore *sdio_irq_sem;
+ struct rt_thread *sdio_irq_thread;
- void *private_data;
+ void *private_data;
};
rt_inline void mmcsd_delay_ms(rt_uint32_t ms)
{
- if (ms < 1000 / RT_TICK_PER_SECOND)
- {
- rt_thread_delay(1);
- }
- else
- {
- rt_thread_delay(ms/(1000 / RT_TICK_PER_SECOND));
- }
+ if (ms < 1000 / RT_TICK_PER_SECOND)
+ {
+ rt_thread_delay(1);
+ }
+ else
+ {
+ rt_thread_delay(ms/(1000 / RT_TICK_PER_SECOND));
+ }
}
#ifdef __cplusplus
diff --git a/components/drivers/include/drivers/mtd_nand.h b/components/drivers/include/drivers/mtd_nand.h
index f7675aede6..a452da61dd 100644
--- a/components/drivers/include/drivers/mtd_nand.h
+++ b/components/drivers/include/drivers/mtd_nand.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/mtd_nor.h b/components/drivers/include/drivers/mtd_nor.h
index 32a952f374..5573c54920 100644
--- a/components/drivers/include/drivers/mtd_nor.h
+++ b/components/drivers/include/drivers/mtd_nor.h
@@ -1,11 +1,11 @@
/*
- * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd
- *
+ * COPYRIGHT (C) 2011-2021, Real-Thread Information Technology Ltd
+ *
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
- * 2012-5-30 Bernard the first version
+ * 2012-5-30 Bernard the first version
*/
#ifndef __MTD_NOR_H__
@@ -14,54 +14,54 @@
#include <rtdevice.h>
struct rt_mtd_nor_driver_ops;
-#define RT_MTD_NOR_DEVICE(device) ((struct rt_mtd_nor_device*)(device))
+#define RT_MTD_NOR_DEVICE(device) ((struct rt_mtd_nor_device*)(device))
struct rt_mtd_nor_device
{
- struct rt_device parent;
+ struct rt_device parent;
- rt_uint32_t block_size; /* The Block size in the flash */
- rt_uint32_t block_start; /* The start of available block*/
- rt_uint32_t block_end; /* The end of available block */
+ rt_uint32_t block_size; /* The Block size in the flash */
+ rt_uint32_t block_start; /* The start of available block*/
+ rt_uint32_t block_end; /* The end of available block */
- /* operations interface */
- const struct rt_mtd_nor_driver_ops* ops;
+ /* operations interface */
+ const struct rt_mtd_nor_driver_ops* ops;
};
struct rt_mtd_nor_driver_ops
{
- rt_err_t (*read_id) (struct rt_mtd_nor_device* device);
+ rt_err_t (*read_id) (struct rt_mtd_nor_device* device);
- rt_size_t (*read) (struct rt_mtd_nor_device* device, rt_off_t offset, rt_uint8_t* data, rt_uint32_t length);
- rt_size_t (*write) (struct rt_mtd_nor_device* device, rt_off_t offset, const rt_uint8_t* data, rt_uint32_t length);
+ rt_size_t (*read) (struct rt_mtd_nor_device* device, rt_off_t offset, rt_uint8_t* data, rt_uint32_t length);
+ rt_size_t (*write) (struct rt_mtd_nor_device* device, rt_off_t offset, const rt_uint8_t* data, rt_uint32_t length);
- rt_err_t (*erase_block)(struct rt_mtd_nor_device* device, rt_off_t offset, rt_uint32_t length);
+ rt_err_t (*erase_block)(struct rt_mtd_nor_device* device, rt_off_t offset, rt_uint32_t length);
};
rt_err_t rt_mtd_nor_register_device(const char* name, struct rt_mtd_nor_device* device);
rt_inline rt_uint32_t rt_mtd_nor_read_id(struct rt_mtd_nor_device* device)
{
- return device->ops->read_id(device);
+ return device->ops->read_id(device);
}
rt_inline rt_size_t rt_mtd_nor_read(
- struct rt_mtd_nor_device* device,
- rt_off_t offset, rt_uint8_t* data, rt_uint32_t length)
+ struct rt_mtd_nor_device* device,
+ rt_off_t offset, rt_uint8_t* data, rt_uint32_t length)
{
- return device->ops->read(device, offset, data, length);
+ return device->ops->read(device, offset, data, length);
}
rt_inline rt_size_t rt_mtd_nor_write(
- struct rt_mtd_nor_device* device,
- rt_off_t offset, const rt_uint8_t* data, rt_uint32_t length)
+ struct rt_mtd_nor_device* device,
+ rt_off_t offset, const rt_uint8_t* data, rt_uint32_t length)
{
- return device->ops->write(device, offset, data, length);
+ return device->ops->write(device, offset, data, length);
}
rt_inline rt_err_t rt_mtd_nor_erase_block(struct rt_mtd_nor_device* device, rt_off_t offset, rt_size_t length)
{
- return device->ops->erase_block(device, offset, length);
+ return device->ops->erase_block(device, offset, length);
}
#endif
diff --git a/components/drivers/include/drivers/phy.h b/components/drivers/include/drivers/phy.h
index 2d1ad9f91f..e1783fe328 100644
--- a/components/drivers/include/drivers/phy.h
+++ b/components/drivers/include/drivers/phy.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2020, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/phy_mdio.h b/components/drivers/include/drivers/phy_mdio.h
index d978ec2984..fdef455db2 100644
--- a/components/drivers/include/drivers/phy_mdio.h
+++ b/components/drivers/include/drivers/phy_mdio.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2020, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/pin.h b/components/drivers/include/drivers/pin.h
index f5b2ded9f6..38e5abea2a 100644
--- a/components/drivers/include/drivers/pin.h
+++ b/components/drivers/include/drivers/pin.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -13,7 +13,6 @@
#define PIN_H__
#include <rtthread.h>
-#include <rtdevice.h>
#ifdef __cplusplus
extern "C" {
@@ -68,8 +67,6 @@ struct rt_pin_ops
void (*pin_mode)(struct rt_device *device, rt_base_t pin, rt_base_t mode);
void (*pin_write)(struct rt_device *device, rt_base_t pin, rt_base_t value);
int (*pin_read)(struct rt_device *device, rt_base_t pin);
-
- /* TODO: add GPIO interrupt */
rt_err_t (*pin_attach_irq)(struct rt_device *device, rt_int32_t pin,
rt_uint32_t mode, void (*hdr)(void *args), void *args);
rt_err_t (*pin_detach_irq)(struct rt_device *device, rt_int32_t pin);
@@ -79,8 +76,6 @@ struct rt_pin_ops
int rt_device_pin_register(const char *name, const struct rt_pin_ops *ops, void *user_data);
-/* Get pin number by name,such as PA.0,P0.12 */
-rt_base_t rt_pin_get(const char *name);
void rt_pin_mode(rt_base_t pin, rt_base_t mode);
void rt_pin_write(rt_base_t pin, rt_base_t value);
int rt_pin_read(rt_base_t pin);
@@ -88,6 +83,8 @@ rt_err_t rt_pin_attach_irq(rt_int32_t pin, rt_uint32_t mode,
void (*hdr)(void *args), void *args);
rt_err_t rt_pin_detach_irq(rt_int32_t pin);
rt_err_t rt_pin_irq_enable(rt_base_t pin, rt_uint32_t enabled);
+/* Get pin number by name,such as PA.0,P0.12 */
+rt_base_t rt_pin_get(const char *name);
#ifdef __cplusplus
}
diff --git a/components/drivers/include/drivers/pm.h b/components/drivers/include/drivers/pm.h
index f28283dcf8..51bff54ebb 100644
--- a/components/drivers/include/drivers/pm.h
+++ b/components/drivers/include/drivers/pm.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/pulse_encoder.h b/components/drivers/include/drivers/pulse_encoder.h
index 0c7df04cd6..38ef7652b9 100644
--- a/components/drivers/include/drivers/pulse_encoder.h
+++ b/components/drivers/include/drivers/pulse_encoder.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/rt_drv_pwm.h b/components/drivers/include/drivers/rt_drv_pwm.h
index 7a8e17b916..72e34428e6 100644
--- a/components/drivers/include/drivers/rt_drv_pwm.h
+++ b/components/drivers/include/drivers/rt_drv_pwm.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/rt_inputcapture.h b/components/drivers/include/drivers/rt_inputcapture.h
index 40cd55883d..813ed3157b 100644
--- a/components/drivers/include/drivers/rt_inputcapture.h
+++ b/components/drivers/include/drivers/rt_inputcapture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/rtc.h b/components/drivers/include/drivers/rtc.h
index 1cd88a7be3..4845937113 100644
--- a/components/drivers/include/drivers/rtc.h
+++ b/components/drivers/include/drivers/rtc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/sd.h b/components/drivers/include/drivers/sd.h
index e096df9372..450f23e65b 100644
--- a/components/drivers/include/drivers/sd.h
+++ b/components/drivers/include/drivers/sd.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/drivers/sdio.h b/components/drivers/include/drivers/sdio.h
index e4bf4a048f..212d8cfb52 100644
--- a/components/drivers/include/drivers/sdio.h
+++ b/components/drivers/include/drivers/sdio.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -174,10 +174,10 @@ rt_int32_t sdio_io_rw_extended_block(struct rt_sdio_function *func,
rt_int32_t op_code,
rt_uint8_t *buf,
rt_uint32_t len);
-rt_uint8_t sdio_io_readb(struct rt_sdio_function *func,
+rt_uint8_t sdio_io_readb(struct rt_sdio_function *func,
rt_uint32_t reg,
rt_int32_t *err);
-rt_int32_t sdio_io_writeb(struct rt_sdio_function *func,
+rt_int32_t sdio_io_writeb(struct rt_sdio_function *func,
rt_uint32_t reg,
rt_uint8_t data);
rt_uint16_t sdio_io_readw(struct rt_sdio_function *func,
@@ -192,19 +192,19 @@ rt_uint32_t sdio_io_readl(struct rt_sdio_function *func,
rt_int32_t sdio_io_writel(struct rt_sdio_function *func,
rt_uint32_t data,
rt_uint32_t addr);
-rt_int32_t sdio_io_read_multi_fifo_b(struct rt_sdio_function *func,
+rt_int32_t sdio_io_read_multi_fifo_b(struct rt_sdio_function *func,
rt_uint32_t addr,
rt_uint8_t *buf,
rt_uint32_t len);
-rt_int32_t sdio_io_write_multi_fifo_b(struct rt_sdio_function *func,
+rt_int32_t sdio_io_write_multi_fifo_b(struct rt_sdio_function *func,
rt_uint32_t addr,
rt_uint8_t *buf,
rt_uint32_t len);
-rt_int32_t sdio_io_read_multi_incr_b(struct rt_sdio_function *func,
+rt_int32_t sdio_io_read_multi_incr_b(struct rt_sdio_function *func,
rt_uint32_t addr,
rt_uint8_t *buf,
rt_uint32_t len);
-rt_int32_t sdio_io_write_multi_incr_b(struct rt_sdio_function *func,
+rt_int32_t sdio_io_write_multi_incr_b(struct rt_sdio_function *func,
rt_uint32_t addr,
rt_uint8_t *buf,
rt_uint32_t len);
diff --git a/components/drivers/include/drivers/sdio_func_ids.h b/components/drivers/include/drivers/sdio_func_ids.h
index 79085a5933..76502ff6ea 100644
--- a/components/drivers/include/drivers/sdio_func_ids.h
+++ b/components/drivers/include/drivers/sdio_func_ids.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -7,7 +7,7 @@
* Date Author Notes
* 2012-02-26 weety first version
*/
-
+
#ifndef __SDIO_FUNC_IDS_H__
#define __SDIO_FUNC_IDS_H__
diff --git a/components/drivers/include/drivers/sensor.h b/components/drivers/include/drivers/sensor.h
new file mode 100644
index 0000000000..d071893eed
--- /dev/null
+++ b/components/drivers/include/drivers/sensor.h
@@ -0,0 +1,238 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2019-01-31 flybreak first version
+ */
+
+#ifndef __SENSOR_H__
+#define __SENSOR_H__
+
+#include <rtthread.h>
+#include "pin.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef RT_USING_RTC
+#define rt_sensor_get_ts() time(RT_NULL) /* API for the sensor to get the timestamp */
+#else
+#define rt_sensor_get_ts() rt_tick_get() /* API for the sensor to get the timestamp */
+#endif
+
+#define RT_PIN_NONE 0xFFFF /* RT PIN NONE */
+#define RT_DEVICE_FLAG_FIFO_RX 0x200 /* Flag to use when the sensor is open by fifo mode */
+
+#define RT_SENSOR_MODULE_MAX (3) /* The maximum number of members of a sensor module */
+
+/* Sensor types */
+
+#define RT_SENSOR_CLASS_NONE (0)
+#define RT_SENSOR_CLASS_ACCE (1) /* Accelerometer */
+#define RT_SENSOR_CLASS_GYRO (2) /* Gyroscope */
+#define RT_SENSOR_CLASS_MAG (3) /* Magnetometer */
+#define RT_SENSOR_CLASS_TEMP (4) /* Temperature */
+#define RT_SENSOR_CLASS_HUMI (5) /* Relative Humidity */
+#define RT_SENSOR_CLASS_BARO (6) /* Barometer */
+#define RT_SENSOR_CLASS_LIGHT (7) /* Ambient light */
+#define RT_SENSOR_CLASS_PROXIMITY (8) /* Proximity */
+#define RT_SENSOR_CLASS_HR (9) /* Heart Rate */
+#define RT_SENSOR_CLASS_TVOC (10) /* TVOC Level */
+#define RT_SENSOR_CLASS_NOISE (11) /* Noise Loudness */
+#define RT_SENSOR_CLASS_STEP (12) /* Step sensor */
+#define RT_SENSOR_CLASS_FORCE (13) /* Force sensor */
+#define RT_SENSOR_CLASS_DUST (14) /* Dust sensor */
+#define RT_SENSOR_CLASS_ECO2 (15) /* eCO2 sensor */
+#define RT_SENSOR_CLASS_GNSS (16) /* GPS/GNSS sensor */
+#define RT_SENSOR_CLASS_TOF (17) /* TOF sensor */
+
+/* Sensor vendor types */
+
+#define RT_SENSOR_VENDOR_UNKNOWN (0)
+#define RT_SENSOR_VENDOR_STM (1) /* STMicroelectronics */
+#define RT_SENSOR_VENDOR_BOSCH (2) /* Bosch */
+#define RT_SENSOR_VENDOR_INVENSENSE (3) /* Invensense */
+#define RT_SENSOR_VENDOR_SEMTECH (4) /* Semtech */
+#define RT_SENSOR_VENDOR_GOERTEK (5) /* Goertek */
+#define RT_SENSOR_VENDOR_MIRAMEMS (6) /* MiraMEMS */
+#define RT_SENSOR_VENDOR_DALLAS (7) /* Dallas */
+#define RT_SENSOR_VENDOR_ASAIR (8) /* Aosong */
+#define RT_SENSOR_VENDOR_SHARP (9) /* Sharp */
+#define RT_SENSOR_VENDOR_SENSIRION (10) /* Sensirion */
+#define RT_SENSOR_VENDOR_TI (11) /* Texas Instruments */
+#define RT_SENSOR_VENDOR_PLANTOWER (12) /* Plantower */
+#define RT_SENSOR_VENDOR_AMS (13) /* ams AG */
+#define RT_SENSOR_VENDOR_MAXIM (14) /* Maxim Integrated */
+
+
+/* Sensor unit types */
+
+#define RT_SENSOR_UNIT_NONE (0)
+#define RT_SENSOR_UNIT_MG (1) /* Accelerometer unit: mG */
+#define RT_SENSOR_UNIT_MDPS (2) /* Gyroscope unit: mdps */
+#define RT_SENSOR_UNIT_MGAUSS (3) /* Magnetometer unit: mGauss */
+#define RT_SENSOR_UNIT_LUX (4) /* Ambient light unit: lux */
+#define RT_SENSOR_UNIT_CM (5) /* Distance unit: cm */
+#define RT_SENSOR_UNIT_PA (6) /* Barometer unit: pa */
+#define RT_SENSOR_UNIT_PERMILLAGE (7) /* Relative Humidity unit: permillage */
+#define RT_SENSOR_UNIT_DCELSIUS (8) /* Temperature unit: dCelsius */
+#define RT_SENSOR_UNIT_HZ (9) /* Frequency unit: HZ */
+#define RT_SENSOR_UNIT_ONE (10) /* Dimensionless quantity unit: 1 */
+#define RT_SENSOR_UNIT_BPM (11) /* Heart rate unit: bpm */
+#define RT_SENSOR_UNIT_MM (12) /* Distance unit: mm */
+#define RT_SENSOR_UNIT_MN (13) /* Force unit: mN */
+#define RT_SENSOR_UNIT_PPM (14) /* Concentration unit: ppm */
+#define RT_SENSOR_UNIT_PPB (15) /* Concentration unit: ppb */
+#define RT_SENSOR_UNIT_DMS (16) /* Coordinates unit: DMS */
+#define RT_SENSOR_UNIT_DD (17) /* Coordinates unit: DD */
+
+/* Sensor communication interface types */
+
+#define RT_SENSOR_INTF_I2C (1 << 0)
+#define RT_SENSOR_INTF_SPI (1 << 1)
+#define RT_SENSOR_INTF_UART (1 << 2)
+#define RT_SENSOR_INTF_ONEWIRE (1 << 3)
+
+/* Sensor power mode types */
+
+#define RT_SENSOR_POWER_NONE (0)
+#define RT_SENSOR_POWER_DOWN (1) /* power down mode */
+#define RT_SENSOR_POWER_NORMAL (2) /* normal-power mode */
+#define RT_SENSOR_POWER_LOW (3) /* low-power mode */
+#define RT_SENSOR_POWER_HIGH (4) /* high-power mode */
+
+/* Sensor work mode types */
+
+#define RT_SENSOR_MODE_NONE (0)
+#define RT_SENSOR_MODE_POLLING (1) /* One shot only read a data */
+#define RT_SENSOR_MODE_INT (2) /* TODO: One shot interrupt only read a data */
+#define RT_SENSOR_MODE_FIFO (3) /* TODO: One shot interrupt read all fifo data */
+
+/* Sensor control cmd types */
+
+#define RT_SENSOR_CTRL_GET_ID (0) /* Get device id */
+#define RT_SENSOR_CTRL_GET_INFO (1) /* Get sensor info */
+#define RT_SENSOR_CTRL_SET_RANGE (2) /* Set the measure range of sensor. unit is info of sensor */
+#define RT_SENSOR_CTRL_SET_ODR (3) /* Set output date rate. unit is HZ */
+#define RT_SENSOR_CTRL_SET_MODE (4) /* Set sensor's work mode. ex. RT_SENSOR_MODE_POLLING,RT_SENSOR_MODE_INT */
+#define RT_SENSOR_CTRL_SET_POWER (5) /* Set power mode. args type of sensor power mode. ex. RT_SENSOR_POWER_DOWN,RT_SENSOR_POWER_NORMAL */
+#define RT_SENSOR_CTRL_SELF_TEST (6) /* Take a self test */
+
+#define RT_SENSOR_CTRL_USER_CMD_START 0x100 /* User commands should be greater than 0x100 */
+
+struct rt_sensor_info
+{
+ rt_uint8_t type; /* The sensor type */
+ rt_uint8_t vendor; /* Vendor of sensors */
+ const char *model; /* model name of sensor */
+ rt_uint8_t unit; /* unit of measurement */
+ rt_uint8_t intf_type; /* Communication interface type */
+ rt_int32_t range_max; /* maximum range of this sensor's value. unit is 'unit' */
+ rt_int32_t range_min; /* minimum range of this sensor's value. unit is 'unit' */
+ rt_uint32_t period_min; /* Minimum measurement period,unit:ms. zero = not a constant rate */
+ rt_uint8_t fifo_max;
+};
+
+struct rt_sensor_intf
+{
+ char *dev_name; /* The name of the communication device */
+ rt_uint8_t type; /* Communication interface type */
+ void *user_data; /* Private data for the sensor. ex. i2c addr,spi cs,control I/O */
+};
+
+struct rt_sensor_config
+{
+ struct rt_sensor_intf intf; /* sensor interface config */
+ struct rt_device_pin_mode irq_pin; /* Interrupt pin, The purpose of this pin is to notification read data */
+ rt_uint8_t mode; /* sensor work mode */
+ rt_uint8_t power; /* sensor power mode */
+ rt_uint16_t odr; /* sensor out data rate */
+ rt_int32_t range; /* sensor range of measurement */
+};
+
+typedef struct rt_sensor_device *rt_sensor_t;
+
+struct rt_sensor_device
+{
+ struct rt_device parent; /* The standard device */
+
+ struct rt_sensor_info info; /* The sensor info data */
+ struct rt_sensor_config config; /* The sensor config data */
+
+ void *data_buf; /* The buf of the data received */
+ rt_size_t data_len; /* The size of the data received */
+
+ const struct rt_sensor_ops *ops; /* The sensor ops */
+
+ struct rt_sensor_module *module; /* The sensor module */
+
+ rt_err_t (*irq_handle)(rt_sensor_t sensor); /* Called when an interrupt is generated, registered by the driver */
+};
+
+struct rt_sensor_module
+{
+ rt_mutex_t lock; /* The module lock */
+
+ rt_sensor_t sen[RT_SENSOR_MODULE_MAX]; /* The module contains a list of sensors */
+ rt_uint8_t sen_num; /* Number of sensors contained in the module */
+};
+
+/* 3-axis Data Type */
+struct sensor_3_axis
+{
+ rt_int32_t x;
+ rt_int32_t y;
+ rt_int32_t z;
+};
+
+struct coordinates
+{
+ double longitude;
+ double latitude;
+};
+
+struct rt_sensor_data
+{
+ rt_uint32_t timestamp; /* The timestamp when the data was received */
+ rt_uint8_t type; /* The sensor type of the data */
+ union
+ {
+ struct sensor_3_axis acce; /* Accelerometer. unit: mG */
+ struct sensor_3_axis gyro; /* Gyroscope. unit: mdps */
+ struct sensor_3_axis mag; /* Magnetometer. unit: mGauss */
+ struct coordinates coord; /* Coordinates unit: degrees */
+ rt_int32_t temp; /* Temperature. unit: dCelsius */
+ rt_int32_t humi; /* Relative humidity. unit: permillage */
+ rt_int32_t baro; /* Pressure. unit: pascal (Pa) */
+ rt_int32_t light; /* Light. unit: lux */
+ rt_int32_t proximity; /* Distance. unit: centimeters */
+ rt_int32_t hr; /* Heart rate. unit: bpm */
+ rt_int32_t tvoc; /* TVOC. unit: permillage */
+ rt_int32_t noise; /* Noise Loudness. unit: HZ */
+ rt_uint32_t step; /* Step sensor. unit: 1 */
+ rt_int32_t force; /* Force sensor. unit: mN */
+ rt_uint32_t dust; /* Dust sensor. unit: ug/m3 */
+ rt_uint32_t eco2; /* eCO2 sensor. unit: ppm */
+ } data;
+};
+
+struct rt_sensor_ops
+{
+ rt_size_t (*fetch_data)(struct rt_sensor_device *sensor, void *buf, rt_size_t len);
+ rt_err_t (*control)(struct rt_sensor_device *sensor, int cmd, void *arg);
+};
+
+int rt_hw_sensor_register(rt_sensor_t sensor,
+ const char *name,
+ rt_uint32_t flag,
+ void *data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SENSOR_H__ */
diff --git a/components/drivers/include/drivers/serial.h b/components/drivers/include/drivers/serial.h
index 45095af63f..c2e951e9b1 100644
--- a/components/drivers/include/drivers/serial.h
+++ b/components/drivers/include/drivers/serial.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -104,7 +104,7 @@ struct serial_configure
};
/*
- * Serial FIFO mode
+ * Serial FIFO mode
*/
struct rt_serial_rx_fifo
{
@@ -121,7 +121,7 @@ struct rt_serial_tx_fifo
struct rt_completion completion;
};
-/*
+/*
* Serial DMA mode
*/
struct rt_serial_rx_dma
diff --git a/components/drivers/include/drivers/spi.h b/components/drivers/include/drivers/spi.h
index d92518cd94..018d12139b 100644
--- a/components/drivers/include/drivers/spi.h
+++ b/components/drivers/include/drivers/spi.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2020, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -151,7 +151,7 @@ struct rt_qspi_configuration
};
struct rt_qspi_device
-{
+{
struct rt_spi_device parent;
struct rt_qspi_configuration config;
diff --git a/components/drivers/include/drivers/usb_common.h b/components/drivers/include/drivers/usb_common.h
index 4d85a85e35..920a85e61b 100644
--- a/components/drivers/include/drivers/usb_common.h
+++ b/components/drivers/include/drivers/usb_common.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -112,7 +112,7 @@ extern "C" {
#define USB_STRING_CONFIG_INDEX 0x04
#define USB_STRING_INTERFACE_INDEX 0x05
#define USB_STRING_OS_INDEX 0x06
-#define USB_STRING_MAX USB_STRING_OS_INDEX
+#define USB_STRING_MAX 0xff
#define USB_STRING_OS "MSFT100A"
@@ -301,7 +301,7 @@ struct uconfig_descriptor
rt_uint8_t iConfiguration;
rt_uint8_t bmAttributes;
rt_uint8_t MaxPower;
- rt_uint8_t data[256];
+ rt_uint8_t data[2048];
};
typedef struct uconfig_descriptor* ucfg_desc_t;
@@ -427,14 +427,14 @@ struct usb_os_proerty
};
typedef struct usb_os_proerty * usb_os_proerty_t;
-// Value Description
-// 1 A NULL-terminated Unicode String (REG_SZ)
-// 2 A NULL-terminated Unicode String that includes environment variables (REG_EXPAND_SZ)
-// 3 Free-form binary (REG_BINARY)
-// 4 A little-endian 32-bit integer (REG_DWORD_LITTLE_ENDIAN)
-// 5 A big-endian 32-bit integer (REG_DWORD_BIG_ENDIAN)
-// 6 A NULL-terminated Unicode string that contains a symbolic link (REG_LINK)
-// 7 Multiple NULL-terminated Unicode strings (REG_MULTI_SZ)
+// Value Description
+// 1 A NULL-terminated Unicode String (REG_SZ)
+// 2 A NULL-terminated Unicode String that includes environment variables (REG_EXPAND_SZ)
+// 3 Free-form binary (REG_BINARY)
+// 4 A little-endian 32-bit integer (REG_DWORD_LITTLE_ENDIAN)
+// 5 A big-endian 32-bit integer (REG_DWORD_BIG_ENDIAN)
+// 6 A NULL-terminated Unicode string that contains a symbolic link (REG_LINK)
+// 7 Multiple NULL-terminated Unicode strings (REG_MULTI_SZ)
#define USB_OS_PROPERTY_TYPE_REG_SZ 0x01UL
#define USB_OS_PROPERTY_TYPE_REG_EXPAND_SZ 0x02UL
#define USB_OS_PROPERTY_TYPE_REG_BINARY 0x03UL
diff --git a/components/drivers/include/drivers/usb_device.h b/components/drivers/include/drivers/usb_device.h
index 26f0c4cf4a..3ce051dfaa 100644
--- a/components/drivers/include/drivers/usb_device.h
+++ b/components/drivers/include/drivers/usb_device.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -34,6 +34,10 @@ extern "C" {
#define _PRODUCT_ID 0x0001
#endif
+#ifndef MAX_INTF_STR
+#define MAX_INTF_STR 20
+#endif
+
#define USB_BCD_DEVICE 0x0200 /* USB Specification Release Number in Binary-Coded Decimal */
#define USB_BCD_VERSION 0x0200 /* USB 2.0 */
#define EP0_IN_ADDR 0x80
@@ -62,12 +66,12 @@ struct ufunction;
struct udevice;
struct uendpoint;
-typedef enum
+typedef enum
{
/* request to read full count */
UIO_REQUEST_READ_FULL,
/* request to read any count */
- UIO_REQUEST_READ_BEST,
+ UIO_REQUEST_READ_BEST,
/* request to write full count */
UIO_REQUEST_WRITE,
}UIO_REQUEST_TYPE;
@@ -85,7 +89,7 @@ struct udcd_ops
rt_size_t (*ep_write)(rt_uint8_t address, void *buffer, rt_size_t size);
rt_err_t (*ep0_send_status)(void);
rt_err_t (*suspend)(void);
- rt_err_t (*wakeup)(void);
+ rt_err_t (*wakeup)(void);
};
struct ep_id
@@ -193,7 +197,7 @@ struct udevice
struct usb_qualifier_descriptor * dev_qualifier;
usb_os_comp_id_desc_t os_comp_id_desc;
const char** str;
-
+ const char *str_intf[MAX_INTF_STR];
udevice_state_t state;
rt_list_t cfg_list;
uconfig_t curr_cfg;
@@ -215,10 +219,10 @@ enum udev_msg_type
USB_MSG_SETUP_NOTIFY,
USB_MSG_DATA_NOTIFY,
USB_MSG_EP0_OUT,
- USB_MSG_EP_CLEAR_FEATURE,
+ USB_MSG_EP_CLEAR_FEATURE,
USB_MSG_SOF,
USB_MSG_RESET,
- USB_MSG_PLUG_IN,
+ USB_MSG_PLUG_IN,
/* we don't need to add a "PLUG_IN" event because after the cable is
* plugged in(before any SETUP) the classed have nothing to do. If the host
* is ready, it will send RESET and we will have USB_MSG_RESET. So, a RESET
@@ -260,6 +264,7 @@ rt_err_t rt_usbd_event_signal(struct udev_msg* msg);
rt_err_t rt_usbd_device_set_controller(udevice_t device, udcd_t dcd);
rt_err_t rt_usbd_device_set_descriptor(udevice_t device, udev_desc_t dev_desc);
rt_err_t rt_usbd_device_set_string(udevice_t device, const char** ustring);
+rt_err_t rt_usbd_device_set_interface_string(udevice_t device, int index, const char* string);
rt_err_t rt_usbd_device_set_qualifier(udevice_t device, struct usb_qualifier_descriptor* qualifier);
rt_err_t rt_usbd_device_set_os_comp_id_desc(udevice_t device, usb_os_comp_id_desc_t os_comp_id_desc);
rt_err_t rt_usbd_device_add_config(udevice_t device, uconfig_t cfg);
@@ -279,7 +284,7 @@ uintf_t rt_usbd_find_interface(udevice_t device, rt_uint8_t value, ufunction_t *
uep_t rt_usbd_find_endpoint(udevice_t device, ufunction_t* pfunc, rt_uint8_t ep_addr);
rt_size_t rt_usbd_io_request(udevice_t device, uep_t ep, uio_request_t req);
rt_size_t rt_usbd_ep0_write(udevice_t device, void *buffer, rt_size_t size);
-rt_size_t rt_usbd_ep0_read(udevice_t device, void *buffer, rt_size_t size,
+rt_size_t rt_usbd_ep0_read(udevice_t device, void *buffer, rt_size_t size,
rt_err_t (*rx_ind)(udevice_t device, rt_size_t size));
int rt_usbd_vcom_class_register(void);
@@ -396,7 +401,7 @@ rt_inline rt_err_t dcd_ep0_send_status(udcd_t dcd)
}
rt_inline rt_err_t dcd_ep_set_stall(udcd_t dcd, rt_uint8_t address)
-{
+{
RT_ASSERT(dcd != RT_NULL);
RT_ASSERT(dcd->ops != RT_NULL);
RT_ASSERT(dcd->ops->ep_set_stall != RT_NULL);
diff --git a/components/drivers/include/drivers/usb_host.h b/components/drivers/include/drivers/usb_host.h
index 2a68f4edb5..2031e2cdc0 100644
--- a/components/drivers/include/drivers/usb_host.h
+++ b/components/drivers/include/drivers/usb_host.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -44,10 +44,10 @@ struct uclass_driver
rt_list_t list;
int class_code;
int subclass_code;
-
+
rt_err_t (*enable)(void* arg);
rt_err_t (*disable)(void* arg);
-
+
void* user_data;
};
typedef struct uclass_driver* ucd_t;
@@ -56,9 +56,9 @@ struct uprotocal
{
rt_list_t list;
int pro_id;
-
+
rt_err_t (*init)(void* arg);
- rt_err_t (*callback)(void* arg);
+ rt_err_t (*callback)(void* arg);
};
typedef struct uprotocal* uprotocal_t;
@@ -77,13 +77,13 @@ struct uinstance
rt_uint8_t status;
rt_uint8_t type;
rt_uint8_t index;
- rt_uint8_t address;
+ rt_uint8_t address;
rt_uint8_t speed;
- rt_uint8_t max_packet_size;
+ rt_uint8_t max_packet_size;
rt_uint8_t port;
struct uhub* parent_hub;
- struct uhintf* intf[USB_MAX_INTERFACE];
+ struct uhintf* intf[USB_MAX_INTERFACE];
};
typedef struct uinstance* uinst_t;
@@ -113,14 +113,14 @@ struct uhub
struct uhub_descriptor hub_desc;
rt_uint8_t num_ports;
rt_uint32_t port_status[USB_HUB_PORT_NUM];
- struct uinstance* child[USB_HUB_PORT_NUM];
+ struct uinstance* child[USB_HUB_PORT_NUM];
rt_bool_t is_roothub;
- rt_uint8_t buffer[8];
+ rt_uint8_t buffer[8];
struct uinstance* self;
struct uhcd *hcd;
-};
+};
typedef struct uhub* uhub_t;
struct uhcd_ops
@@ -128,7 +128,7 @@ struct uhcd_ops
rt_err_t (*reset_port) (rt_uint8_t port);
int (*pipe_xfer) (upipe_t pipe, rt_uint8_t token, void* buffer, int nbytes, int timeout);
rt_err_t (*open_pipe) (upipe_t pipe);
- rt_err_t (*close_pipe) (upipe_t pipe);
+ rt_err_t (*close_pipe) (upipe_t pipe);
};
typedef struct uhcd_ops* uhcd_ops_t;
struct uhcd
@@ -136,7 +136,7 @@ struct uhcd
struct rt_device parent;
uhcd_ops_t ops;
rt_uint8_t num_ports;
- uhub_t roothub;
+ uhub_t roothub;
};
typedef struct uhcd* uhcd_t;
@@ -149,11 +149,11 @@ typedef enum uhost_msg_type uhost_msg_type;
struct uhost_msg
{
- uhost_msg_type type;
+ uhost_msg_type type;
union
{
struct uhub* hub;
- struct
+ struct
{
func_callback function;
void *context;
@@ -193,14 +193,14 @@ ucd_t rt_usbh_class_driver_storage(void);
/* usb hub interface */
-rt_err_t rt_usbh_hub_get_descriptor(struct uinstance* device, rt_uint8_t *buffer,
+rt_err_t rt_usbh_hub_get_descriptor(struct uinstance* device, rt_uint8_t *buffer,
rt_size_t size);
rt_err_t rt_usbh_hub_get_status(struct uinstance* device, rt_uint32_t* buffer);
-rt_err_t rt_usbh_hub_get_port_status(uhub_t uhub, rt_uint16_t port,
+rt_err_t rt_usbh_hub_get_port_status(uhub_t uhub, rt_uint16_t port,
rt_uint32_t* buffer);
-rt_err_t rt_usbh_hub_clear_port_feature(uhub_t uhub, rt_uint16_t port,
+rt_err_t rt_usbh_hub_clear_port_feature(uhub_t uhub, rt_uint16_t port,
rt_uint16_t feature);
-rt_err_t rt_usbh_hub_set_port_feature(uhub_t uhub, rt_uint16_t port,
+rt_err_t rt_usbh_hub_set_port_feature(uhub_t uhub, rt_uint16_t port,
rt_uint16_t feature);
rt_err_t rt_usbh_hub_reset_port(uhub_t uhub, rt_uint16_t port);
rt_err_t rt_usbh_event_signal(struct uhost_msg* msg);
diff --git a/components/drivers/include/drivers/watchdog.h b/components/drivers/include/drivers/watchdog.h
index f80ded58aa..9489ac2810 100644
--- a/components/drivers/include/drivers/watchdog.h
+++ b/components/drivers/include/drivers/watchdog.h
@@ -1,6 +1,6 @@
/*
- * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd
- *
+ * COPYRIGHT (C) 2011-2021, Real-Thread Information Technology Ltd
+ *
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
diff --git a/components/drivers/include/drivers/wlan.h b/components/drivers/include/drivers/wlan.h
index 724e61da78..b5b4f73586 100644
--- a/components/drivers/include/drivers/wlan.h
+++ b/components/drivers/include/drivers/wlan.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/ipc/completion.h b/components/drivers/include/ipc/completion.h
index acfcaa3995..087a9be813 100644
--- a/components/drivers/include/ipc/completion.h
+++ b/components/drivers/include/ipc/completion.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/ipc/dataqueue.h b/components/drivers/include/ipc/dataqueue.h
index 76203c404d..5dd94e55c0 100644
--- a/components/drivers/include/ipc/dataqueue.h
+++ b/components/drivers/include/ipc/dataqueue.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/ipc/pipe.h b/components/drivers/include/ipc/pipe.h
index 93ba95cd2c..a45e8ae002 100644
--- a/components/drivers/include/ipc/pipe.h
+++ b/components/drivers/include/ipc/pipe.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/ipc/poll.h b/components/drivers/include/ipc/poll.h
index 8c68a96af8..1574215c77 100644
--- a/components/drivers/include/ipc/poll.h
+++ b/components/drivers/include/ipc/poll.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/ipc/ringblk_buf.h b/components/drivers/include/ipc/ringblk_buf.h
index 94fc2cfff3..5b2971b800 100644
--- a/components/drivers/include/ipc/ringblk_buf.h
+++ b/components/drivers/include/ipc/ringblk_buf.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/ipc/ringbuffer.h b/components/drivers/include/ipc/ringbuffer.h
index 2afd2ca213..71c4801253 100644
--- a/components/drivers/include/ipc/ringbuffer.h
+++ b/components/drivers/include/ipc/ringbuffer.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/components/drivers/include/ipc/waitqueue.h b/components/drivers/include/ipc/waitqueue.h
index e26ec1e896..fbf5f93142 100644
--- a/components/drivers/include/ipc/waitqueue.h
+++ b/components/drivers/include/ipc/waitqueue.h
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
- * 2018/06/26 Bernard Fix the wait queue issue when wakeup a soon
+ * 2018/06/26 Bernard Fix the wait queue issue when wakeup a soon
* to blocked thread.
*/
diff --git a/components/drivers/include/ipc/workqueue.h b/components/drivers/include/ipc/workqueue.h
index 23e256c420..ccbc42b226 100644
--- a/components/drivers/include/ipc/workqueue.h
+++ b/components/drivers/include/ipc/workqueue.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -29,6 +29,7 @@ enum
struct rt_workqueue
{
rt_list_t work_list;
+ rt_list_t delayed_list;
struct rt_work *work_current; /* current work */
struct rt_semaphore sem;
@@ -62,6 +63,7 @@ rt_err_t rt_workqueue_dowork(struct rt_workqueue *queue, struct rt_work *work);
rt_err_t rt_workqueue_submit_work(struct rt_workqueue *queue, struct rt_work *work, rt_tick_t time);
rt_err_t rt_workqueue_cancel_work(struct rt_workqueue *queue, struct rt_work *work);
rt_err_t rt_workqueue_cancel_work_sync(struct rt_workqueue *queue, struct rt_work *work);
+rt_err_t rt_workqueue_cancel_all_work(struct rt_workqueue *queue);
#ifdef RT_USING_SYSTEM_WORKQUEUE
rt_err_t rt_work_submit(struct rt_work *work, rt_tick_t time);
diff --git a/components/drivers/include/rtdevice.h b/components/drivers/include/rtdevice.h
index f0fa2f5b4a..fbd3c9e7b2 100644
--- a/components/drivers/include/rtdevice.h
+++ b/components/drivers/include/rtdevice.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -78,70 +78,76 @@ extern "C" {
#include "drivers/mmcsd_core.h"
#include "drivers/sd.h"
#include "drivers/sdio.h"
-#endif
+#endif /* RT_USING_SDIO */
+
#ifdef RT_USING_WDT
#include "drivers/watchdog.h"
-#endif
+#endif /* RT_USING_WDT */
#ifdef RT_USING_PIN
#include "drivers/pin.h"
-#endif
+#endif /* RT_USING_PIN */
+
+#ifdef RT_USING_SENSOR
+#include "drivers/sensor.h"
+#endif /* RT_USING_SENSOR */
#ifdef RT_USING_CAN
#include "drivers/can.h"
-#endif
+#endif /* RT_USING_CAN */
#ifdef RT_USING_HWTIMER
#include "drivers/hwtimer.h"
-#endif
+#endif /* RT_USING_HWTIMER */
#ifdef RT_USING_AUDIO
#include "drivers/audio.h"
-#endif
+#endif /* RT_USING_AUDIO */
#ifdef RT_USING_CPUTIME
#include "drivers/cputime.h"
-#endif
+#endif /* RT_USING_CPUTIME */
#ifdef RT_USING_ADC
#include "drivers/adc.h"
-#endif
+#endif /* RT_USING_ADC */
#ifdef RT_USING_DAC
#include "drivers/dac.h"
-#endif
+#endif /* RT_USING_DAC */
#ifdef RT_USING_PWM
#include "drivers/rt_drv_pwm.h"
-#endif
+#endif /* RT_USING_PWM */
#ifdef RT_USING_PM
#include "drivers/pm.h"
-#endif
+#endif /* RT_USING_PM */
#ifdef RT_USING_WIFI
#include "drivers/wlan.h"
-#endif
+#endif /* RT_USING_WIFI */
#ifdef MTD_USING_NOR
#include "drivers/mtdnor.h"
-#endif
+#endif /* MTD_USING_NOR */
+
#ifdef MTD_USING_NAND
#include "drivers/mtdnand.h"
-#endif
+#endif /* MTD_USING_NAND */
#ifdef RT_USING_HWCRYPTO
#include "drivers/crypto.h"
-#endif
+#endif /* RT_USING_HWCRYPTO */
#ifdef RT_USING_PULSE_ENCODER
#include "drivers/pulse_encoder.h"
-#endif
+#endif /* RT_USING_PULSE_ENCODER */
#ifdef RT_USING_INPUT_CAPTURE
#include "drivers/rt_inputcapture.h"
-#endif
+#endif /* RT_USING_INPUT_CAPTURE */
#ifdef __cplusplus
}