mirror of
				https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
				synced 2025-10-29 23:28:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			157 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| * Rockchip Pinmux Controller
 | |
| 
 | |
| The Rockchip Pinmux Controller, enables the IC
 | |
| to share one PAD to several functional blocks. The sharing is done by
 | |
| multiplexing the PAD input/output signals. For each PAD there are several
 | |
| muxing options with option 0 being the use as a GPIO.
 | |
| 
 | |
| Please refer to pinctrl-bindings.txt in this directory for details of the
 | |
| common pinctrl bindings used by client devices, including the meaning of the
 | |
| phrase "pin configuration node".
 | |
| 
 | |
| The Rockchip pin configuration node is a node of a group of pins which can be
 | |
| used for a specific device or function. This node represents both mux and
 | |
| config of the pins in that group. The 'pins' selects the function mode(also
 | |
| named pin mode) this pin can work on and the 'config' configures various pad
 | |
| settings such as pull-up, etc.
 | |
| 
 | |
| The pins are grouped into up to 5 individual pin banks which need to be
 | |
| defined as gpio sub-nodes of the pinmux controller.
 | |
| 
 | |
| Required properties for iomux controller:
 | |
|   - compatible: one of "rockchip,rk2928-pinctrl", "rockchip,rk3066a-pinctrl"
 | |
| 		       "rockchip,rk3066b-pinctrl", "rockchip,rk3188-pinctrl"
 | |
| 		       "rockchip,rk3288-pinctrl"
 | |
|   - rockchip,grf: phandle referencing a syscon providing the
 | |
| 	 "general register files"
 | |
| 
 | |
| Optional properties for iomux controller:
 | |
|   - rockchip,pmu: phandle referencing a syscon providing the pmu registers
 | |
| 	 as some SoCs carry parts of the iomux controller registers there.
 | |
| 	 Required for at least rk3188 and rk3288.
 | |
| 
 | |
| Deprecated properties for iomux controller:
 | |
|   - reg: first element is the general register space of the iomux controller
 | |
| 	 It should be large enough to contain also separate pull registers.
 | |
| 	 second element is the separate pull register space of the rk3188.
 | |
| 	 Use rockchip,grf and rockchip,pmu described above instead.
 | |
| 
 | |
| Required properties for gpio sub nodes:
 | |
|   - compatible: "rockchip,gpio-bank"
 | |
|   - reg: register of the gpio bank (different than the iomux registerset)
 | |
|   - interrupts: base interrupt of the gpio bank in the interrupt controller
 | |
|   - clocks: clock that drives this bank
 | |
|   - gpio-controller: identifies the node as a gpio controller and pin bank.
 | |
|   - #gpio-cells: number of cells in GPIO specifier. Since the generic GPIO
 | |
|     binding is used, the amount of cells must be specified as 2. See generic
 | |
|     GPIO binding documentation for description of particular cells.
 | |
|   - interrupt-controller: identifies the controller node as interrupt-parent.
 | |
|   - #interrupt-cells: the value of this property should be 2 and the interrupt
 | |
|     cells should use the standard two-cell scheme described in
 | |
|     bindings/interrupt-controller/interrupts.txt
 | |
| 
 | |
| Deprecated properties for gpio sub nodes:
 | |
|   - compatible: "rockchip,rk3188-gpio-bank0"
 | |
|   - reg: second element: separate pull register for rk3188 bank0, use
 | |
| 	 rockchip,pmu described above instead
 | |
| 
 | |
| Required properties for pin configuration node:
 | |
|   - rockchip,pins: 3 integers array, represents a group of pins mux and config
 | |
|     setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>.
 | |
|     The MUX 0 means gpio and MUX 1 to N mean the specific device function.
 | |
|     The phandle of a node containing the generic pinconfig options
 | |
|     to use, as described in pinctrl-bindings.txt in this directory.
 | |
| 
 | |
| Examples:
 | |
| 
 | |
| #include <dt-bindings/pinctrl/rockchip.h>
 | |
| 
 | |
| ...
 | |
| 
 | |
| pinctrl@20008000 {
 | |
| 	compatible = "rockchip,rk3066a-pinctrl";
 | |
| 	rockchip,grf = <&grf>;
 | |
| 
 | |
| 	#address-cells = <1>;
 | |
| 	#size-cells = <1>;
 | |
| 	ranges;
 | |
| 
 | |
| 	gpio0: gpio0@20034000 {
 | |
| 		compatible = "rockchip,gpio-bank";
 | |
| 		reg = <0x20034000 0x100>;
 | |
| 		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 | |
| 		clocks = <&clk_gates8 9>;
 | |
| 
 | |
| 		gpio-controller;
 | |
| 		#gpio-cells = <2>;
 | |
| 
 | |
| 		interrupt-controller;
 | |
| 		#interrupt-cells = <2>;
 | |
| 	};
 | |
| 
 | |
| 	...
 | |
| 
 | |
| 	pcfg_pull_default: pcfg_pull_default {
 | |
| 		bias-pull-pin-default
 | |
| 	};
 | |
| 
 | |
| 	uart2 {
 | |
| 		uart2_xfer: uart2-xfer {
 | |
| 			rockchip,pins = <RK_GPIO1 8 1 &pcfg_pull_default>,
 | |
| 					<RK_GPIO1 9 1 &pcfg_pull_default>;
 | |
| 		};
 | |
| 	};
 | |
| };
 | |
| 
 | |
| uart2: serial@20064000 {
 | |
| 	compatible = "snps,dw-apb-uart";
 | |
| 	reg = <0x20064000 0x400>;
 | |
| 	interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
 | |
| 	reg-shift = <2>;
 | |
| 	reg-io-width = <1>;
 | |
| 	clocks = <&mux_uart2>;
 | |
| 	status = "okay";
 | |
| 
 | |
| 	pinctrl-names = "default";
 | |
| 	pinctrl-0 = <&uart2_xfer>;
 | |
| };
 | |
| 
 | |
| Example for rk3188:
 | |
| 
 | |
| 	pinctrl@20008000 {
 | |
| 		compatible = "rockchip,rk3188-pinctrl";
 | |
| 		rockchip,grf = <&grf>;
 | |
| 		rockchip,pmu = <&pmu>;
 | |
| 		#address-cells = <1>;
 | |
| 		#size-cells = <1>;
 | |
| 		ranges;
 | |
| 
 | |
| 		gpio0: gpio0@0x2000a000 {
 | |
| 			compatible = "rockchip,rk3188-gpio-bank0";
 | |
| 			reg = <0x2000a000 0x100>;
 | |
| 			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 | |
| 			clocks = <&clk_gates8 9>;
 | |
| 
 | |
| 			gpio-controller;
 | |
| 			#gpio-cells = <2>;
 | |
| 
 | |
| 			interrupt-controller;
 | |
| 			#interrupt-cells = <2>;
 | |
| 		};
 | |
| 
 | |
| 		gpio1: gpio1@0x2003c000 {
 | |
| 			compatible = "rockchip,gpio-bank";
 | |
| 			reg = <0x2003c000 0x100>;
 | |
| 			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 | |
| 			clocks = <&clk_gates8 10>;
 | |
| 
 | |
| 			gpio-controller;
 | |
| 			#gpio-cells = <2>;
 | |
| 
 | |
| 			interrupt-controller;
 | |
| 			#interrupt-cells = <2>;
 | |
| 		};
 | |
| 
 | |
| 		...
 | |
| 
 | |
| 	};
 | 
