GPIO pins can be configured to be input or output GPIO pins can be enabled/disabled Input values are readable (usually high or low) Output values are writable/readable Input values can often be used as IRQs (usually for wakeup events)