mirror of
				https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
				synced 2025-10-29 23:28:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			461 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			461 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Broadcom BCM281xx Pin Controller
 | |
| 
 | |
| This is a pin controller for the Broadcom BCM281xx SoC family, which includes
 | |
| BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs.
 | |
| 
 | |
| === Pin Controller Node ===
 | |
| 
 | |
| Required Properties:
 | |
| 
 | |
| - compatible:	Must be "brcm,bcm11351-pinctrl"
 | |
| - reg:		Base address of the PAD Controller register block and the size
 | |
| 		of the block.
 | |
| 
 | |
| For example, the following is the bare minimum node:
 | |
| 
 | |
| 	pinctrl@35004800 {
 | |
| 		compatible = "brcm,bcm11351-pinctrl";
 | |
| 		reg = <0x35004800 0x430>;
 | |
| 	};
 | |
| 
 | |
| As a pin controller device, in addition to the required properties, this node
 | |
| should also contain the pin configuration nodes that client devices reference,
 | |
| if any.
 | |
| 
 | |
| === Pin Configuration Node ===
 | |
| 
 | |
| Each pin configuration node is a sub-node of the pin controller node and is a
 | |
| container of an arbitrary number of subnodes, called pin group nodes in this
 | |
| document.
 | |
| 
 | |
| Please refer to the pinctrl-bindings.txt in this directory for details of the
 | |
| common pinctrl bindings used by client devices, including the definition of a
 | |
| "pin configuration node".
 | |
| 
 | |
| === Pin Group Node ===
 | |
| 
 | |
| A pin group node specifies the desired pin mux and/or pin configuration for an
 | |
| arbitrary number of pins.  The name of the pin group node is optional and not
 | |
| used.
 | |
| 
 | |
| A pin group node only affects the properties specified in the node, and has no
 | |
| effect on any properties that are omitted.
 | |
| 
 | |
| The pin group node accepts a subset of the generic pin config properties. For
 | |
| details generic pin config properties, please refer to pinctrl-bindings.txt
 | |
| and <include/linux/pinctrl/pinconfig-generic.h>.
 | |
| 
 | |
| Each pin controlled by this pin controller belong to one of three types:
 | |
| Standard, I2C, and HDMI.  Each type accepts a different set of pin config
 | |
| properties.  A list of pins and their types is provided below.
 | |
| 
 | |
| Required Properties (applicable to all pins):
 | |
| 
 | |
| - pins:		Multiple strings.  Specifies the name(s) of one or more pins to
 | |
| 		be configured by this node.
 | |
| 
 | |
| Optional Properties (for standard pins):
 | |
| 
 | |
| - function:			String. Specifies the pin mux selection. Values
 | |
| 				must be one of: "alt1", "alt2", "alt3", "alt4"
 | |
| - input-schmitt-enable:		No arguments. Enable schmitt-trigger mode.
 | |
| - input-schmitt-disable:	No arguments. Disable schmitt-trigger mode.
 | |
| - bias-pull-up:			No arguments. Pull up on pin.
 | |
| - bias-pull-down:		No arguments. Pull down on pin.
 | |
| - bias-disable:			No arguments. Disable pin bias.
 | |
| - slew-rate:			Integer. Meaning depends on configured pin mux:
 | |
| 				*_SCL or *_SDA:
 | |
| 					0: Standard(100kbps)& Fast(400kbps) mode
 | |
| 					1: Highspeed (3.4Mbps) mode
 | |
| 				IC_DM or IC_DP:
 | |
| 					0: normal slew rate
 | |
| 					1: fast slew rate
 | |
| 				Otherwise:
 | |
| 					0: fast slew rate
 | |
| 					1: normal slew rate
 | |
| - input-enable:			No arguments. Enable input (does not affect
 | |
| 				output.)
 | |
| - input-disable:		No arguments. Disable input (does not affect
 | |
| 				output.)
 | |
| - drive-strength:		Integer. Drive strength in mA.  Valid values are
 | |
