brcm,bcm11351-pinctrl.txt 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  1. Broadcom BCM281xx Pin Controller
  2. This is a pin controller for the Broadcom BCM281xx SoC family, which includes
  3. BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs.
  4. === Pin Controller Node ===
  5. Required Properties:
  6. - compatible: Must be "brcm,bcm11351-pinctrl"
  7. - reg: Base address of the PAD Controller register block and the size
  8. of the block.
  9. For example, the following is the bare minimum node:
  10. pinctrl@35004800 {
  11. compatible = "brcm,bcm11351-pinctrl";
  12. reg = <0x35004800 0x430>;
  13. };
  14. As a pin controller device, in addition to the required properties, this node
  15. should also contain the pin configuration nodes that client devices reference,
  16. if any.
  17. === Pin Configuration Node ===
  18. Each pin configuration node is a sub-node of the pin controller node and is a
  19. container of an arbitrary number of subnodes, called pin group nodes in this
  20. document.
  21. Please refer to the pinctrl-bindings.txt in this directory for details of the
  22. common pinctrl bindings used by client devices, including the definition of a
  23. "pin configuration node".
  24. === Pin Group Node ===
  25. A pin group node specifies the desired pin mux and/or pin configuration for an
  26. arbitrary number of pins. The name of the pin group node is optional and not
  27. used.
  28. A pin group node only affects the properties specified in the node, and has no
  29. effect on any properties that are omitted.
  30. The pin group node accepts a subset of the generic pin config properties. For
  31. details generic pin config properties, please refer to pinctrl-bindings.txt
  32. and <include/linux/pinctrl/pinconfig-generic.h>.
  33. Each pin controlled by this pin controller belong to one of three types:
  34. Standard, I2C, and HDMI. Each type accepts a different set of pin config
  35. properties. A list of pins and their types is provided below.
  36. Required Properties (applicable to all pins):
  37. - pins: Multiple strings. Specifies the name(s) of one or more pins to
  38. be configured by this node.
  39. Optional Properties (for standard pins):
  40. - function: String. Specifies the pin mux selection. Values
  41. must be one of: "alt1", "alt2", "alt3", "alt4"
  42. - input-schmitt-enable: No arguments. Enable schmitt-trigger mode.
  43. - input-schmitt-disable: No arguments. Disable schmitt-trigger mode.
  44. - bias-pull-up: No arguments. Pull up on pin.
  45. - bias-pull-down: No arguments. Pull down on pin.
  46. - bias-disable: No arguments. Disable pin bias.
  47. - slew-rate: Integer. Meaning depends on configured pin mux:
  48. *_SCL or *_SDA:
  49. 0: Standard(100kbps)& Fast(400kbps) mode
  50. 1: Highspeed (3.4Mbps) mode
  51. IC_DM or IC_DP:
  52. 0: normal slew rate
  53. 1: fast slew rate
  54. Otherwise:
  55. 0: fast slew rate
  56. 1: normal slew rate
  57. - input-enable: No arguments. Enable input (does not affect
  58. output.)
  59. - input-disable: No arguments. Disable input (does not affect
  60. output.)
  61. - drive-strength: Integer. Drive strength in mA. Valid values are
  62. 2, 4, 6, 8, 10, 12, 14, 16 mA.
  63. Optional Properties (for I2C pins):
  64. - function: String. Specifies the pin mux selection. Values
  65. must be one of: "alt1", "alt2", "alt3", "alt4"
  66. - bias-pull-up: Integer. Pull up strength in Ohm. There are 3
  67. pull-up resisitors (1.2k, 1.8k, 2.7k) available
  68. in parallel for I2C pins, so the valid values
  69. are: 568, 720, 831, 1080, 1200, 1800, 2700 Ohm.
  70. - bias-disable: No arguments. Disable pin bias.
  71. - slew-rate: Integer. Meaning depends on configured pin mux:
  72. *_SCL or *_SDA:
  73. 0: Standard(100kbps)& Fast(400kbps) mode
  74. 1: Highspeed (3.4Mbps) mode
  75. IC_DM or IC_DP:
  76. 0: normal slew rate
  77. 1: fast slew rate
  78. Otherwise:
  79. 0: fast slew rate
  80. 1: normal slew rate
  81. - input-enable: No arguments. Enable input (does not affect
  82. output.)
  83. - input-disable: No arguments. Disable input (does not affect
  84. output.)
  85. Optional Properties (for HDMI pins):
  86. - function: String. Specifies the pin mux selection. Values
  87. must be one of: "alt1", "alt2", "alt3", "alt4"
  88. - slew-rate: Integer. Controls slew rate.
  89. 0: Standard(100kbps)& Fast(400kbps) mode
  90. 1: Highspeed (3.4Mbps) mode
  91. - input-enable: No arguments. Enable input (does not affect
  92. output.)
  93. - input-disable: No arguments. Disable input (does not affect
  94. output.)
  95. Example:
  96. // pin controller node
  97. pinctrl@35004800 {
  98. compatible = "brcm,bcm11351-pinctrl";
  99. reg = <0x35004800 0x430>;
  100. // pin configuration node
  101. dev_a_default: dev_a_active {
  102. //group node defining 1 standard pin
  103. grp_1 {
  104. pins = "std_pin1";
  105. function = "alt1";
  106. input-schmitt-enable;
  107. bias-disable;
  108. slew-rate = <1>;
  109. drive-strength = <4>;
  110. };
  111. // group node defining 2 I2C pins
  112. grp_2 {
  113. pins = "i2c_pin1", "i2c_pin2";
  114. function = "alt2";
  115. bias-pull-up = <720>;
  116. input-enable;
  117. };
  118. // group node defining 2 HDMI pins
  119. grp_3 {
  120. pins = "hdmi_pin1", "hdmi_pin2";
  121. function = "alt3";
  122. slew-rate = <1>;
  123. };
  124. // other pin group nodes
  125. ...
  126. };
  127. // other pin configuration nodes
  128. ...
  129. };
  130. In the example above, "dev_a_active" is a pin configuration node with a number
  131. of sub-nodes. In the pin group node "grp_1", one pin, "std_pin1", is defined in
  132. the "pins" property. Thus, the remaining properties in the "grp_1" node applies
  133. only to this pin, including the following settings:
  134. - setting pinmux to "alt1"
  135. - enabling schmitt-trigger (hystersis) mode
  136. - disabling pin bias
  137. - setting the slew-rate to 1
  138. - setting the drive strength to 4 mA
  139. Note that neither "input-enable" nor "input-disable" was specified - the pinctrl
  140. subsystem will therefore leave this property unchanged from whatever state it
  141. was in before applying these changes.
  142. The "pins" property in the pin group node "grp_2" specifies two pins -
  143. "i2c_pin1" and "i2c_pin2"; the remaining properties in this pin group node,
  144. therefore, applies to both of these pins. The properties include:
  145. - setting pinmux to "alt2"
  146. - setting pull-up resistance to 720 Ohm (ie. enabling 1.2k and 1.8k resistors
  147. in parallel)
  148. - enabling both pins' input
  149. "slew-rate" is not specified in this pin group node, so the slew-rate for these
  150. pins are left as-is.
  151. Finally, "grp_3" defines two HDMI pins. The following properties are applied to
  152. both pins:
  153. - setting pinmux to "alt3"
  154. - setting slew-rate to 1; for HDMI pins, this corresponds to the 3.4 Mbps
  155. Highspeed mode
  156. The input is neither enabled or disabled, and is left untouched.
  157. === Pin Names and Type ===
  158. The following are valid pin names and their pin types:
  159. "adcsync", Standard
  160. "bat_rm", Standard
  161. "bsc1_scl", I2C
  162. "bsc1_sda", I2C
  163. "bsc2_scl", I2C
  164. "bsc2_sda", I2C
  165. "classgpwr", Standard
  166. "clk_cx8", Standard
  167. "clkout_0", Standard
  168. "clkout_1", Standard
  169. "clkout_2", Standard
  170. "clkout_3", Standard
  171. "clkreq_in_0", Standard
  172. "clkreq_in_1", Standard
  173. "cws_sys_req1", Standard
  174. "cws_sys_req2", Standard
  175. "cws_sys_req3", Standard
  176. "digmic1_clk", Standard
  177. "digmic1_dq", Standard
  178. "digmic2_clk", Standard
  179. "digmic2_dq", Standard
  180. "gpen13", Standard
  181. "gpen14", Standard
  182. "gpen15", Standard
  183. "gpio00", Standard
  184. "gpio01", Standard
  185. "gpio02", Standard
  186. "gpio03", Standard
  187. "gpio04", Standard
  188. "gpio05", Standard
  189. "gpio06", Standard
  190. "gpio07", Standard
  191. "gpio08", Standard
  192. "gpio09", Standard
  193. "gpio10", Standard
  194. "gpio11", Standard
  195. "gpio12", Standard
  196. "gpio13", Standard
  197. "gpio14", Standard
  198. "gps_pablank", Standard
  199. "gps_tmark", Standard
  200. "hdmi_scl", HDMI
  201. "hdmi_sda", HDMI
  202. "ic_dm", Standard
  203. "ic_dp", Standard
  204. "kp_col_ip_0", Standard
  205. "kp_col_ip_1", Standard
  206. "kp_col_ip_2", Standard
  207. "kp_col_ip_3", Standard
  208. "kp_row_op_0", Standard
  209. "kp_row_op_1", Standard
  210. "kp_row_op_2", Standard
  211. "kp_row_op_3", Standard
  212. "lcd_b_0", Standard
  213. "lcd_b_1", Standard
  214. "lcd_b_2", Standard
  215. "lcd_b_3", Standard
  216. "lcd_b_4", Standard
  217. "lcd_b_5", Standard
  218. "lcd_b_6", Standard
  219. "lcd_b_7", Standard
  220. "lcd_g_0", Standard
  221. "lcd_g_1", Standard
  222. "lcd_g_2", Standard
  223. "lcd_g_3", Standard
  224. "lcd_g_4", Standard
  225. "lcd_g_5", Standard
  226. "lcd_g_6", Standard
  227. "lcd_g_7", Standard
  228. "lcd_hsync", Standard
  229. "lcd_oe", Standard
  230. "lcd_pclk", Standard
  231. "lcd_r_0", Standard
  232. "lcd_r_1", Standard
  233. "lcd_r_2", Standard
  234. "lcd_r_3", Standard
  235. "lcd_r_4", Standard
  236. "lcd_r_5", Standard
  237. "lcd_r_6", Standard
  238. "lcd_r_7", Standard
  239. "lcd_vsync", Standard
  240. "mdmgpio0", Standard
  241. "mdmgpio1", Standard
  242. "mdmgpio2", Standard
  243. "mdmgpio3", Standard
  244. "mdmgpio4", Standard
  245. "mdmgpio5", Standard
  246. "mdmgpio6", Standard
  247. "mdmgpio7", Standard
  248. "mdmgpio8", Standard
  249. "mphi_data_0", Standard
  250. "mphi_data_1", Standard
  251. "mphi_data_2", Standard
  252. "mphi_data_3", Standard
  253. "mphi_data_4", Standard
  254. "mphi_data_5", Standard
  255. "mphi_data_6", Standard
  256. "mphi_data_7", Standard
  257. "mphi_data_8", Standard
  258. "mphi_data_9", Standard
  259. "mphi_data_10", Standard
  260. "mphi_data_11", Standard
  261. "mphi_data_12", Standard
  262. "mphi_data_13", Standard
  263. "mphi_data_14", Standard
  264. "mphi_data_15", Standard
  265. "mphi_ha0", Standard
  266. "mphi_hat0", Standard
  267. "mphi_hat1", Standard
  268. "mphi_hce0_n", Standard
  269. "mphi_hce1_n", Standard
  270. "mphi_hrd_n", Standard
  271. "mphi_hwr_n", Standard
  272. "mphi_run0", Standard
  273. "mphi_run1", Standard
  274. "mtx_scan_clk", Standard
  275. "mtx_scan_data", Standard
  276. "nand_ad_0", Standard
  277. "nand_ad_1", Standard
  278. "nand_ad_2", Standard
  279. "nand_ad_3", Standard
  280. "nand_ad_4", Standard
  281. "nand_ad_5", Standard
  282. "nand_ad_6", Standard
  283. "nand_ad_7", Standard
  284. "nand_ale", Standard
  285. "nand_cen_0", Standard
  286. "nand_cen_1", Standard
  287. "nand_cle", Standard
  288. "nand_oen", Standard
  289. "nand_rdy_0", Standard
  290. "nand_rdy_1", Standard
  291. "nand_wen", Standard
  292. "nand_wp", Standard
  293. "pc1", Standard
  294. "pc2", Standard
  295. "pmu_int", Standard
  296. "pmu_scl", I2C
  297. "pmu_sda", I2C
  298. "rfst2g_mtsloten3g", Standard
  299. "rgmii_0_rx_ctl", Standard
  300. "rgmii_0_rxc", Standard
  301. "rgmii_0_rxd_0", Standard
  302. "rgmii_0_rxd_1", Standard
  303. "rgmii_0_rxd_2", Standard
  304. "rgmii_0_rxd_3", Standard
  305. "rgmii_0_tx_ctl", Standard
  306. "rgmii_0_txc", Standard
  307. "rgmii_0_txd_0", Standard
  308. "rgmii_0_txd_1", Standard
  309. "rgmii_0_txd_2", Standard
  310. "rgmii_0_txd_3", Standard
  311. "rgmii_1_rx_ctl", Standard
  312. "rgmii_1_rxc", Standard
  313. "rgmii_1_rxd_0", Standard
  314. "rgmii_1_rxd_1", Standard
  315. "rgmii_1_rxd_2", Standard
  316. "rgmii_1_rxd_3", Standard
  317. "rgmii_1_tx_ctl", Standard
  318. "rgmii_1_txc", Standard
  319. "rgmii_1_txd_0", Standard
  320. "rgmii_1_txd_1", Standard
  321. "rgmii_1_txd_2", Standard
  322. "rgmii_1_txd_3", Standard
  323. "rgmii_gpio_0", Standard
  324. "rgmii_gpio_1", Standard
  325. "rgmii_gpio_2", Standard
  326. "rgmii_gpio_3", Standard
  327. "rtxdata2g_txdata3g1", Standard
  328. "rtxen2g_txdata3g2", Standard
  329. "rxdata3g0", Standard
  330. "rxdata3g1", Standard
  331. "rxdata3g2", Standard
  332. "sdio1_clk", Standard
  333. "sdio1_cmd", Standard
  334. "sdio1_data_0", Standard
  335. "sdio1_data_1", Standard
  336. "sdio1_data_2", Standard
  337. "sdio1_data_3", Standard
  338. "sdio4_clk", Standard
  339. "sdio4_cmd", Standard
  340. "sdio4_data_0", Standard
  341. "sdio4_data_1", Standard
  342. "sdio4_data_2", Standard
  343. "sdio4_data_3", Standard
  344. "sim_clk", Standard
  345. "sim_data", Standard
  346. "sim_det", Standard
  347. "sim_resetn", Standard
  348. "sim2_clk", Standard
  349. "sim2_data", Standard
  350. "sim2_det", Standard
  351. "sim2_resetn", Standard
  352. "sri_c", Standard
  353. "sri_d", Standard
  354. "sri_e", Standard
  355. "ssp_extclk", Standard
  356. "ssp0_clk", Standard
  357. "ssp0_fs", Standard
  358. "ssp0_rxd", Standard
  359. "ssp0_txd", Standard
  360. "ssp2_clk", Standard
  361. "ssp2_fs_0", Standard
  362. "ssp2_fs_1", Standard
  363. "ssp2_fs_2", Standard
  364. "ssp2_fs_3", Standard
  365. "ssp2_rxd_0", Standard
  366. "ssp2_rxd_1", Standard
  367. "ssp2_txd_0", Standard
  368. "ssp2_txd_1", Standard
  369. "ssp3_clk", Standard
  370. "ssp3_fs", Standard
  371. "ssp3_rxd", Standard
  372. "ssp3_txd", Standard
  373. "ssp4_clk", Standard
  374. "ssp4_fs", Standard
  375. "ssp4_rxd", Standard
  376. "ssp4_txd", Standard
  377. "ssp5_clk", Standard
  378. "ssp5_fs", Standard
  379. "ssp5_rxd", Standard
  380. "ssp5_txd", Standard
  381. "ssp6_clk", Standard
  382. "ssp6_fs", Standard
  383. "ssp6_rxd", Standard
  384. "ssp6_txd", Standard
  385. "stat_1", Standard
  386. "stat_2", Standard
  387. "sysclken", Standard
  388. "traceclk", Standard
  389. "tracedt00", Standard
  390. "tracedt01", Standard
  391. "tracedt02", Standard
  392. "tracedt03", Standard
  393. "tracedt04", Standard
  394. "tracedt05", Standard
  395. "tracedt06", Standard
  396. "tracedt07", Standard
  397. "tracedt08", Standard
  398. "tracedt09", Standard
  399. "tracedt10", Standard
  400. "tracedt11", Standard
  401. "tracedt12", Standard
  402. "tracedt13", Standard
  403. "tracedt14", Standard
  404. "tracedt15", Standard
  405. "txdata3g0", Standard
  406. "txpwrind", Standard
  407. "uartb1_ucts", Standard
  408. "uartb1_urts", Standard
  409. "uartb1_urxd", Standard
  410. "uartb1_utxd", Standard
  411. "uartb2_urxd", Standard
  412. "uartb2_utxd", Standard
  413. "uartb3_ucts", Standard
  414. "uartb3_urts", Standard
  415. "uartb3_urxd", Standard
  416. "uartb3_utxd", Standard
  417. "uartb4_ucts", Standard
  418. "uartb4_urts", Standard
  419. "uartb4_urxd", Standard
  420. "uartb4_utxd", Standard
  421. "vc_cam1_scl", I2C
  422. "vc_cam1_sda", I2C
  423. "vc_cam2_scl", I2C
  424. "vc_cam2_sda", I2C
  425. "vc_cam3_scl", I2C
  426. "vc_cam3_sda", I2C