xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/brcm,bcm4708-pinmux.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotBroadcom Northstar pins mux controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotSome of Northstar SoCs's pins can be used for various purposes thanks to the mux
4*c66ec88fSEmmanuel Vadotcontroller. This binding allows describing mux controller and listing available
5*c66ec88fSEmmanuel Vadotfunctions. They can be referenced later by other bindings to let system
6*c66ec88fSEmmanuel Vadotconfigure controller correctly.
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel VadotA list of pins varies across chipsets so few bindings are available.
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel VadotNode of the pinmux must be nested in the CRU (Central Resource Unit) "syscon"
11*c66ec88fSEmmanuel Vadotnoce.
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel VadotRequired properties:
14*c66ec88fSEmmanuel Vadot- compatible: must be one of:
15*c66ec88fSEmmanuel Vadot	"brcm,bcm4708-pinmux"
16*c66ec88fSEmmanuel Vadot	"brcm,bcm4709-pinmux"
17*c66ec88fSEmmanuel Vadot	"brcm,bcm53012-pinmux"
18*c66ec88fSEmmanuel Vadot- offset: offset of pin registers in the CRU block
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel VadotFunctions and their groups available for all chipsets:
21*c66ec88fSEmmanuel Vadot- "spi": "spi_grp"
22*c66ec88fSEmmanuel Vadot- "i2c": "i2c_grp"
23*c66ec88fSEmmanuel Vadot- "pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp"
24*c66ec88fSEmmanuel Vadot- "uart1": "uart1_grp"
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotAdditionally available on BCM4709 and BCM53012:
27*c66ec88fSEmmanuel Vadot- "mdio": "mdio_grp"
28*c66ec88fSEmmanuel Vadot- "uart2": "uart2_grp"
29*c66ec88fSEmmanuel Vadot- "sdio": "sdio_pwr_grp", "sdio_1p8v_grp"
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel VadotFor documentation of subnodes see:
32*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel VadotExample:
35*c66ec88fSEmmanuel Vadot	dmu@1800c000 {
36*c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
37*c66ec88fSEmmanuel Vadot		ranges = <0 0x1800c000 0x1000>;
38*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
39*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel Vadot		cru@100 {
42*c66ec88fSEmmanuel Vadot			compatible = "syscon", "simple-mfd";
43*c66ec88fSEmmanuel Vadot			reg = <0x100 0x1a4>;
44*c66ec88fSEmmanuel Vadot
45*c66ec88fSEmmanuel Vadot			pinctrl {
46*c66ec88fSEmmanuel Vadot				compatible = "brcm,bcm4708-pinmux";
47*c66ec88fSEmmanuel Vadot				offset = <0xc0>;
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel Vadot				spi-pins {
50*c66ec88fSEmmanuel Vadot					function = "spi";
51*c66ec88fSEmmanuel Vadot					groups = "spi_grp";
52*c66ec88fSEmmanuel Vadot				};
53*c66ec88fSEmmanuel Vadot			};
54*c66ec88fSEmmanuel Vadot		};
55*c66ec88fSEmmanuel Vadot	};
56