| 				2, 4, 6, 8, 10, 12, 14, 16 mA.
 | |
| 
 | |
| Optional Properties (for I2C pins):
 | |
| 
 | |
| - function:			String. Specifies the pin mux selection. Values
 | |
| 				must be one of: "alt1", "alt2", "alt3", "alt4"
 | |
| - bias-pull-up:			Integer. Pull up strength in Ohm. There are 3
 | |
| 				pull-up resisitors (1.2k, 1.8k, 2.7k) available
 | |
| 				in parallel for I2C pins, so the valid values
 | |
| 				are: 568, 720, 831, 1080, 1200, 1800, 2700 Ohm.
 | |
| - bias-disable:			No arguments. Disable pin bias.
 | |
| - slew-rate:			Integer. Meaning depends on configured pin mux:
 | |
| 				*_SCL or *_SDA:
 | |
| 					0: Standard(100kbps)& Fast(400kbps) mode
 | |
| 					1: Highspeed (3.4Mbps) mode
 | |
| 				IC_DM or IC_DP:
 | |
| 					0: normal slew rate
 | |
| 					1: fast slew rate
 | |
| 				Otherwise:
 | |
| 					0: fast slew rate
 | |
| 					1: normal slew rate
 | |
| - input-enable:			No arguments. Enable input (does not affect
 | |
| 				output.)
 | |
| - input-disable:		No arguments. Disable input (does not affect
 | |
| 				output.)
 | |
| 
 | |
| Optional Properties (for HDMI pins):
 | |
| 
 | |
| - function:			String. Specifies the pin mux selection. Values
 | |
| 				must be one of: "alt1", "alt2", "alt3", "alt4"
 | |
| - slew-rate:			Integer. Controls slew rate.
 | |
| 					0: Standard(100kbps)& Fast(400kbps) mode
 | |
| 					1: Highspeed (3.4Mbps) mode
 | |
| - input-enable:			No arguments. Enable input (does not affect
 | |
| 				output.)
 | |
| - input-disable:		No arguments. Disable input (does not affect
 | |
| 				output.)
 | |
| 
 | |
| Example:
 | |
| // pin controller node
 | |
| pinctrl@35004800 {
 | |
| 	compatible = "brcm,bcm11351-pinctrl";
 | |
| 	reg = <0x35004800 0x430>;
 | |
| 
 | |
| 	// pin configuration node
 | |
| 	dev_a_default: dev_a_active {
 | |
| 		//group node defining 1 standard pin
 | |
| 		grp_1 {
 | |
| 			pins		= "std_pin1";
 | |
| 			function	= "alt1";
 | |
| 			input-schmitt-enable;
 | |
| 			bias-disable;
 | |
| 			slew-rate	= <1>;
 | |
| 			drive-strength	= <4>;
 | |
| 		};
 | |
| 
 | |
| 		// group node defining 2 I2C pins
 | |
| 		grp_2 {
 | |
| 			pins		= "i2c_pin1", "i2c_pin2";
 | |
| 			function	= "alt2";
 | |
| 			bias-pull-up	= <720>;
 | |
| 			input-enable;
 | |
| 		};
 | |
| 
 | |
| 		// group node defining 2 HDMI pins
 | |
| 		grp_3 {
 | |
| 			pins		= "hdmi_pin1", "hdmi_pin2";
 | |
| 			function	= "alt3";
 | |
| 			slew-rate	= <1>;
 | |
| 		};
 | |
| 
 | |
| 		// other pin group nodes
 | |
| 		...
 | |
| 	};
 | |
| 
 | |
| 	// other pin configuration nodes
 | |
| 	...
 | |
| };
 | |
| 
 | |
| In the example above, "dev_a_active" is a pin configuration node with a number
 | |
| of sub-nodes.  In the pin group node "grp_1", one pin, "std_pin1", is defined in
 | |
| the "pins" property.  Thus, the remaining properties in the "grp_1" node applies
 | |
| only to this pin, including the following settings:
 | |
