94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
* Atmel PIO4 Controller
 | 
						|
 | 
						|
The Atmel PIO4 controller is used to select the function of a pin and to
 | 
						|
configure it.
 | 
						|
 | 
						|
Required properties:
 | 
						|
- compatible: "atmel,sama5d2-pinctrl".
 | 
						|
- reg: base address and length of the PIO controller.
 | 
						|
- interrupts: interrupt outputs from the controller, one for each bank.
 | 
						|
- interrupt-controller: mark the device node as an interrupt controller.
 | 
						|
- #interrupt-cells: should be two.
 | 
						|
- gpio-controller: mark the device node as a gpio controller.
 | 
						|
- #gpio-cells: should be two.
 | 
						|
 | 
						|
Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
 | 
						|
a general description of GPIO and interrupt bindings.
 | 
						|
 | 
						|
Please refer to pinctrl-bindings.txt in this directory for details of the
 | 
						|
common pinctrl bindings used by client devices.
 | 
						|
 | 
						|
Subnode format
 | 
						|
Each node (or subnode) will list the pins it needs and how to configured these
 | 
						|
pins.
 | 
						|
 | 
						|
	node {
 | 
						|
		pinmux = <PIN_NUMBER_PINMUX>;
 | 
						|
		GENERIC_PINCONFIG;
 | 
						|
	};
 | 
						|
 | 
						|
Required properties:
 | 
						|
- pinmux: integer array. Each integer represents a pin number plus mux and
 | 
						|
ioset settings. Use the macros from boot/dts/<soc>-pinfunc.h file to get the
 | 
						|
right representation of the pin.
 | 
						|
 | 
						|
Optional properties:
 | 
						|
- GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable,
 | 
						|
bias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable,
 | 
						|
input-debounce, output-low, output-high.
 | 
						|
- atmel,drive-strength: 0 or 1 for low drive, 2 for medium drive and 3 for
 | 
						|
high drive. The default value is low drive.
 | 
						|
 | 
						|
Example:
 | 
						|
 | 
						|
#include <sama5d2-pinfunc.h>
 | 
						|
 | 
						|
...
 | 
						|
{
 | 
						|
	pioA: pinctrl@fc038000 {
 | 
						|
		compatible = "atmel,sama5d2-pinctrl";
 | 
						|
		reg = <0xfc038000 0x600>;
 | 
						|
		interrupts = <18 IRQ_TYPE_LEVEL_HIGH 7>,
 | 
						|
			     <68 IRQ_TYPE_LEVEL_HIGH 7>,
 | 
						|
			     <69 IRQ_TYPE_LEVEL_HIGH 7>,
 | 
						|
			     <70 IRQ_TYPE_LEVEL_HIGH 7>;
 | 
						|
		interrupt-controller;
 | 
						|
		#interrupt-cells = <2>;
 | 
						|
		gpio-controller;
 | 
						|
		#gpio-cells = <2>;
 | 
						|
		clocks = <&pioA_clk>;
 | 
						|
 | 
						|
		pinctrl_i2c0_default: i2c0_default {
 | 
						|
			pinmux = <PIN_PD21__TWD0>,
 | 
						|
				 <PIN_PD22__TWCK0>;
 | 
						|
			bias-disable;
 | 
						|
		};
 | 
						|
 | 
						|
		pinctrl_led_gpio_default: led_gpio_default {
 | 
						|
			pinmux = <PIN_PB0>,
 | 
						|
				 <PIN_PB5>;
 | 
						|
			bias-pull-up;
 | 
						|
			atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>;
 | 
						|
		};
 | 
						|
 | 
						|
		pinctrl_sdmmc1_default: sdmmc1_default {
 | 
						|
			cmd_data {
 | 
						|
				pinmux = <PIN_PA28__SDMMC1_CMD>,
 | 
						|
					 <PIN_PA18__SDMMC1_DAT0>,
 | 
						|
					 <PIN_PA19__SDMMC1_DAT1>,
 | 
						|
					 <PIN_PA20__SDMMC1_DAT2>,
 | 
						|
					 <PIN_PA21__SDMMC1_DAT3>;
 | 
						|
				bias-pull-up;
 | 
						|
			};
 | 
						|
 | 
						|
			ck_cd {
 | 
						|
				pinmux = <PIN_PA22__SDMMC1_CK>,
 | 
						|
					 <PIN_PA30__SDMMC1_CD>;
 | 
						|
				bias-disable;
 | 
						|
			};
 | 
						|
		};
 | 
						|
		...
 | 
						|
	};
 | 
						|
};
 | 
						|
...
 |