197b76756SYixun Lan# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 297b76756SYixun Lan%YAML 1.2 397b76756SYixun Lan--- 497b76756SYixun Lan$id: http://devicetree.org/schemas/pinctrl/spacemit,k1-pinctrl.yaml# 597b76756SYixun Lan$schema: http://devicetree.org/meta-schemas/core.yaml# 697b76756SYixun Lan 797b76756SYixun Lantitle: SpacemiT K1 SoC Pin Controller 897b76756SYixun Lan 997b76756SYixun Lanmaintainers: 1097b76756SYixun Lan - Yixun Lan <dlan@gentoo.org> 1197b76756SYixun Lan 1297b76756SYixun Lanproperties: 1397b76756SYixun Lan compatible: 1497b76756SYixun Lan const: spacemit,k1-pinctrl 1597b76756SYixun Lan 1697b76756SYixun Lan reg: 1797b76756SYixun Lan items: 1897b76756SYixun Lan - description: pinctrl io memory base 1997b76756SYixun Lan 20*c6650433SYixun Lan clocks: 21*c6650433SYixun Lan items: 22*c6650433SYixun Lan - description: Functional Clock 23*c6650433SYixun Lan - description: Bus Clock 24*c6650433SYixun Lan 25*c6650433SYixun Lan clock-names: 26*c6650433SYixun Lan items: 27*c6650433SYixun Lan - const: func 28*c6650433SYixun Lan - const: bus 29*c6650433SYixun Lan 30*c6650433SYixun Lan resets: 31*c6650433SYixun Lan maxItems: 1 32*c6650433SYixun Lan 3397b76756SYixun LanpatternProperties: 3497b76756SYixun Lan '-cfg$': 3597b76756SYixun Lan type: object 3697b76756SYixun Lan additionalProperties: false 3797b76756SYixun Lan 3897b76756SYixun Lan description: 3997b76756SYixun Lan A pinctrl node should contain at least one subnode representing the 4097b76756SYixun Lan pinctrl groups available on the machine. 4197b76756SYixun Lan 4297b76756SYixun Lan patternProperties: 4397b76756SYixun Lan '-pins$': 4497b76756SYixun Lan type: object 4597b76756SYixun Lan additionalProperties: false 4697b76756SYixun Lan 4797b76756SYixun Lan description: 4897b76756SYixun Lan Each subnode will list the pins it needs, and how they should 4997b76756SYixun Lan be configured, with regard to muxer configuration, bias pull, 5097b76756SYixun Lan drive strength, input schmitt trigger, slew rate, power source. 5197b76756SYixun Lan 5297b76756SYixun Lan allOf: 5397b76756SYixun Lan - $ref: pincfg-node.yaml# 5497b76756SYixun Lan - $ref: pinmux-node.yaml# 5597b76756SYixun Lan 5697b76756SYixun Lan properties: 5797b76756SYixun Lan pinmux: 5897b76756SYixun Lan description: 5997b76756SYixun Lan The list of GPIOs and their mux settings that properties in the 6097b76756SYixun Lan node apply to. This should be set using the K1_PADCONF macro to 6197b76756SYixun Lan construct the value. 6297b76756SYixun Lan 6397b76756SYixun Lan bias-disable: true 6497b76756SYixun Lan 6597b76756SYixun Lan bias-pull-down: true 6697b76756SYixun Lan 6797b76756SYixun Lan bias-pull-up: 6897b76756SYixun Lan description: | 6997b76756SYixun Lan typical value for selecting bias pull up or strong pull up. 7097b76756SYixun Lan 0: normal bias pull up 7197b76756SYixun Lan 1: strong bias pull up 7297b76756SYixun Lan enum: [ 0, 1 ] 7397b76756SYixun Lan 7497b76756SYixun Lan drive-strength: 7597b76756SYixun Lan description: | 7697b76756SYixun Lan typical current when output high level. 7797b76756SYixun Lan 1.8V output: 11, 21, 32, 42 (mA) 7897b76756SYixun Lan 3.3V output: 7, 10, 13, 16, 19, 23, 26, 29 (mA) 7997b76756SYixun Lan 8097b76756SYixun Lan input-schmitt: 8197b76756SYixun Lan description: | 8297b76756SYixun Lan typical threshold for schmitt trigger. 8397b76756SYixun Lan 0: buffer mode 8497b76756SYixun Lan 1: trigger mode 8597b76756SYixun Lan 2, 3: trigger mode 8697b76756SYixun Lan $ref: /schemas/types.yaml#/definitions/uint32 8797b76756SYixun Lan enum: [ 0, 1, 2, 3 ] 8897b76756SYixun Lan 8997b76756SYixun Lan power-source: 9097b76756SYixun Lan description: external power supplies at 1.8v or 3.3v. 9197b76756SYixun Lan enum: [ 1800, 3300 ] 9297b76756SYixun Lan 9397b76756SYixun Lan slew-rate: 9497b76756SYixun Lan description: | 9597b76756SYixun Lan slew rate for output buffer. 9697b76756SYixun Lan 0: disable it 9797b76756SYixun Lan 1: enable it (via bundled value from drive strength) 9897b76756SYixun Lan 2: slow speed 0 9997b76756SYixun Lan 3: slow speed 1 10097b76756SYixun Lan 4: medium speed 10197b76756SYixun Lan 5: fast speed 10297b76756SYixun Lan enum: [ 0, 1, 2, 3, 4, 5 ] 10397b76756SYixun Lan 10497b76756SYixun Lan required: 10597b76756SYixun Lan - pinmux 10697b76756SYixun Lan 10797b76756SYixun Lanrequired: 10897b76756SYixun Lan - compatible 10997b76756SYixun Lan - reg 110*c6650433SYixun Lan - clocks 111*c6650433SYixun Lan - clock-names 11297b76756SYixun Lan 11397b76756SYixun LanadditionalProperties: false 11497b76756SYixun Lan 11597b76756SYixun Lanexamples: 11697b76756SYixun Lan - | 11797b76756SYixun Lan #define K1_PADCONF(pin, func) (((pin) << 16) | (func)) 11897b76756SYixun Lan 11997b76756SYixun Lan soc { 12097b76756SYixun Lan #address-cells = <2>; 12197b76756SYixun Lan #size-cells = <2>; 12297b76756SYixun Lan 12397b76756SYixun Lan pinctrl@d401e000 { 12497b76756SYixun Lan compatible = "spacemit,k1-pinctrl"; 12597b76756SYixun Lan reg = <0x0 0xd401e000 0x0 0x400>; 126*c6650433SYixun Lan clocks = <&syscon_apbc 42>, 127*c6650433SYixun Lan <&syscon_apbc 94>; 128*c6650433SYixun Lan clock-names = "func", "bus"; 12997b76756SYixun Lan 13097b76756SYixun Lan uart0_2_cfg: uart0-2-cfg { 13197b76756SYixun Lan uart0-2-pins { 13297b76756SYixun Lan pinmux = <K1_PADCONF(68, 2)>, 13397b76756SYixun Lan <K1_PADCONF(69, 2)>; 13497b76756SYixun Lan 13597b76756SYixun Lan bias-pull-up = <0>; 13697b76756SYixun Lan drive-strength = <32>; 13797b76756SYixun Lan }; 13897b76756SYixun Lan }; 13997b76756SYixun Lan }; 14097b76756SYixun Lan }; 14197b76756SYixun Lan 14297b76756SYixun Lan... 143