1*5956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*5956d97fSEmmanuel Vadot%YAML 1.2 3*5956d97fSEmmanuel Vadot--- 4*5956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/brcm,ns-pinmux.yaml# 5*5956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5956d97fSEmmanuel Vadot 7*5956d97fSEmmanuel Vadottitle: Broadcom Northstar pins mux controller 8*5956d97fSEmmanuel Vadot 9*5956d97fSEmmanuel Vadotmaintainers: 10*5956d97fSEmmanuel Vadot - Rafał Miłecki <rafal@milecki.pl> 11*5956d97fSEmmanuel Vadot 12*5956d97fSEmmanuel Vadotdescription: 13*5956d97fSEmmanuel Vadot Some of Northstar SoCs's pins can be used for various purposes thanks to the 14*5956d97fSEmmanuel Vadot mux controller. This binding allows describing mux controller and listing 15*5956d97fSEmmanuel Vadot available functions. They can be referenced later by other bindings to let 16*5956d97fSEmmanuel Vadot system configure controller correctly. 17*5956d97fSEmmanuel Vadot 18*5956d97fSEmmanuel Vadot A list of pins varies across chipsets so few bindings are available. 19*5956d97fSEmmanuel Vadot 20*5956d97fSEmmanuel Vadot Node of the pinmux must be nested in the CRU (Central Resource Unit) "syscon" 21*5956d97fSEmmanuel Vadot node. 22*5956d97fSEmmanuel Vadot 23*5956d97fSEmmanuel Vadotproperties: 24*5956d97fSEmmanuel Vadot compatible: 25*5956d97fSEmmanuel Vadot enum: 26*5956d97fSEmmanuel Vadot - brcm,bcm4708-pinmux 27*5956d97fSEmmanuel Vadot - brcm,bcm4709-pinmux 28*5956d97fSEmmanuel Vadot - brcm,bcm53012-pinmux 29*5956d97fSEmmanuel Vadot 30*5956d97fSEmmanuel Vadot offset: 31*5956d97fSEmmanuel Vadot description: offset of pin registers in the CRU block 32*5956d97fSEmmanuel Vadot maxItems: 1 33*5956d97fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 34*5956d97fSEmmanuel Vadot 35*5956d97fSEmmanuel VadotpatternProperties: 36*5956d97fSEmmanuel Vadot '-pins$': 37*5956d97fSEmmanuel Vadot type: object 38*5956d97fSEmmanuel Vadot description: pin node 39*5956d97fSEmmanuel Vadot $ref: pinmux-node.yaml# 40*5956d97fSEmmanuel Vadot 41*5956d97fSEmmanuel Vadot properties: 42*5956d97fSEmmanuel Vadot function: 43*5956d97fSEmmanuel Vadot enum: [ spi, i2c, pwm, uart1, mdio, uart2, sdio ] 44*5956d97fSEmmanuel Vadot groups: 45*5956d97fSEmmanuel Vadot minItems: 1 46*5956d97fSEmmanuel Vadot maxItems: 4 47*5956d97fSEmmanuel Vadot items: 48*5956d97fSEmmanuel Vadot enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp, 49*5956d97fSEmmanuel Vadot uart1_grp, mdio_grp, uart2_grp, sdio_pwr_grp, sdio_1p8v_grp ] 50*5956d97fSEmmanuel Vadot 51*5956d97fSEmmanuel Vadot required: 52*5956d97fSEmmanuel Vadot - function 53*5956d97fSEmmanuel Vadot - groups 54*5956d97fSEmmanuel Vadot 55*5956d97fSEmmanuel Vadot additionalProperties: false 56*5956d97fSEmmanuel Vadot 57*5956d97fSEmmanuel VadotallOf: 58*5956d97fSEmmanuel Vadot - if: 59*5956d97fSEmmanuel Vadot properties: 60*5956d97fSEmmanuel Vadot compatible: 61*5956d97fSEmmanuel Vadot contains: 62*5956d97fSEmmanuel Vadot const: brcm,bcm4708-pinmux 63*5956d97fSEmmanuel Vadot then: 64*5956d97fSEmmanuel Vadot patternProperties: 65*5956d97fSEmmanuel Vadot '-pins$': 66*5956d97fSEmmanuel Vadot properties: 67*5956d97fSEmmanuel Vadot function: 68*5956d97fSEmmanuel Vadot enum: [ spi, i2c, pwm, uart1 ] 69*5956d97fSEmmanuel Vadot groups: 70*5956d97fSEmmanuel Vadot items: 71*5956d97fSEmmanuel Vadot enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp, 72*5956d97fSEmmanuel Vadot uart1_grp ] 73*5956d97fSEmmanuel Vadot 74*5956d97fSEmmanuel Vadotrequired: 75*5956d97fSEmmanuel Vadot - offset 76*5956d97fSEmmanuel Vadot 77*5956d97fSEmmanuel VadotadditionalProperties: false 78*5956d97fSEmmanuel Vadot 79*5956d97fSEmmanuel Vadotexamples: 80*5956d97fSEmmanuel Vadot - | 81*5956d97fSEmmanuel Vadot cru@1800c100 { 82*5956d97fSEmmanuel Vadot compatible = "syscon", "simple-mfd"; 83*5956d97fSEmmanuel Vadot reg = <0x1800c100 0x1a4>; 84*5956d97fSEmmanuel Vadot 85*5956d97fSEmmanuel Vadot pinctrl { 86*5956d97fSEmmanuel Vadot compatible = "brcm,bcm4708-pinmux"; 87*5956d97fSEmmanuel Vadot offset = <0xc0>; 88*5956d97fSEmmanuel Vadot 89*5956d97fSEmmanuel Vadot spi-pins { 90*5956d97fSEmmanuel Vadot function = "spi"; 91*5956d97fSEmmanuel Vadot groups = "spi_grp"; 92*5956d97fSEmmanuel Vadot }; 93*5956d97fSEmmanuel Vadot }; 94*5956d97fSEmmanuel Vadot }; 95