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