<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" DBVersion="V3.0" IncludeFile="stm32f30x.h,stm32f30x_gpio.h,stm32f30x_rcc.h,stm32f30x_syscfg.h" Name="GPIO" Version="STM32F30x_v1_0_0_gpio" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../db/IP_Configs_V3_0.xsd">
	<RefConfig Name="GPIO">
		<CallLibMethod Name="RCC_AHBPeriphClockCmd" ReturnHAL="false">
	  	<MethodArg Name="RCC_AHBPeriph" ParameterName="GPIO_Clock_Enable"/>
	  	<MethodArg Name="NewState" ParameterName="Clock_State"/>
	  </CallLibMethod>
		<CallLibMethod Name="GPIO_Init" ReturnHAL="false"/>
	</RefConfig>
	<RefConfig Name="AlternateFunction">
		<CallLibMethod Name="RCC_AHBPeriphClockCmd" ReturnHAL="false">
	  	<MethodArg Name="RCC_AHBPeriph" ParameterName="GPIO_Clock_Enable"/>
	  	<MethodArg Name="NewState" ParameterName="Clock_State"/>
	  </CallLibMethod>
		<CallLibMethod Name="GPIO_Init" ReturnHAL="false"/>
		<CallLibMethod Name="GPIO_PinAFConfig" ReturnHAL="false"/>
	</RefConfig>
	<RefConfig Name="EXTI">
		<CallLibMethod Name="RCC_AHBPeriphClockCmd" ReturnHAL="false">
	  	<MethodArg Name="RCC_AHBPeriph" ParameterName="GPIO_Clock_Enable"/>
	  	<MethodArg Name="NewState" ParameterName="Clock_State"/>
	  </CallLibMethod>
		<CallLibMethod Name="GPIO_Init" ReturnHAL="false"/>
		<CallLibMethod Name="RCC_APB2PeriphClockCmd" ReturnHAL="false">
	  	<MethodArg Name="RCC_APB2Periph" ParameterName="SYSCFG_Clock_Enable"/>
	  	<MethodArg Name="NewState" ParameterName="Clock_State"/>
	  </CallLibMethod>
		<CallLibMethod Name="SYSCFG_EXTILineConfig" ReturnHAL="false"/>
	</RefConfig>
	<LibMethod Comment="Configure GPIO pin" Name="GPIO_Init" Optimizable="true">
		<Argument Comment="Port address" GenericType="simple" Name="GPIOx" OptimizationCondition="Equal"/>
		<Argument AddressOf="true" Comment="Configuration parameters" GenericType="struct" Name="GPIO_InitStruct" TypeName="GPIO_InitTypeDef">
			<Argument Comment="Pin mask" GenericType="simple" Name="GPIO_Pin" OptimizationCondition="BitwiseOr"/>
			<Argument Comment="IO mode" GenericType="simple" Name="GPIO_Mode" OptimizationCondition="Equal"/>
			<Argument Comment="Output type" GenericType="simple" Name="GPIO_OType" OptimizationCondition="Equal"/>
		  <Argument Comment="Pull up/Pull down selection" GenericType="simple" Name="GPIO_PuPd" OptimizationCondition="Equal"/>
			<Argument Comment="Output speed" GenericType="simple" Name="GPIO_Speed" OptimizationCondition="Equal"/>
		</Argument>
	</LibMethod>
	<LibMethod Comment="Configure GPIO pin alternate function" Name="GPIO_PinAFConfig">
		<Argument Comment="Port address" GenericType="simple" Name="GPIOx"/>
		<Argument Comment="Pin number" GenericType="simple" Name="GPIO_PinSource"/>
		<Argument Comment="Alternate function code" GenericType="simple" Name="GPIO_AF"/>
	</LibMethod>
	<LibMethod Comment="Configure EXTI line" Name="SYSCFG_EXTILineConfig">
		<Argument Comment="Port number" GenericType="simple" Name="EXTI_PortSourceGPIOx"/>
		<Argument Comment="Pin number" GenericType="simple" Name="EXTI_PinSourcex"/>
	</LibMethod>
  <LibMethod Comment="Enable or disable the AHB peripheral clock" Name="RCC_AHBPeriphClockCmd" Optimizable="true">
	  <Argument Comment="AHB peripheral clock enable mask" GenericType="simple" Name="RCC_AHBPeriph" OptimizationCondition="BitwiseOr"/>
	  <Argument Comment="Clock state" GenericType="simple" Name="NewState" OptimizationCondition="Equal"/>
  </LibMethod>
  <LibMethod Comment="Enable or disable the high speed APB (APB2) peripheral clock" Name="RCC_APB2PeriphClockCmd" Optimizable="true">
    <Argument Comment="APB2 peripheral clock enable mask" GenericType="simple" Name="RCC_APB2Periph" OptimizationCondition="BitwiseOr"/>
    <Argument Comment="Clock state" GenericType="simple" Name="NewState" OptimizationCondition="Equal"/>
  </LibMethod>
</IP>
