aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gencfg/schema/hal
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gencfg/schema/hal')
-rw-r--r--tools/gencfg/schema/hal/abstract_adc_cfg.xsd51
-rw-r--r--tools/gencfg/schema/hal/abstract_cfg.xsd344
-rw-r--r--tools/gencfg/schema/hal/abstract_driver_cfg.xsd12
-rw-r--r--tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd432
-rw-r--r--tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd29
5 files changed, 868 insertions, 0 deletions
diff --git a/tools/gencfg/schema/hal/abstract_adc_cfg.xsd b/tools/gencfg/schema/hal/abstract_adc_cfg.xsd
new file mode 100644
index 000000000..52a6c9096
--- /dev/null
+++ b/tools/gencfg/schema/hal/abstract_adc_cfg.xsd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema elementFormDefault="qualified"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:include schemaLocation="abstract_driver_cfg.xsd" />
+
+ <xs:complexType name="AbstractAdcGroupCfgType">
+ <xs:complexContent>
+ <xs:extension base="DocumentedItem">
+ <xs:sequence>
+ <xs:element name="circular" maxOccurs="1" minOccurs="1">
+
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="conv_callback" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0"></xs:minLength>
+ <xs:maxLength value="24"></xs:maxLength>
+ <xs:pattern value="\w[\w\d_]*"></xs:pattern>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="error_callback" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0"></xs:minLength>
+ <xs:maxLength value="24"></xs:maxLength>
+
+ <xs:pattern value="\w[\w\d_]*"></xs:pattern>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="AbstractAdcCfgType">
+ <xs:complexContent>
+ <xs:extension base="AbstractDriverCfgType"></xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
diff --git a/tools/gencfg/schema/hal/abstract_cfg.xsd b/tools/gencfg/schema/hal/abstract_cfg.xsd
new file mode 100644
index 000000000..72491eea9
--- /dev/null
+++ b/tools/gencfg/schema/hal/abstract_cfg.xsd
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema
+ elementFormDefault="qualified"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:include schemaLocation="../common/doc.xsd" />
+
+ <xs:complexType name="AbstractCfgType">
+ <xs:complexContent>
+ <xs:extension base="DocumentedItem">
+ <xs:sequence>
+ <xs:element
+ name="hal"
+ maxOccurs="1"
+ minOccurs="1" type="HALSettingsType">
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ADCSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="ADC_USE_WAIT">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="ADC_USE_MUTUAL_EXCLUSION">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CANSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="CAN_USE_SLEEP_MODE">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EXTSettingsType"></xs:complexType>
+
+ <xs:complexType name="GPTSettingsType"></xs:complexType>
+
+ <xs:complexType name="I2CSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="I2C_USE_MUTUAL_EXCLUSION">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ICUSettingsType"></xs:complexType>
+
+ <xs:complexType name="MACSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="MAC_USE_EVENTS">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MMC_SPISettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="MMC_NICE_WAITING">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PALSettingsType"></xs:complexType>
+
+ <xs:complexType name="PWMSettingsType"></xs:complexType>
+
+ <xs:complexType name="RTCSettingsType"></xs:complexType>
+
+ <xs:complexType name="SDCSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SDC_INIT_RETRY">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="0"></xs:minInclusive>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SDC_MMC_SUPPORT">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="false"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SDC_NICE_WAITING">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SERIALSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SERIAL_DEFAULT_BITRATE">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minExclusive value="300"></xs:minExclusive>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SERIAL_BUFFERS_SIZE">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="4"></xs:minInclusive>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SERIAL_USBSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SERIAL_USB_BUFFERS_SIZE">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="64"></xs:minInclusive>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SPISettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SPI_USE_WAIT">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element
+ minOccurs="1"
+ maxOccurs="1"
+ name="SPI_USE_MUTUAL_EXCLUSION">
+ <xs:simpleType>
+ <xs:restriction base="xs:boolean">
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="TMSettingsType"></xs:complexType>
+
+ <xs:complexType name="UARTSettingsType"></xs:complexType>
+
+ <xs:complexType name="USBSettingsType"></xs:complexType>
+
+ <xs:complexType name="HALSettingsType">
+ <xs:sequence>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="ADC"
+ type="ADCSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="CAN"
+ type="CANSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="EXT"
+ type="EXTSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="GPT"
+ type="GPTSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="I2C"
+ type="I2CSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="ICU"
+ type="ICUSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="MAC"
+ type="MACSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="MMC_SPI"
+ type="MMC_SPISettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="PAL"
+ type="PALSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="PWM"
+ type="PWMSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="RTC"
+ type="RTCSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="SDC"
+ type="SDCSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="SERIAL"
+ type="SERIALSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="SERIAL_USB"
+ type="SERIAL_USBSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="SPI"
+ type="SPISettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="TM"
+ type="TMSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="UART"
+ type="UARTSettingsType">
+ </xs:element>
+ <xs:element
+ minOccurs="0"
+ maxOccurs="1"
+ name="USB"
+ type="USBSettingsType">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/tools/gencfg/schema/hal/abstract_driver_cfg.xsd b/tools/gencfg/schema/hal/abstract_driver_cfg.xsd
new file mode 100644
index 000000000..d6501ff2a
--- /dev/null
+++ b/tools/gencfg/schema/hal/abstract_driver_cfg.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema elementFormDefault="qualified"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:include schemaLocation="../common/doc.xsd" />
+
+ <xs:complexType name="AbstractDriverCfgType">
+ <xs:complexContent>
+ <xs:extension base="DocumentedItem"></xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
diff --git a/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd
new file mode 100644
index 000000000..331933109
--- /dev/null
+++ b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd
@@ -0,0 +1,432 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema elementFormDefault="qualified"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:include schemaLocation="../abstract_adc_cfg.xsd" />
+
+ <xs:complexType name="STM32F4AdcCfgType">
+ <xs:complexContent>
+ <xs:extension base="AbstractAdcCfgType">
+ <xs:sequence>
+ <xs:element name="groups" minOccurs="1" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="group" maxOccurs="unbounded"
+ minOccurs="1" type="STM32F4xxAdcGroupCfgType"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="STM32F4xxAdcGroupCfgType">
+ <xs:complexContent>
+ <xs:extension base="AbstractAdcGroupCfgType">
+ <xs:sequence>
+ <xs:element name="alignment" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Samples are Right Aligned"></xs:enumeration>
+ <xs:enumeration value="1 Samples are Left Aligned"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="resolution" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 12 bits"></xs:enumeration>
+ <xs:enumeration value="1 10 bits"></xs:enumeration>
+ <xs:enumeration value="2 8 bits"></xs:enumeration>
+ <xs:enumeration value="3 6 bits"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="trigger_mode" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Software"></xs:enumeration>
+ <xs:enumeration value="1 Rising Edge"></xs:enumeration>
+ <xs:enumeration value="2 Falling Edge"></xs:enumeration>
+ <xs:enumeration value="3 Both Edges"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="trigger_source" maxOccurs="1"
+ minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Timer 1 CC1 event"></xs:enumeration>
+ <xs:enumeration value="1 Timer 1 CC2 event"></xs:enumeration>
+ <xs:enumeration value="2 Timer 1 CC3 event"></xs:enumeration>
+ <xs:enumeration value="3 Timer 2 CC2 event"></xs:enumeration>
+ <xs:enumeration value="4 Timer 2 CC3 event"></xs:enumeration>
+ <xs:enumeration value="5 Timer 2 CC4 event"></xs:enumeration>
+ <xs:enumeration value="6 Timer 2 TRGO event"></xs:enumeration>
+ <xs:enumeration value="7 Timer 3 CC1 event"></xs:enumeration>
+ <xs:enumeration value="8 Timer 3 TRGO event"></xs:enumeration>
+ <xs:enumeration value="9 Timer 4 CC4 event"></xs:enumeration>
+ <xs:enumeration value="10 Timer 5 CC1 event"></xs:enumeration>
+ <xs:enumeration value="11 Timer 5 CC2 event"></xs:enumeration>
+ <xs:enumeration value="12 Timer 5 CC3 event"></xs:enumeration>
+ <xs:enumeration value="13 Timer 8 CC1 event"></xs:enumeration>
+ <xs:enumeration value="14 Timer 8 CC4 event"></xs:enumeration>
+ <xs:enumeration value="15 EXTI line15"></xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="discontinuous" maxOccurs="1"
+ minOccurs="1">
+
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0 Disabled"></xs:enumeration>
+ <xs:enumeration value="1 One discontinous conversion"></xs:enumeration>
+ <xs:enumeration
+ value="2 Two discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="3 Three discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="4 Four discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="5 Five discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="6 Six discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="7 Seven discontinous conversions">
+ </xs:enumeration>
+ <xs:enumeration
+ value="8 Eight discontinous conversions">
+ </xs:enumeration>
+ <xs:whiteSpace value="collapse"></xs:whiteSpace>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="sample_time" maxOccurs="1" minOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="IN0" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN1" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN2" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN3" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN4" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN5" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN6" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN7" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN8" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN9" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN10" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN11" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN12" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN13" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN14" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="IN15" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="SENSOR" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="VREFINT" maxOccurs="1"
+ minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="VBAT" maxOccurs="1" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_SAMPLE_3"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_15"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_28"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_56"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_84"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_112"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_144"></xs:enumeration>
+ <xs:enumeration value="ADC_SAMPLE_480"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="channels_sequence" maxOccurs="1"
+ minOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="channel" maxOccurs="16"
+ minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADC_CHANNEL_IN0"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN1"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN2"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN3"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN4"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN5"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN6"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN7"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN8"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN9"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN10"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN11"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN12"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN13"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN14"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_IN15"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_SENSOR"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_VREFINT"></xs:enumeration>
+ <xs:enumeration value="ADC_CHANNEL_VBAT"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+
+
+
+
+
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd
new file mode 100644
index 000000000..f846403f3
--- /dev/null
+++ b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema elementFormDefault="qualified"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:include schemaLocation="../../common/doc.xsd" />
+ <xs:include schemaLocation="stm32f4xx_adc_cfg.xsd" />
+
+ <xs:complexType name="STM32F4xxCfgType">
+ <xs:complexContent>
+ <xs:extension base="DocumentedItem">
+ <xs:sequence>
+ <xs:element name="configs" maxOccurs="1" minOccurs="1">
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded" minOccurs="1">
+ <xs:choice>
+ <xs:element name="adc_config" type="STM32F4AdcCfgType"
+ maxOccurs="1" minOccurs="0">
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="configuration" type="STM32F4xxCfgType"></xs:element>
+</xs:schema>