tinySA/tools/gencfg/schema/common/stm32/stm32_gpiov2_port.xsd

106 lines
5.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="STM32GPIOv2PortType">
<xs:sequence>
<xs:element name="pin0" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin1" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin2" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin3" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin4" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin5" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin6" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin7" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin8" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin9" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin10" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin11" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin12" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin13" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin14" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="pin15" type="STM32GPIOv2PinType" maxOccurs="1" minOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="STM32GPIOv2PinType">
<xs:annotation>
<xs:documentation>Object representing an STM32 pin for the GPIOv2 peripheral.</xs:documentation>
</xs:annotation>
<xs:attribute name="ID" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>Pin identifier, used to generate a #define with the pin name.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\w?[\w\d_]*"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Mode" use="required">
<xs:annotation>
<xs:documentation>Pin mode, as defined for MODER register.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Input"></xs:enumeration>
<xs:enumeration value="Output"></xs:enumeration>
<xs:enumeration value="Alternate"></xs:enumeration>
<xs:enumeration value="Analog"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Type" use="required">
<xs:annotation>
<xs:documentation>Pin type as defined in TYPER register.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="PushPull"></xs:enumeration>
<xs:enumeration value="OpenDrain"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Speed" use="required">
<xs:annotation>
<xs:documentation>Pin speed as defined in SPEEDR register.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Minimum"></xs:enumeration>
<xs:enumeration value="Low"></xs:enumeration>
<xs:enumeration value="High"></xs:enumeration>
<xs:enumeration value="Maximum"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Resistor" use="required">
<xs:annotation>
<xs:documentation>Pin pull-up/down resistor as defined in PUDR register.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None"></xs:enumeration>
<xs:enumeration value="PullUp"></xs:enumeration>
<xs:enumeration value="PullDown"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Alternate" use="required">
<xs:annotation>
<xs:documentation>Pin alternate function number, only valid if "Alternate" is selected in the Mode attribute.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"></xs:minInclusive>
<xs:maxInclusive value="15"></xs:maxInclusive>
<xs:whiteSpace value="collapse"></xs:whiteSpace>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:schema>