|  - setting pinmux to "alt1"
 | |
|  - enabling schmitt-trigger (hystersis) mode
 | |
|  - disabling pin bias
 | |
|  - setting the slew-rate to 1
 | |
|  - setting the drive strength to 4 mA
 | |
| Note that neither "input-enable" nor "input-disable" was specified - the pinctrl
 | |
| subsystem will therefore leave this property unchanged from whatever state it
 | |
| was in before applying these changes.
 | |
| 
 | |
| The "pins" property in the pin group node "grp_2" specifies two pins -
 | |
| "i2c_pin1" and "i2c_pin2"; the remaining properties in this pin group node,
 | |
| therefore, applies to both of these pins.  The properties include:
 | |
|  - setting pinmux to "alt2"
 | |
|  - setting pull-up resistance to 720 Ohm (ie. enabling 1.2k and 1.8k resistors
 | |
|    in parallel)
 | |
|  - enabling both pins' input
 | |
| "slew-rate" is not specified in this pin group node, so the slew-rate for these
 | |
| pins are left as-is.
 | |
| 
 | |
| Finally, "grp_3" defines two HDMI pins.  The following properties are applied to
 | |
| both pins:
 | |
|  - setting pinmux to "alt3"
 | |
|  - setting slew-rate to 1; for HDMI pins, this corresponds to the 3.4 Mbps
 | |
|    Highspeed mode
 | |
| The input is neither enabled or disabled, and is left untouched.
 | |
| 
 | |
| === Pin Names and Type ===
 | |
| 
 | |
| The following are valid pin names and their pin types:
 | |
| 
 | |
| 	"adcsync",		Standard
 | |
| 	"bat_rm",		Standard
 | |
| 	"bsc1_scl",		I2C
 | |
| 	"bsc1_sda",		I2C
 | |
| 	"bsc2_scl",		I2C
 | |
| 	"bsc2_sda",		I2C
 | |
| 	"classgpwr",		Standard
 | |
| 	"clk_cx8",		Standard
 | |
| 	"clkout_0",		Standard
 | |
| 	"clkout_1",		Standard
 | |
| 	"clkout_2",		Standard
 | |
| 	"clkout_3",		Standard
 | |
| 	"clkreq_in_0",		Standard
 | |
| 	"clkreq_in_1",		Standard
 | |
| 	"cws_sys_req1",		Standard
 | |
| 	"cws_sys_req2",		Standard
 | |
| 	"cws_sys_req3",		Standard
 | |
| 	"digmic1_clk",		Standard
 | |
| 	"digmic1_dq",		Standard
 | |
| 	"digmic2_clk",		Standard
 | |
| 	"digmic2_dq",		Standard
 | |
| 	"gpen13",		Standard
 | |
| 	"gpen14",		Standard
 | |
| 	"gpen15",		Standard
 | |
| 	"gpio00",		Standard
 | |
| 	"gpio01",		Standard
 | |
| 	"gpio02",		Standard
 | |
| 	"gpio03",		Standard
 | |
| 	"gpio04",		Standard
 | |
| 	"gpio05",		Standard
 | |
| 	"gpio06",		Standard
 | |
| 	"gpio07",		Standard
 | |
| 	"gpio08",		Standard
 | |
| 	"gpio09",		Standard
 | |
| 	"gpio10",		Standard
 | |
| 	"gpio11",		Standard
 | |
| 	"gpio12",		Standard
 | |
| 	"gpio13",		Standard
 | |
| 	"gpio14",		Standard
 | |
| 	"gps_pablank",		Standard
 | |
| 	"gps_tmark",		Standard
 | |
| 	"hdmi_scl",		HDMI
 | |
| 	"hdmi_sda",		HDMI
 | |
| 	"ic_dm",		Standard
 | |
| 	"ic_dp",		Standard
 | |
| 	"kp_col_ip_0",		Standard
 | |
| 	"kp_col_ip_1",		Standard
 | |
| 	"kp_col_ip_2",		Standard
 | |
