1*bb37baeaSYendapally Reddy Dhananjaya ReddyBroadcom Northstar plus (NSP) GPIO/PINCONF Controller 2*bb37baeaSYendapally Reddy Dhananjaya Reddy 3*bb37baeaSYendapally Reddy Dhananjaya ReddyRequired properties: 4*bb37baeaSYendapally Reddy Dhananjaya Reddy- compatible: 5*bb37baeaSYendapally Reddy Dhananjaya Reddy Must be "brcm,nsp-gpio-a" 6*bb37baeaSYendapally Reddy Dhananjaya Reddy 7*bb37baeaSYendapally Reddy Dhananjaya Reddy- reg: 8*bb37baeaSYendapally Reddy Dhananjaya Reddy Should contain the register physical address and length for each of 9*bb37baeaSYendapally Reddy Dhananjaya Reddy GPIO base, IO control registers 10*bb37baeaSYendapally Reddy Dhananjaya Reddy 11*bb37baeaSYendapally Reddy Dhananjaya Reddy- #gpio-cells: 12*bb37baeaSYendapally Reddy Dhananjaya Reddy Must be two. The first cell is the GPIO pin number (within the 13*bb37baeaSYendapally Reddy Dhananjaya Reddy controller's pin space) and the second cell is used for the following: 14*bb37baeaSYendapally Reddy Dhananjaya Reddy bit[0]: polarity (0 for active high and 1 for active low) 15*bb37baeaSYendapally Reddy Dhananjaya Reddy 16*bb37baeaSYendapally Reddy Dhananjaya Reddy- gpio-controller: 17*bb37baeaSYendapally Reddy Dhananjaya Reddy Specifies that the node is a GPIO controller 18*bb37baeaSYendapally Reddy Dhananjaya Reddy 19*bb37baeaSYendapally Reddy Dhananjaya Reddy- ngpios: 20*bb37baeaSYendapally Reddy Dhananjaya Reddy Number of gpios supported (58x25 supports 32 and 58x23 supports 24) 21*bb37baeaSYendapally Reddy Dhananjaya Reddy 22*bb37baeaSYendapally Reddy Dhananjaya ReddyOptional properties: 23*bb37baeaSYendapally Reddy Dhananjaya Reddy- interrupts: 24*bb37baeaSYendapally Reddy Dhananjaya Reddy Interrupt ID 25*bb37baeaSYendapally Reddy Dhananjaya Reddy 26*bb37baeaSYendapally Reddy Dhananjaya Reddy- interrupt-controller: 27*bb37baeaSYendapally Reddy Dhananjaya Reddy Specifies that the node is an interrupt controller 28*bb37baeaSYendapally Reddy Dhananjaya Reddy 29*bb37baeaSYendapally Reddy Dhananjaya Reddy- gpio-ranges: 30*bb37baeaSYendapally Reddy Dhananjaya Reddy Specifies the mapping between gpio controller and pin-controllers pins. 31*bb37baeaSYendapally Reddy Dhananjaya Reddy This requires 4 fields in cells defined as - 32*bb37baeaSYendapally Reddy Dhananjaya Reddy 1. Phandle of pin-controller. 33*bb37baeaSYendapally Reddy Dhananjaya Reddy 2. GPIO base pin offset. 34*bb37baeaSYendapally Reddy Dhananjaya Reddy 3 Pin-control base pin offset. 35*bb37baeaSYendapally Reddy Dhananjaya Reddy 4. number of gpio pins which are linearly mapped from pin base. 36*bb37baeaSYendapally Reddy Dhananjaya Reddy 37*bb37baeaSYendapally Reddy Dhananjaya ReddySupported generic PINCONF properties in child nodes: 38*bb37baeaSYendapally Reddy Dhananjaya Reddy- pins: 39*bb37baeaSYendapally Reddy Dhananjaya Reddy The list of pins (within the controller's own pin space) that properties 40*bb37baeaSYendapally Reddy Dhananjaya Reddy in the node apply to. Pin names are "gpio-<pin>" 41*bb37baeaSYendapally Reddy Dhananjaya Reddy 42*bb37baeaSYendapally Reddy Dhananjaya Reddy- bias-disable: 43*bb37baeaSYendapally Reddy Dhananjaya Reddy Disable pin bias 44*bb37baeaSYendapally Reddy Dhananjaya Reddy 45*bb37baeaSYendapally Reddy Dhananjaya Reddy- bias-pull-up: 46*bb37baeaSYendapally Reddy Dhananjaya Reddy Enable internal pull up resistor 47*bb37baeaSYendapally Reddy Dhananjaya Reddy 48*bb37baeaSYendapally Reddy Dhananjaya Reddy- bias-pull-down: 49*bb37baeaSYendapally Reddy Dhananjaya Reddy Enable internal pull down resistor 50*bb37baeaSYendapally Reddy Dhananjaya Reddy 51*bb37baeaSYendapally Reddy Dhananjaya Reddy- drive-strength: 52*bb37baeaSYendapally Reddy Dhananjaya Reddy Valid drive strength values include 2, 4, 6, 8, 10, 12, 14, 16 (mA) 53*bb37baeaSYendapally Reddy Dhananjaya Reddy 54*bb37baeaSYendapally Reddy Dhananjaya ReddyExample: 55*bb37baeaSYendapally Reddy Dhananjaya Reddy 56*bb37baeaSYendapally Reddy Dhananjaya Reddy gpioa: gpio@18000020 { 57*bb37baeaSYendapally Reddy Dhananjaya Reddy compatible = "brcm,nsp-gpio-a"; 58*bb37baeaSYendapally Reddy Dhananjaya Reddy reg = <0x18000020 0x100>, 59*bb37baeaSYendapally Reddy Dhananjaya Reddy <0x1803f1c4 0x1c>; 60*bb37baeaSYendapally Reddy Dhananjaya Reddy #gpio-cells = <2>; 61*bb37baeaSYendapally Reddy Dhananjaya Reddy gpio-controller; 62*bb37baeaSYendapally Reddy Dhananjaya Reddy ngpios = <32>; 63*bb37baeaSYendapally Reddy Dhananjaya Reddy gpio-ranges = <&pinctrl 0 0 31>; 64*bb37baeaSYendapally Reddy Dhananjaya Reddy interrupt-controller; 65*bb37baeaSYendapally Reddy Dhananjaya Reddy interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 66*bb37baeaSYendapally Reddy Dhananjaya Reddy 67*bb37baeaSYendapally Reddy Dhananjaya Reddy /* Hog a few default settings */ 68*bb37baeaSYendapally Reddy Dhananjaya Reddy pinctrl-names = "default"; 69*bb37baeaSYendapally Reddy Dhananjaya Reddy pinctrl-0 = <&led>; 70*bb37baeaSYendapally Reddy Dhananjaya Reddy led: led { 71*bb37baeaSYendapally Reddy Dhananjaya Reddy pins = "gpio-1"; 72*bb37baeaSYendapally Reddy Dhananjaya Reddy bias-pull-up; 73*bb37baeaSYendapally Reddy Dhananjaya Reddy }; 74*bb37baeaSYendapally Reddy Dhananjaya Reddy 75*bb37baeaSYendapally Reddy Dhananjaya Reddy pwr: pwr { 76*bb37baeaSYendapally Reddy Dhananjaya Reddy gpio-hog; 77*bb37baeaSYendapally Reddy Dhananjaya Reddy gpios = <3 1>; 78*bb37baeaSYendapally Reddy Dhananjaya Reddy output-high; 79*bb37baeaSYendapally Reddy Dhananjaya Reddy }; 80*bb37baeaSYendapally Reddy Dhananjaya Reddy }; 81