xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/axis,artpec6-pinctrl.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotAxis ARTPEC-6 Pin Controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible: "axis,artpec6-pinctrl".
5*c66ec88fSEmmanuel Vadot- reg: Should contain the register physical address and length for the pin
6*c66ec88fSEmmanuel Vadot       controller.
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel VadotA pinctrl node should contain at least one subnode representing the pinctrl
9*c66ec88fSEmmanuel Vadotgroups available on the machine. Each subnode will list the mux function
10*c66ec88fSEmmanuel Vadotrequired and what pin group it will use. Each subnode will also configure the
11*c66ec88fSEmmanuel Vadotdrive strength and bias pullup of the pin group. If either of these options is
12*c66ec88fSEmmanuel Vadotnot set, its actual value will be unspecified.
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotRequired subnode-properties:
16*c66ec88fSEmmanuel Vadot- function: Function to mux.
17*c66ec88fSEmmanuel Vadot- groups: Name of the pin group to use for the function above.
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel Vadot	Available functions and groups (function: group0, group1...):
20*c66ec88fSEmmanuel Vadot		gpio: cpuclkoutgrp0, udlclkoutgrp0, i2c1grp0, i2c2grp0,
21*c66ec88fSEmmanuel Vadot		      i2c3grp0, i2s0grp0, i2s1grp0, i2srefclkgrp0, spi0grp0,
22*c66ec88fSEmmanuel Vadot		      spi1grp0, pciedebuggrp0, uart0grp0, uart0grp1, uart0grp2,
23*c66ec88fSEmmanuel Vadot		      uart1grp0, uart1grp1, uart2grp0, uart2grp1, uart2grp2,
24*c66ec88fSEmmanuel Vadot		      uart3grp0, uart4grp0, uart4grp1, uart5grp0, uart5grp1,
25*c66ec88fSEmmanuel Vadot		      uart5nocts
26*c66ec88fSEmmanuel Vadot		cpuclkout: cpuclkoutgrp0
27*c66ec88fSEmmanuel Vadot		udlclkout: udlclkoutgrp0
28*c66ec88fSEmmanuel Vadot		i2c1: i2c1grp0
29*c66ec88fSEmmanuel Vadot		i2c2: i2c2grp0
30*c66ec88fSEmmanuel Vadot		i2c3: i2c3grp0
31*c66ec88fSEmmanuel Vadot		i2s0: i2s0grp0
32*c66ec88fSEmmanuel Vadot		i2s1: i2s1grp0
33*c66ec88fSEmmanuel Vadot		i2srefclk: i2srefclkgrp0
34*c66ec88fSEmmanuel Vadot		spi0: spi0grp0
35*c66ec88fSEmmanuel Vadot		spi1: spi1grp0
36*c66ec88fSEmmanuel Vadot		pciedebug: pciedebuggrp0
37*c66ec88fSEmmanuel Vadot		uart0: uart0grp0, uart0grp1, uart0grp2
38*c66ec88fSEmmanuel Vadot		uart1: uart1grp0, uart1grp1
39*c66ec88fSEmmanuel Vadot		uart2: uart2grp0, uart2grp1, uart2grp2
40*c66ec88fSEmmanuel Vadot		uart3: uart3grp0
41*c66ec88fSEmmanuel Vadot		uart4: uart4grp0, uart4grp1
42*c66ec88fSEmmanuel Vadot		uart5: uart5grp0, uart5grp1, uart5nocts
43*c66ec88fSEmmanuel Vadot		nand: nandgrp0
44*c66ec88fSEmmanuel Vadot		sdio0: sdio0grp0
45*c66ec88fSEmmanuel Vadot		sdio1: sdio1grp0
46*c66ec88fSEmmanuel Vadot		ethernet: ethernetgrp0
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel VadotOptional subnode-properties (see pinctrl-bindings.txt):
50*c66ec88fSEmmanuel Vadot- drive-strength: 4, 6, 8, 9 mA.  For SD and NAND pins, this is for 3.3V VCCQ3.
51*c66ec88fSEmmanuel Vadot- bias-pull-up
52*c66ec88fSEmmanuel Vadot- bias-disable
53*c66ec88fSEmmanuel Vadot
54*c66ec88fSEmmanuel VadotExamples:
55*c66ec88fSEmmanuel Vadotpinctrl@f801d000 {
56*c66ec88fSEmmanuel Vadot	compatible = "axis,artpec6-pinctrl";
57*c66ec88fSEmmanuel Vadot	reg = <0xf801d000 0x400>;
58*c66ec88fSEmmanuel Vadot
59*c66ec88fSEmmanuel Vadot	pinctrl_uart0: uart0grp {
60*c66ec88fSEmmanuel Vadot		function = "uart0";
61*c66ec88fSEmmanuel Vadot		groups = "uart0grp0";
62*c66ec88fSEmmanuel Vadot		drive-strength = <4>;
63*c66ec88fSEmmanuel Vadot		bias-pull-up;
64*c66ec88fSEmmanuel Vadot	};
65*c66ec88fSEmmanuel Vadot	pinctrl_uart3: uart3grp {
66*c66ec88fSEmmanuel Vadot		function = "uart3";
67*c66ec88fSEmmanuel Vadot		groups = "uart3grp0";
68*c66ec88fSEmmanuel Vadot	};
69*c66ec88fSEmmanuel Vadot};
70*c66ec88fSEmmanuel Vadotuart0: uart@f8036000 {
71*c66ec88fSEmmanuel Vadot	compatible = "arm,pl011", "arm,primecell";
72*c66ec88fSEmmanuel Vadot	reg = <0xf8036000 0x1000>;
73*c66ec88fSEmmanuel Vadot	interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>;
74*c66ec88fSEmmanuel Vadot	clocks = <&pll2div24>, <&apb_pclk>;
75*c66ec88fSEmmanuel Vadot	clock-names = "uart_clk", "apb_pclk";
76*c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
77*c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart0>;
78*c66ec88fSEmmanuel Vadot};
79*c66ec88fSEmmanuel Vadotuart3: uart@f8039000 {
80*c66ec88fSEmmanuel Vadot	compatible = "arm,pl011", "arm,primecell";
81*c66ec88fSEmmanuel Vadot	reg = <0xf8039000 0x1000>;
82*c66ec88fSEmmanuel Vadot	interrupts = <0 128 IRQ_TYPE_LEVEL_HIGH>;
83*c66ec88fSEmmanuel Vadot	clocks = <&pll2div24>, <&apb_pclk>;
84*c66ec88fSEmmanuel Vadot	clock-names = "uart_clk", "apb_pclk";
85*c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
86*c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart3>;
87*c66ec88fSEmmanuel Vadot};
88