| 	"kp_col_ip_3",		Standard
 | |
| 	"kp_row_op_0",		Standard
 | |
| 	"kp_row_op_1",		Standard
 | |
| 	"kp_row_op_2",		Standard
 | |
| 	"kp_row_op_3",		Standard
 | |
| 	"lcd_b_0",		Standard
 | |
| 	"lcd_b_1",		Standard
 | |
| 	"lcd_b_2",		Standard
 | |
| 	"lcd_b_3",		Standard
 | |
| 	"lcd_b_4",		Standard
 | |
| 	"lcd_b_5",		Standard
 | |
| 	"lcd_b_6",		Standard
 | |
| 	"lcd_b_7",		Standard
 | |
| 	"lcd_g_0",		Standard
 | |
| 	"lcd_g_1",		Standard
 | |
| 	"lcd_g_2",		Standard
 | |
| 	"lcd_g_3",		Standard
 | |
| 	"lcd_g_4",		Standard
 | |
| 	"lcd_g_5",		Standard
 | |
| 	"lcd_g_6",		Standard
 | |
| 	"lcd_g_7",		Standard
 | |
| 	"lcd_hsync",		Standard
 | |
| 	"lcd_oe",		Standard
 | |
| 	"lcd_pclk",		Standard
 | |
| 	"lcd_r_0",		Standard
 | |
| 	"lcd_r_1",		Standard
 | |
| 	"lcd_r_2",		Standard
 | |
| 	"lcd_r_3",		Standard
 | |
| 	"lcd_r_4",		Standard
 | |
| 	"lcd_r_5",		Standard
 | |
| 	"lcd_r_6",		Standard
 | |
| 	"lcd_r_7",		Standard
 | |
| 	"lcd_vsync",		Standard
 | |
| 	"mdmgpio0",		Standard
 | |
| 	"mdmgpio1",		Standard
 | |
| 	"mdmgpio2",		Standard
 | |
| 	"mdmgpio3",		Standard
 | |
| 	"mdmgpio4",		Standard
 | |
| 	"mdmgpio5",		Standard
 | |
| 	"mdmgpio6",		Standard
 | |
| 	"mdmgpio7",		Standard
 | |
| 	"mdmgpio8",		Standard
 | |
| 	"mphi_data_0",		Standard
 | |
| 	"mphi_data_1",		Standard
 | |
| 	"mphi_data_2",		Standard
 | |
| 	"mphi_data_3",		Standard
 | |
| 	"mphi_data_4",		Standard
 | |
| 	"mphi_data_5",		Standard
 | |
| 	"mphi_data_6",		Standard
 | |
| 	"mphi_data_7",		Standard
 | |
| 	"mphi_data_8",		Standard
 | |
| 	"mphi_data_9",		Standard
 | |
| 	"mphi_data_10",		Standard
 | |
| 	"mphi_data_11",		Standard
 | |
| 	"mphi_data_12",		Standard
 | |
| 	"mphi_data_13",		Standard
 | |
| 	"mphi_data_14",		Standard
 | |
| 	"mphi_data_15",		Standard
 | |
| 	"mphi_ha0",		Standard
 | |
| 	"mphi_hat0",		Standard
 | |
| 	"mphi_hat1",		Standard
 | |
| 	"mphi_hce0_n",		Standard
 | |
| 	"mphi_hce1_n",		Standard
 | |
| 	"mphi_hrd_n",		Standard
 | |
| 	"mphi_hwr_n",		Standard
 | |
| 	"mphi_run0",		Standard
 | |
| 	"mphi_run1",		Standard
 | |
| 	"mtx_scan_clk",		Standard
 | |
| 	"mtx_scan_data",	Standard
 | |
| 	"nand_ad_0",		Standard
 | |
| 	"nand_ad_1",		Standard
 | |
| 	"nand_ad_2",		Standard
 | |
| 	"nand_ad_3",		Standard
 | |
| 	"nand_ad_4",		Standard
 | |
| 	"nand_ad_5",		Standard
 | |
