<?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="../common/stm32/stm32_gpiov2a_port.xsd" />
	<xs:include schemaLocation="abstract_board.xsd" />

	<xs:complexType name="STM32L5xxBoardType">
		<xs:complexContent>
			<xs:extension base="AbstractBoardType">
				<xs:sequence>
					<xs:element name="subtype">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:whiteSpace value="collapse"></xs:whiteSpace>
                                <xs:enumeration value="STM32L552xx"></xs:enumeration>
                                <xs:enumeration value="STM32L562xx"></xs:enumeration>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
					<xs:element name="clocks" maxOccurs="1" minOccurs="1">
						<xs:complexType>
							<xs:attribute name="HSEBypass" use="required">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:whiteSpace value="collapse"></xs:whiteSpace>
										<xs:enumeration value="false"></xs:enumeration>
										<xs:enumeration value="true"></xs:enumeration>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
							<xs:attribute name="HSEFrequency" use="required">
								<xs:simpleType>
									<xs:restriction base="xs:int">
										<xs:whiteSpace value="collapse"></xs:whiteSpace>
										<xs:minInclusive value="0"></xs:minInclusive>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
							<xs:attribute name="LSEBypass" use="required">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:whiteSpace value="collapse">
										</xs:whiteSpace>
										<xs:enumeration value="false"></xs:enumeration>
										<xs:enumeration value="true"></xs:enumeration>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
							<xs:attribute name="LSEDrive" use="required">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:whiteSpace value="collapse"></xs:whiteSpace>
										<xs:enumeration value="3 High Drive (default)">
										</xs:enumeration>
										<xs:enumeration value="2 Medium-High Drive">
										</xs:enumeration>
										<xs:enumeration value="1 Medium-Low Drive">
										</xs:enumeration>
										<xs:enumeration value="0 Low Drive (lowest consumption)">
										</xs:enumeration>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
							<xs:attribute name="LSEFrequency" use="required">
								<xs:simpleType>
									<xs:restriction base="xs:int">
										<xs:whiteSpace value="collapse"></xs:whiteSpace>
										<xs:minInclusive value="0"></xs:minInclusive>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
							<xs:attribute name="VDD" use="required">
								<xs:simpleType>
									<xs:restriction base="xs:int">
										<xs:whiteSpace value="collapse">
										</xs:whiteSpace>
										<xs:minInclusive value="180"></xs:minInclusive>
										<xs:maxInclusive value="360"></xs:maxInclusive>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
						</xs:complexType>
					</xs:element>
					<xs:element name="ports" type="portsType" maxOccurs="1"
						minOccurs="1">
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="portsType">
		<xs:sequence>
			<xs:element name="GPIOA" type="STM32GPIOv2aPortType"
				minOccurs="1" maxOccurs="1">
			</xs:element>
			<xs:element name="GPIOB" type="STM32GPIOv2aPortType"
				minOccurs="1" maxOccurs="1">
			</xs:element>
			<xs:element name="GPIOC" type="STM32GPIOv2aPortType"
				minOccurs="1" maxOccurs="1">
			</xs:element>
			<xs:element name="GPIOD" type="STM32GPIOv2aPortType"
				maxOccurs="1" minOccurs="1">
			</xs:element>
			<xs:element name="GPIOE" type="STM32GPIOv2aPortType"
				maxOccurs="1" minOccurs="1">
			</xs:element>
			<xs:element name="GPIOF" type="STM32GPIOv2aPortType"
				maxOccurs="1" minOccurs="1">
			</xs:element>
			<xs:element name="GPIOG" type="STM32GPIOv2aPortType"
				maxOccurs="1" minOccurs="1">
			</xs:element>
            <xs:element name="GPIOH" type="STM32GPIOv2aPortType"
                maxOccurs="1" minOccurs="1">
            </xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:element name="board" type="STM32L5xxBoardType"></xs:element>

</xs:schema>
