GPIO in TX1

Hi
I am using TX1 processor in my design ,In the TX1 connector some of the Pins are mentioned as GPIO/FUNCTION
can I use all such pins as GPIO .How to make the PIN by default as a GPIO instead of a dedicated Special function

The following pins are mentioned as GPIO with special function
GPIO0/CAM0_PWR#
GPIO1/CAM1_PWR#
GPIO2/CAM0_RST#
GPIO3/CAM1_RST#
GPIO4/CAM_STROBE
GPIO5/CAM_FLASH_EN
GPIO19/AUD_RST
GPIO20/AUD_INT
GPIO_EXPO_INT
GPIO6/TOUCH_INT
GPIO12/BT_EN
GPIO8/ALS_PROX_INT
GPIO9/MOTION_IN
GPIO7/TOUCH_RST
GPIO11/AP_WAKE_BT
GPIO10/WIFI_WAKE_AP
GPIO13/BT_WAKE_AP
GPIO_EXP1_INT
GPIO14/AP_WAKE_MODEM
GPIO15/AP2MDM_READY
GPIO16/MODEM_WAKE_AP
GPIO17/MDM2AP_READY
GPIO18/MODEM_COLDBOOT

From the website i have got a gpio mapping exel sheet Jetson_TX1_Generic_Customer_Pinmux_Customer_Release
it is mentioned for creating device tree binary
changing the gpio pin will this affect device tree binary?

You’ll probably need to read more about GPIO in the Technical Reference Manual. See this URL, put “technical reference” in the search box (some document downloads require free registration):
https://developer.nvidia.com/embedded/downloads

The whole purpose of GPIO being named “general purpose” is because there are more capabilities in the SoC than there are pins…but assuming you don’t need all capabilities at the same time, some pins can have their function programmed. Sometimes that pin has as its selection a specific and specialized function, and at other times the function is completely defined by someone programming it. The device tree binary is used when programming of pin function needs to be selected before the device loads the kernel during boot; e.g., if the GPIO pin is required for some form of custom peripheral which is mandatory during boot, then the boot loader uses the device tree to load this configuration just prior to the kernel itself. One example might be an SD card…if it is a boot device, then it must be configured prior to loading the kernel or else the kernel couldn’t read this…but if the SD card were not used for boot, you could delay configuration and may not care about the device tree. Device tree is for early configuration.

PINMUX, device trees, drivers, and firmware work together so they all speak the same language and have the same expectations of function interface. How early that expectation is required to be met depends on what you are doing.