| 	"nand_ad_6",		Standard
 | |
| 	"nand_ad_7",		Standard
 | |
| 	"nand_ale",		Standard
 | |
| 	"nand_cen_0",		Standard
 | |
| 	"nand_cen_1",		Standard
 | |
| 	"nand_cle",		Standard
 | |
| 	"nand_oen",		Standard
 | |
| 	"nand_rdy_0",		Standard
 | |
| 	"nand_rdy_1",		Standard
 | |
| 	"nand_wen",		Standard
 | |
| 	"nand_wp",		Standard
 | |
| 	"pc1",			Standard
 | |
| 	"pc2",			Standard
 | |
| 	"pmu_int",		Standard
 | |
| 	"pmu_scl",		I2C
 | |
| 	"pmu_sda",		I2C
 | |
| 	"rfst2g_mtsloten3g",	Standard
 | |
| 	"rgmii_0_rx_ctl",	Standard
 | |
| 	"rgmii_0_rxc",		Standard
 | |
| 	"rgmii_0_rxd_0",	Standard
 | |
| 	"rgmii_0_rxd_1",	Standard
 | |
| 	"rgmii_0_rxd_2",	Standard
 | |
| 	"rgmii_0_rxd_3",	Standard
 | |
| 	"rgmii_0_tx_ctl",	Standard
 | |
| 	"rgmii_0_txc",		Standard
 | |
| 	"rgmii_0_txd_0",	Standard
 | |
| 	"rgmii_0_txd_1",	Standard
 | |
| 	"rgmii_0_txd_2",	Standard
 | |
| 	"rgmii_0_txd_3",	Standard
 | |
| 	"rgmii_1_rx_ctl",	Standard
 | |
| 	"rgmii_1_rxc",		Standard
 | |
| 	"rgmii_1_rxd_0",	Standard
 | |
| 	"rgmii_1_rxd_1",	Standard
 | |
| 	"rgmii_1_rxd_2",	Standard
 | |
| 	"rgmii_1_rxd_3",	Standard
 | |
| 	"rgmii_1_tx_ctl",	Standard
 | |
| 	"rgmii_1_txc",		Standard
 | |
| 	"rgmii_1_txd_0",	Standard
 | |
| 	"rgmii_1_txd_1",	Standard
 | |
| 	"rgmii_1_txd_2",	Standard
 | |
| 	"rgmii_1_txd_3",	Standard
 | |
| 	"rgmii_gpio_0",		Standard
 | |
| 	"rgmii_gpio_1",		Standard
 | |
| 	"rgmii_gpio_2",		Standard
 | |
| 	"rgmii_gpio_3",		Standard
 | |
| 	"rtxdata2g_txdata3g1",	Standard
 | |
| 	"rtxen2g_txdata3g2",	Standard
 | |
| 	"rxdata3g0",		Standard
 | |
| 	"rxdata3g1",		Standard
 | |
| 	"rxdata3g2",		Standard
 | |
| 	"sdio1_clk",		Standard
 | |
| 	"sdio1_cmd",		Standard
 | |
| 	"sdio1_data_0",		Standard
 | |
| 	"sdio1_data_1",		Standard
 | |
| 	"sdio1_data_2",		Standard
 | |
| 	"sdio1_data_3",		Standard
 | |
| 	"sdio4_clk",		Standard
 | |
| 	"sdio4_cmd",		Standard
 | |
| 	"sdio4_data_0",		Standard
 | |
| 	"sdio4_data_1",		Standard
 | |
| 	"sdio4_data_2",		Standard
 | |
| 	"sdio4_data_3",		Standard
 | |
| 	"sim_clk",		Standard
 | |
| 	"sim_data",		Standard
 | |
| 	"sim_det",		Standard
 | |
| 	"sim_resetn",		Standard
 | |
| 	"sim2_clk",		Standard
 | |
| 	"sim2_data",		Standard
 | |
| 	"sim2_det",		Standard
 | |
