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