| 	"sim2_resetn",		Standard
 | |
| 	"sri_c",		Standard
 | |
| 	"sri_d",		Standard
 | |
| 	"sri_e",		Standard
 | |
| 	"ssp_extclk",		Standard
 | |
| 	"ssp0_clk",		Standard
 | |
| 	"ssp0_fs",		Standard
 | |
| 	"ssp0_rxd",		Standard
 | |
| 	"ssp0_txd",		Standard
 | |
| 	"ssp2_clk",		Standard
 | |
| 	"ssp2_fs_0",		Standard
 | |
| 	"ssp2_fs_1",		Standard
 | |
| 	"ssp2_fs_2",		Standard
 | |
| 	"ssp2_fs_3",		Standard
 | |
| 	"ssp2_rxd_0",		Standard
 | |
| 	"ssp2_rxd_1",		Standard
 | |
| 	"ssp2_txd_0",		Standard
 | |
| 	"ssp2_txd_1",		Standard
 | |
| 	"ssp3_clk",		Standard
 | |
| 	"ssp3_fs",		Standard
 | |
| 	"ssp3_rxd",		Standard
 | |
| 	"ssp3_txd",		Standard
 | |
| 	"ssp4_clk",		Standard
 | |
| 	"ssp4_fs",		Standard
 | |
| 	"ssp4_rxd",		Standard
 | |
| 	"ssp4_txd",		Standard
 | |
| 	"ssp5_clk",		Standard
 | |
| 	"ssp5_fs",		Standard
 | |
| 	"ssp5_rxd",		Standard
 | |
| 	"ssp5_txd",		Standard
 | |
| 	"ssp6_clk",		Standard
 | |
| 	"ssp6_fs",		Standard
 | |
| 	"ssp6_rxd",		Standard
 | |
| 	"ssp6_txd",		Standard
 | |
| 	"stat_1",		Standard
 | |
| 	"stat_2",		Standard
 | |
| 	"sysclken",		Standard
 | |
| 	"traceclk",		Standard
 | |
| 	"tracedt00",		Standard
 | |
| 	"tracedt01",		Standard
 | |
| 	"tracedt02",		Standard
 | |
| 	"tracedt03",		Standard
 | |
| 	"tracedt04",		Standard
 | |
| 	"tracedt05",		Standard
 | |
| 	"tracedt06",		Standard
 | |
| 	"tracedt07",		Standard
 | |
| 	"tracedt08",		Standard
 | |
| 	"tracedt09",		Standard
 | |
| 	"tracedt10",		Standard
 | |
| 	"tracedt11",		Standard
 | |
| 	"tracedt12",		Standard
 | |
| 	"tracedt13",		Standard
 | |
| 	"tracedt14",		Standard
 | |
| 	"tracedt15",		Standard
 | |
| 	"txdata3g0",		Standard
 | |
| 	"txpwrind",		Standard
 | |
| 	"uartb1_ucts",		Standard
 | |
| 	"uartb1_urts",		Standard
 | |
| 	"uartb1_urxd",		Standard
 | |
| 	"uartb1_utxd",		Standard
 | |
| 	"uartb2_urxd",		Standard
 | |
| 	"uartb2_utxd",		Standard
 | |
| 	"uartb3_ucts",		Standard
 | |
| 	"uartb3_urts",		Standard
 | |
| 	"uartb3_urxd",		Standard
 | |
| 	"uartb3_utxd",		Standard
 | |
| 	"uartb4_ucts",		Standard
 | |
| 	"uartb4_urts",		Standard
 | |
| 	"uartb4_urxd",		Standard
 | |
| 	"uartb4_utxd",		Standard
 | |
| 	"vc_cam1_scl",		I2C
 | |
| 	"vc_cam1_sda",		I2C
 | |
| 	"vc_cam2_scl",		I2C
 | |
| 	"vc_cam2_sda",		I2C
 | |
| 	"vc_cam3_scl",		I2C
 | |
| 	"vc_cam3_sda",		I2C
 | 
