Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'imx-dt-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt

The i.MX device tree changes for 4.4:
- Add IOMUXC LPSR (Low Power State Retention) device for i.MX7D.
- Add a few low power mode related devices and touch controller for
i.MX6UL.
- Add a number of devices for i.MX7D SDB board support, USB, Dual FEC,
and eMMC5.0.
- i.MX6 Boundary Devices updates: relicense under GPLv2/X11, add Okaya
LCD, touch and wifi support, add new boards Nitrogen6_Lite and
Nitrogen6_Max.
- Enable touch screen and NAND Flash controller for a few Vybrid
devices.
- Some random and small updates on LS1021A and MXS support.

* tag 'imx-dt-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (53 commits)
ARM: dts: ls1021a: Add quirk for Erratum A009116
ARM: imx6sx-sdb: Fix typo in regulator enable GPIO property
ARM: dts: imx6: phyFLEX: fix typo in "pinctrl-names"
ARM: dts: imx6: change the core clock of spdif
ARM: dts: vf-colibri: enable NAND flash controller
ARM: dts: vf610twr: add NAND flash controller peripherial
ARM: dts: imx: add Boundary Devices Nitrogen6_Lite board
ARM: dts: imx: add Boundary Devices Nitrogen6_Max board
ARM: dts: imx6dl-nitrogen6x: change manufacturer to Boundary Devices
ARM: dts: imx6q-nitrogen6x: change manufacturer to Boundary Devices
of: Add Boundary Devices Inc. vendor prefix
ARM: dts: imx6qdl-sabrelite: relicense under GPLv2/X11
ARM: dts: imx6qdl-nitrogen6x: relicense under GPLv2/X11
ARM: dts: imx6qdl-nitrogen6x: add wifi wl1271 support
ARM: dts: imx6dql-nitrogen6x: add touchscreen support
ARM: dts: imx6qdl-sabrelite: add Okaya LCD panel
ARM: dts: imx6qdl-nitrogen6x: add Okaya LCD panel
ARM: dts: vf500-colibri: Add device tree node for touchscreen support
ARM: dts: i.MX35: fix cpu compatible value
ARM: dts: i.MX31: fix cpu compatible value
...

Signed-off-by: Olof Johansson <olof@lixom.net>

+2963 -114
+1
Documentation/devicetree/bindings/vendor-prefixes.txt
··· 34 34 avic Shanghai AVIC Optoelectronics Co., Ltd. 35 35 axis Axis Communications AB 36 36 bosch Bosch Sensortec GmbH 37 + boundary Boundary Devices Inc. 37 38 brcm Broadcom Corporation 38 39 buffalo Buffalo, Inc. 39 40 calxeda Calxeda
+2
arch/arm/boot/dts/Makefile
··· 292 292 imx6dl-gw551x.dtb \ 293 293 imx6dl-gw552x.dtb \ 294 294 imx6dl-hummingboard.dtb \ 295 + imx6dl-nit6xlite.dtb \ 295 296 imx6dl-nitrogen6x.dtb \ 296 297 imx6dl-phytec-pbab01.dtb \ 297 298 imx6dl-rex-basic.dtb \ ··· 322 321 imx6q-gw552x.dtb \ 323 322 imx6q-hummingboard.dtb \ 324 323 imx6q-nitrogen6x.dtb \ 324 + imx6q-nitrogen6_max.dtb \ 325 325 imx6q-phytec-pbab01.dtb \ 326 326 imx6q-rex-pro.dtb \ 327 327 imx6q-sabreauto.dtb \
+4 -2
arch/arm/boot/dts/imx23.dtsi
··· 383 383 }; 384 384 385 385 ocotp@8002c000 { 386 - compatible = "fsl,ocotp"; 386 + compatible = "fsl,imx23-ocotp", "fsl,ocotp"; 387 + #address-cells = <1>; 388 + #size-cells = <1>; 387 389 reg = <0x8002c000 0x2000>; 388 - status = "disabled"; 390 + clocks = <&clks 15>; 389 391 }; 390 392 391 393 axi-ahb@8002e000 {
+1 -1
arch/arm/boot/dts/imx28-evk.dts
··· 57 57 flash: m25p80@0 { 58 58 #address-cells = <1>; 59 59 #size-cells = <1>; 60 - compatible = "sst,sst25vf016b"; 60 + compatible = "sst,sst25vf016b", "jedec,spi-nor"; 61 61 spi-max-frequency = <40000000>; 62 62 reg = <0>; 63 63 };
+1 -1
arch/arm/boot/dts/imx28-m28evk.dts
··· 41 41 flash: m25p80@0 { 42 42 #address-cells = <1>; 43 43 #size-cells = <1>; 44 - compatible = "m25p80"; 44 + compatible = "m25p80", "jedec,spi-nor"; 45 45 spi-max-frequency = <40000000>; 46 46 reg = <0>; 47 47 };
+4 -2
arch/arm/boot/dts/imx28.dtsi
··· 936 936 }; 937 937 938 938 ocotp: ocotp@8002c000 { 939 - compatible = "fsl,ocotp"; 939 + compatible = "fsl,imx28-ocotp", "fsl,ocotp"; 940 + #address-cells = <1>; 941 + #size-cells = <1>; 940 942 reg = <0x8002c000 0x2000>; 941 - status = "disabled"; 943 + clocks = <&clks 25>; 942 944 }; 943 945 944 946 axi-ahb@8002e000 {
+1 -1
arch/arm/boot/dts/imx31.dtsi
··· 25 25 #size-cells = <0>; 26 26 27 27 cpu { 28 - compatible = "arm,arm1136"; 28 + compatible = "arm,arm1136jf-s"; 29 29 device_type = "cpu"; 30 30 }; 31 31 };
+1 -1
arch/arm/boot/dts/imx35.dtsi
··· 29 29 #size-cells = <0>; 30 30 31 31 cpu { 32 - compatible = "arm,arm1136"; 32 + compatible = "arm,arm1136jf-s"; 33 33 device_type = "cpu"; 34 34 }; 35 35 };
+1 -1
arch/arm/boot/dts/imx50-evk.dts
··· 33 33 flash: m25p32@1 { 34 34 #address-cells = <1>; 35 35 #size-cells = <1>; 36 - compatible = "m25p32", "m25p80"; 36 + compatible = "m25p32", "jedec,spi-nor"; 37 37 spi-max-frequency = <25000000>; 38 38 reg = <1>; 39 39
+1 -1
arch/arm/boot/dts/imx53-smd.dts
··· 76 76 flash: m25p32@1 { 77 77 #address-cells = <1>; 78 78 #size-cells = <1>; 79 - compatible = "st,m25p32", "st,m25p"; 79 + compatible = "st,m25p32", "st,m25p", "jedec,spi-nor"; 80 80 spi-max-frequency = <20000000>; 81 81 reg = <1>; 82 82
+49
arch/arm/boot/dts/imx6dl-nit6xlite.dts
··· 1 + /* 2 + * Copyright 2015 Boundary Devices, Inc. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License 11 + * version 2 as published by the Free Software Foundation. 12 + * 13 + * This file is distributed in the hope that it will be useful 14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 + * GNU General Public License for more details. 17 + * 18 + * Or, alternatively 19 + * 20 + * b) Permission is hereby granted, free of charge, to any person 21 + * obtaining a copy of this software and associated documentation 22 + * files (the "Software"), to deal in the Software without 23 + * restriction, including without limitation the rights to use 24 + * copy, modify, merge, publish, distribute, sublicense, and/or 25 + * sell copies of the Software, and to permit persons to whom the 26 + * Software is furnished to do so, subject to the following 27 + * conditions: 28 + * 29 + * The above copyright notice and this permission notice shall be 30 + * included in all copies or substantial portions of the Software. 31 + * 32 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 + * OTHER DEALINGS IN THE SOFTWARE. 40 + */ 41 + /dts-v1/; 42 + 43 + #include "imx6dl.dtsi" 44 + #include "imx6qdl-nit6xlite.dtsi" 45 + 46 + / { 47 + model = "Boundary Devices i.MX6 Solo Nitrogen6_Lite Board"; 48 + compatible = "boundary,imx6dl-nit6xlite", "fsl,imx6dl"; 49 + };
+37 -7
arch/arm/boot/dts/imx6dl-nitrogen6x.dts
··· 3 3 * Copyright 2012 Freescale Semiconductor, Inc. 4 4 * Copyright 2011 Linaro Ltd. 5 5 * 6 - * The code contained herein is licensed under the GNU General Public 7 - * License. You may obtain a copy of the GNU General Public License 8 - * Version 2 or later at the following locations: 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 9 10 * 10 - * http://www.opensource.org/licenses/gpl-license.html 11 - * http://www.gnu.org/copyleft/gpl.html 11 + * a) This file is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License 13 + * version 2 as published by the Free Software Foundation. 14 + * 15 + * This file is distributed in the hope that it will be useful 16 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 + * GNU General Public License for more details. 19 + * 20 + * Or, alternatively 21 + * 22 + * b) Permission is hereby granted, free of charge, to any person 23 + * obtaining a copy of this software and associated documentation 24 + * files (the "Software"), to deal in the Software without 25 + * restriction, including without limitation the rights to use 26 + * copy, modify, merge, publish, distribute, sublicense, and/or 27 + * sell copies of the Software, and to permit persons to whom the 28 + * Software is furnished to do so, subject to the following 29 + * conditions: 30 + * 31 + * The above copyright notice and this permission notice shall be 32 + * included in all copies or substantial portions of the Software. 33 + * 34 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 + * OTHER DEALINGS IN THE SOFTWARE. 12 42 */ 13 43 14 44 /dts-v1/; ··· 46 16 #include "imx6qdl-nitrogen6x.dtsi" 47 17 48 18 / { 49 - model = "Freescale i.MX6 DualLite Nitrogen6x Board"; 50 - compatible = "fsl,imx6dl-nitrogen6x", "fsl,imx6dl"; 19 + model = "Boundary Devices i.MX6 DualLite Nitrogen6x Board"; 20 + compatible = "boundary,imx6dl-nitrogen6x", "fsl,imx6dl"; 51 21 };
+1 -1
arch/arm/boot/dts/imx6dl-rex-basic.dts
··· 23 23 24 24 &ecspi3 { 25 25 flash: m25p80@0 { 26 - compatible = "sst,sst25vf016b"; 26 + compatible = "sst,sst25vf016b", "jedec,spi-nor"; 27 27 spi-max-frequency = <20000000>; 28 28 reg = <0>; 29 29 };
+35 -5
arch/arm/boot/dts/imx6dl-sabrelite.dts
··· 2 2 * Copyright 2011 Freescale Semiconductor, Inc. 3 3 * Copyright 2011 Linaro Ltd. 4 4 * 5 - * The code contained herein is licensed under the GNU General Public 6 - * License. You may obtain a copy of the GNU General Public License 7 - * Version 2 or later at the following locations: 5 + * This file is dual-licensed: you can use it either under the terms 6 + * of the GPL or the X11 license, at your option. Note that this dual 7 + * licensing only applies to this file, and not this project as a 8 + * whole. 8 9 * 9 - * http://www.opensource.org/licenses/gpl-license.html 10 - * http://www.gnu.org/copyleft/gpl.html 10 + * a) This file is free software; you can redistribute it and/or 11 + * modify it under the terms of the GNU General Public License 12 + * version 2 as published by the Free Software Foundation. 13 + * 14 + * This file is distributed in the hope that it will be useful 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 11 41 */ 12 42 13 43 /dts-v1/;
+1 -1
arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
··· 109 109 status = "okay"; 110 110 111 111 flash: m25p80@0 { 112 - compatible = "m25p80"; 112 + compatible = "m25p80", "jedec,spi-nor"; 113 113 spi-max-frequency = <40000000>; 114 114 reg = <0>; 115 115 };
+1 -1
arch/arm/boot/dts/imx6q-gw5400-a.dts
··· 145 145 status = "okay"; 146 146 147 147 flash: m25p80@0 { 148 - compatible = "sst,w25q256"; 148 + compatible = "sst,w25q256", "jedec,spi-nor"; 149 149 spi-max-frequency = <30000000>; 150 150 reg = <0>; 151 151 };
+53
arch/arm/boot/dts/imx6q-nitrogen6_max.dts
··· 1 + /* 2 + * Copyright 2015 Boundary Devices, Inc. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License 11 + * version 2 as published by the Free Software Foundation. 12 + * 13 + * This file is distributed in the hope that it will be useful 14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 + * GNU General Public License for more details. 17 + * 18 + * Or, alternatively 19 + * 20 + * b) Permission is hereby granted, free of charge, to any person 21 + * obtaining a copy of this software and associated documentation 22 + * files (the "Software"), to deal in the Software without 23 + * restriction, including without limitation the rights to use 24 + * copy, modify, merge, publish, distribute, sublicense, and/or 25 + * sell copies of the Software, and to permit persons to whom the 26 + * Software is furnished to do so, subject to the following 27 + * conditions: 28 + * 29 + * The above copyright notice and this permission notice shall be 30 + * included in all copies or substantial portions of the Software. 31 + * 32 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 + * OTHER DEALINGS IN THE SOFTWARE. 40 + */ 41 + /dts-v1/; 42 + 43 + #include "imx6q.dtsi" 44 + #include "imx6qdl-nitrogen6_max.dtsi" 45 + 46 + / { 47 + model = "Boundary Devices i.MX6 Quad Nitrogen6_MAX Board"; 48 + compatible = "boundary,imx6q-nitrogen6_max", "fsl,imx6q"; 49 + }; 50 + 51 + &sata { 52 + status = "okay"; 53 + };
+37 -7
arch/arm/boot/dts/imx6q-nitrogen6x.dts
··· 3 3 * Copyright 2012 Freescale Semiconductor, Inc. 4 4 * Copyright 2011 Linaro Ltd. 5 5 * 6 - * The code contained herein is licensed under the GNU General Public 7 - * License. You may obtain a copy of the GNU General Public License 8 - * Version 2 or later at the following locations: 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 9 10 * 10 - * http://www.opensource.org/licenses/gpl-license.html 11 - * http://www.gnu.org/copyleft/gpl.html 11 + * a) This file is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License 13 + * version 2 as published by the Free Software Foundation. 14 + * 15 + * This file is distributed in the hope that it will be useful 16 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 + * GNU General Public License for more details. 19 + * 20 + * Or, alternatively 21 + * 22 + * b) Permission is hereby granted, free of charge, to any person 23 + * obtaining a copy of this software and associated documentation 24 + * files (the "Software"), to deal in the Software without 25 + * restriction, including without limitation the rights to use 26 + * copy, modify, merge, publish, distribute, sublicense, and/or 27 + * sell copies of the Software, and to permit persons to whom the 28 + * Software is furnished to do so, subject to the following 29 + * conditions: 30 + * 31 + * The above copyright notice and this permission notice shall be 32 + * included in all copies or substantial portions of the Software. 33 + * 34 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 + * OTHER DEALINGS IN THE SOFTWARE. 12 42 */ 13 43 14 44 /dts-v1/; ··· 46 16 #include "imx6qdl-nitrogen6x.dtsi" 47 17 48 18 / { 49 - model = "Freescale i.MX6 Quad Nitrogen6x Board"; 50 - compatible = "fsl,imx6q-nitrogen6x", "fsl,imx6q"; 19 + model = "Boundary Devices i.MX6 Quad Nitrogen6x Board"; 20 + compatible = "boundary,imx6q-nitrogen6x", "fsl,imx6q"; 51 21 }; 52 22 53 23 &sata {
+1 -1
arch/arm/boot/dts/imx6q-rex-pro.dts
··· 23 23 24 24 &ecspi3 { 25 25 flash: m25p80@0 { 26 - compatible = "sst,sst25vf032b"; 26 + compatible = "sst,sst25vf032b", "jedec,spi-nor"; 27 27 spi-max-frequency = <20000000>; 28 28 reg = <0>; 29 29 };
+35 -5
arch/arm/boot/dts/imx6q-sabrelite.dts
··· 2 2 * Copyright 2011 Freescale Semiconductor, Inc. 3 3 * Copyright 2011 Linaro Ltd. 4 4 * 5 - * The code contained herein is licensed under the GNU General Public 6 - * License. You may obtain a copy of the GNU General Public License 7 - * Version 2 or later at the following locations: 5 + * This file is dual-licensed: you can use it either under the terms 6 + * of the GPL or the X11 license, at your option. Note that this dual 7 + * licensing only applies to this file, and not this project as a 8 + * whole. 8 9 * 9 - * http://www.opensource.org/licenses/gpl-license.html 10 - * http://www.gnu.org/copyleft/gpl.html 10 + * a) This file is free software; you can redistribute it and/or 11 + * modify it under the terms of the GNU General Public License 12 + * version 2 as published by the Free Software Foundation. 13 + * 14 + * This file is distributed in the hope that it will be useful 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 11 41 */ 12 42 13 43 /dts-v1/;
+1 -1
arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
··· 109 109 flash: m25p80@0 { 110 110 #address-cells = <1>; 111 111 #size-cells = <1>; 112 - compatible = "micron,n25q128a11"; 112 + compatible = "micron,n25q128a11", "jedec,spi-nor"; 113 113 spi-max-frequency = <20000000>; 114 114 reg = <0>; 115 115 };
+1 -1
arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
··· 141 141 flash: m25p80@1 { 142 142 #address-cells = <1>; 143 143 #size-cells = <1>; 144 - compatible = "micron,n25q128a11"; 144 + compatible = "micron,n25q128a11", "jedec,spi-nor"; 145 145 spi-max-frequency = <20000000>; 146 146 reg = <1>; 147 147 };
+1 -1
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
··· 38 38 flash: m25p80@0 { 39 39 #address-cells = <1>; 40 40 #size-cells = <1>; 41 - compatible = "sst,sst25vf040b", "m25p80"; 41 + compatible = "sst,sst25vf040b", "jedec,spi-nor"; 42 42 spi-max-frequency = <20000000>; 43 43 reg = <0>; 44 44 };
+630
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
··· 1 + /* 2 + * Copyright 2015 Boundary Devices, Inc. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License 11 + * version 2 as published by the Free Software Foundation. 12 + * 13 + * This file is distributed in the hope that it will be useful 14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 + * GNU General Public License for more details. 17 + * 18 + * Or, alternatively 19 + * 20 + * b) Permission is hereby granted, free of charge, to any person 21 + * obtaining a copy of this software and associated documentation 22 + * files (the "Software"), to deal in the Software without 23 + * restriction, including without limitation the rights to use 24 + * copy, modify, merge, publish, distribute, sublicense, and/or 25 + * sell copies of the Software, and to permit persons to whom the 26 + * Software is furnished to do so, subject to the following 27 + * conditions: 28 + * 29 + * The above copyright notice and this permission notice shall be 30 + * included in all copies or substantial portions of the Software. 31 + * 32 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 + * OTHER DEALINGS IN THE SOFTWARE. 40 + */ 41 + #include <dt-bindings/gpio/gpio.h> 42 + #include <dt-bindings/input/input.h> 43 + 44 + / { 45 + chosen { 46 + stdout-path = &uart2; 47 + }; 48 + 49 + memory { 50 + reg = <0x10000000 0x20000000>; 51 + }; 52 + 53 + regulators { 54 + compatible = "simple-bus"; 55 + #address-cells = <1>; 56 + #size-cells = <0>; 57 + 58 + reg_2p5v: regulator@0 { 59 + compatible = "regulator-fixed"; 60 + reg = <0>; 61 + regulator-name = "2P5V"; 62 + regulator-min-microvolt = <2500000>; 63 + regulator-max-microvolt = <2500000>; 64 + regulator-always-on; 65 + }; 66 + 67 + reg_3p3v: regulator@1 { 68 + compatible = "regulator-fixed"; 69 + reg = <1>; 70 + regulator-name = "3P3V"; 71 + regulator-min-microvolt = <3300000>; 72 + regulator-max-microvolt = <3300000>; 73 + regulator-always-on; 74 + }; 75 + 76 + reg_usb_otg_vbus: regulator@2 { 77 + compatible = "regulator-fixed"; 78 + reg = <2>; 79 + regulator-name = "usb_otg_vbus"; 80 + regulator-min-microvolt = <5000000>; 81 + regulator-max-microvolt = <5000000>; 82 + gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 83 + enable-active-high; 84 + }; 85 + 86 + reg_wlan_vmmc: regulator@3 { 87 + compatible = "regulator-fixed"; 88 + reg = <3>; 89 + pinctrl-names = "default"; 90 + pinctrl-0 = <&pinctrl_wlan_vmmc>; 91 + regulator-name = "reg_wlan_vmmc"; 92 + regulator-min-microvolt = <1800000>; 93 + regulator-max-microvolt = <1800000>; 94 + gpio = <&gpio6 7 GPIO_ACTIVE_HIGH>; 95 + startup-delay-us = <70000>; 96 + enable-active-high; 97 + }; 98 + }; 99 + 100 + bt_rfkill { 101 + compatible = "rfkill-gpio"; 102 + pinctrl-names = "default"; 103 + pinctrl-0 = <&pinctrl_bt_rfkill>; 104 + gpios = <&gpio6 8 GPIO_ACTIVE_HIGH>; 105 + name = "bt_rfkill"; 106 + type = <2>; 107 + }; 108 + 109 + gpio-keys { 110 + compatible = "gpio-keys"; 111 + pinctrl-names = "default"; 112 + pinctrl-0 = <&pinctrl_gpio_keys>; 113 + 114 + home { 115 + label = "Home"; 116 + gpios = <&gpio7 13 IRQ_TYPE_LEVEL_LOW>; 117 + linux,code = <102>; 118 + }; 119 + 120 + back { 121 + label = "Back"; 122 + gpios = <&gpio4 5 IRQ_TYPE_LEVEL_LOW>; 123 + linux,code = <158>; 124 + }; 125 + }; 126 + 127 + leds { 128 + compatible = "gpio-leds"; 129 + pinctrl-names = "default"; 130 + pinctrl-0 = <&pinctrl_leds>; 131 + 132 + j14-pin1 { 133 + gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; 134 + retain-state-suspended; 135 + default-state = "off"; 136 + }; 137 + 138 + j14-pin3 { 139 + gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; 140 + retain-state-suspended; 141 + default-state = "off"; 142 + }; 143 + 144 + j14-pins8-9 { 145 + gpios = <&gpio3 29 GPIO_ACTIVE_LOW>; 146 + retain-state-suspended; 147 + default-state = "off"; 148 + }; 149 + 150 + j46-pin2 { 151 + gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; 152 + retain-state-suspended; 153 + default-state = "off"; 154 + }; 155 + 156 + j46-pin3 { 157 + gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; 158 + retain-state-suspended; 159 + default-state = "off"; 160 + }; 161 + }; 162 + 163 + backlight_lcd { 164 + compatible = "pwm-backlight"; 165 + pwms = <&pwm1 0 5000000>; 166 + brightness-levels = <0 4 8 16 32 64 128 255>; 167 + default-brightness-level = <7>; 168 + power-supply = <&reg_3p3v>; 169 + status = "okay"; 170 + }; 171 + 172 + backlight_lvds0: backlight_lvds0 { 173 + compatible = "pwm-backlight"; 174 + pwms = <&pwm4 0 5000000>; 175 + brightness-levels = <0 4 8 16 32 64 128 255>; 176 + default-brightness-level = <7>; 177 + power-supply = <&reg_3p3v>; 178 + status = "okay"; 179 + }; 180 + 181 + panel_lvds0 { 182 + compatible = "hannstar,hsd100pxn1"; 183 + backlight = <&backlight_lvds0>; 184 + 185 + port { 186 + panel_in_lvds0: endpoint { 187 + remote-endpoint = <&lvds0_out>; 188 + }; 189 + }; 190 + }; 191 + 192 + sound { 193 + compatible = "fsl,imx6dl-nit6xlite-sgtl5000", 194 + "fsl,imx-audio-sgtl5000"; 195 + model = "imx6dl-nit6xlite-sgtl5000"; 196 + ssi-controller = <&ssi1>; 197 + audio-codec = <&codec>; 198 + audio-routing = 199 + "MIC_IN", "Mic Jack", 200 + "Mic Jack", "Mic Bias", 201 + "Headphone Jack", "HP_OUT"; 202 + mux-int-port = <1>; 203 + mux-ext-port = <3>; 204 + }; 205 + }; 206 + 207 + &audmux { 208 + pinctrl-names = "default"; 209 + pinctrl-0 = <&pinctrl_audmux>; 210 + status = "okay"; 211 + }; 212 + 213 + &clks { 214 + assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, 215 + <&clks IMX6QDL_CLK_LDB_DI1_SEL>; 216 + assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>, 217 + <&clks IMX6QDL_CLK_PLL3_USB_OTG>; 218 + }; 219 + 220 + &ecspi1 { 221 + fsl,spi-num-chipselects = <1>; 222 + cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; 223 + pinctrl-names = "default"; 224 + pinctrl-0 = <&pinctrl_ecspi1>; 225 + status = "okay"; 226 + 227 + flash: m25p80@0 { 228 + compatible = "microchip,sst25vf016b"; 229 + spi-max-frequency = <20000000>; 230 + reg = <0>; 231 + }; 232 + }; 233 + 234 + &fec { 235 + pinctrl-names = "default"; 236 + pinctrl-0 = <&pinctrl_enet>; 237 + phy-mode = "rgmii"; 238 + phy-reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; 239 + txen-skew-ps = <0>; 240 + txc-skew-ps = <3000>; 241 + rxdv-skew-ps = <0>; 242 + rxc-skew-ps = <3000>; 243 + rxd0-skew-ps = <0>; 244 + rxd1-skew-ps = <0>; 245 + rxd2-skew-ps = <0>; 246 + rxd3-skew-ps = <0>; 247 + txd0-skew-ps = <0>; 248 + txd1-skew-ps = <0>; 249 + txd2-skew-ps = <0>; 250 + txd3-skew-ps = <0>; 251 + interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 252 + <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 253 + status = "okay"; 254 + }; 255 + 256 + &hdmi { 257 + ddc-i2c-bus = <&i2c2>; 258 + status = "okay"; 259 + }; 260 + 261 + &i2c1 { 262 + clock-frequency = <100000>; 263 + pinctrl-names = "default"; 264 + pinctrl-0 = <&pinctrl_i2c1>; 265 + status = "okay"; 266 + 267 + codec: sgtl5000@0a { 268 + compatible = "fsl,sgtl5000"; 269 + pinctrl-names = "default"; 270 + pinctrl-0 = <&pinctrl_sgtl5000>; 271 + reg = <0x0a>; 272 + clocks = <&clks 201>; 273 + VDDA-supply = <&reg_2p5v>; 274 + VDDIO-supply = <&reg_3p3v>; 275 + }; 276 + }; 277 + 278 + &i2c2 { 279 + clock-frequency = <100000>; 280 + pinctrl-names = "default"; 281 + pinctrl-0 = <&pinctrl_i2c2>; 282 + status = "okay"; 283 + }; 284 + 285 + &i2c3 { 286 + clock-frequency = <100000>; 287 + pinctrl-names = "default"; 288 + pinctrl-0 = <&pinctrl_i2c3>; 289 + status = "okay"; 290 + 291 + touchscreen@04 { 292 + compatible = "eeti,egalax_ts"; 293 + reg = <0x04>; 294 + interrupt-parent = <&gpio1>; 295 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 296 + wakeup-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; 297 + }; 298 + 299 + touchscreen@38 { 300 + compatible = "edt,edt-ft5x06"; 301 + reg = <0x38>; 302 + interrupt-parent = <&gpio1>; 303 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 304 + }; 305 + 306 + rtc@6f { 307 + compatible = "isil,isl1208"; 308 + pinctrl-names = "default"; 309 + pinctrl-0 = <&pinctrl_rtc>; 310 + reg = <0x6f>; 311 + interrupts-extended = <&gpio2 26 IRQ_TYPE_LEVEL_LOW>; 312 + }; 313 + }; 314 + 315 + &iomuxc { 316 + pinctrl-names = "default"; 317 + pinctrl-0 = <&pinctrl_j10>; 318 + pinctrl-1 = <&pinctrl_j28>; 319 + 320 + imx6dl-nit6xlite { 321 + pinctrl_audmux: audmuxgrp { 322 + fsl,pins = < 323 + MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 324 + MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0 325 + MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0 326 + MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0 327 + >; 328 + }; 329 + 330 + pinctrl_bt_rfkill: bt_rfkillgrp { 331 + fsl,pins = < 332 + /* BT wake */ 333 + MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0 334 + /* BT reset */ 335 + MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x0b0b0 336 + /* BT reg en */ 337 + MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0 338 + /* BT host wake irq */ 339 + MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x100b0 340 + >; 341 + }; 342 + 343 + pinctrl_ecspi1: ecspi1grp { 344 + fsl,pins = < 345 + MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 346 + MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 347 + MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 348 + MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x000b1 349 + >; 350 + }; 351 + 352 + pinctrl_enet: enetgrp { 353 + fsl,pins = < 354 + MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x100b0 355 + MX6QDL_PAD_ENET_MDC__ENET_MDC 0x100b0 356 + MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x100b0 357 + MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x100b0 358 + MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x100b0 359 + MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x100b0 360 + MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x100b0 361 + MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x100b0 362 + MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0 363 + MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 364 + MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 365 + MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 366 + MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 367 + MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 368 + MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 369 + /* Phy reset */ 370 + MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x0f0b0 371 + MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 372 + MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1 373 + >; 374 + }; 375 + 376 + pinctrl_gpio_keys: gpio_keysgrp { 377 + fsl,pins = < 378 + /* Home Button: J14 pin 5 */ 379 + MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b0b0 380 + /* Back Button: J14 pin 7 */ 381 + MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x1b0b0 382 + >; 383 + }; 384 + 385 + pinctrl_i2c1: i2c1grp { 386 + fsl,pins = < 387 + MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 388 + MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 389 + >; 390 + }; 391 + 392 + pinctrl_i2c2: i2c2grp { 393 + fsl,pins = < 394 + MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 395 + MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 396 + >; 397 + }; 398 + 399 + pinctrl_i2c3: i2c3grp { 400 + fsl,pins = < 401 + MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 402 + MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 403 + /* Touch IRQ: J7 pin 4 */ 404 + MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 405 + /* tcs2004 IRQ */ 406 + MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1b0b0 407 + /* tsc2004 reset */ 408 + MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x0b0b0 409 + >; 410 + }; 411 + 412 + pinctrl_j10: j10grp { 413 + fsl,pins = < 414 + /* Broadcom WiFi module pins */ 415 + MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0 416 + MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0 417 + MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 418 + MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0 419 + MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x0b0b0 420 + MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x1b0b0 421 + MX6QDL_PAD_SD1_CLK__OSC32K_32K_OUT 0x000b0 422 + >; 423 + }; 424 + 425 + pinctrl_j28: j28grp { 426 + fsl,pins = < 427 + MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 428 + >; 429 + }; 430 + 431 + pinctrl_leds: ledsgrp { 432 + fsl,pins = < 433 + MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x0b0b0 434 + MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x0b0b0 435 + MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x030b0 436 + MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x0b0b0 437 + MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0b0b0 438 + >; 439 + }; 440 + 441 + pinctrl_pwm1: pwm1grp { 442 + fsl,pins = < 443 + MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1 444 + >; 445 + }; 446 + 447 + pinctrl_pwm3: pwm3grp { 448 + fsl,pins = < 449 + MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1 450 + >; 451 + }; 452 + 453 + pinctrl_pwm4: pwm4grp { 454 + fsl,pins = < 455 + MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 456 + >; 457 + }; 458 + 459 + pinctrl_wlan_vmmc: wlan_vmmcgrp { 460 + fsl,pins = < 461 + MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x030b0 462 + >; 463 + }; 464 + 465 + pinctrl_rtc: rtcgrp { 466 + fsl,pins = < 467 + MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1b0b0 468 + >; 469 + }; 470 + 471 + pinctrl_sgtl5000: sgtl5000grp { 472 + fsl,pins = < 473 + MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0 474 + MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b0 475 + >; 476 + }; 477 + 478 + pinctrl_uart1: uart1grp { 479 + fsl,pins = < 480 + MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 481 + MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 482 + >; 483 + }; 484 + 485 + pinctrl_uart2: uart2grp { 486 + fsl,pins = < 487 + MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 488 + MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1 489 + >; 490 + }; 491 + 492 + pinctrl_uart3: uart3grp { 493 + fsl,pins = < 494 + MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 495 + MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 496 + MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1 497 + MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1 498 + >; 499 + }; 500 + 501 + pinctrl_usbotg: usbotggrp { 502 + fsl,pins = < 503 + MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 504 + MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0 505 + /* power enable, high active */ 506 + MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x000b0 507 + >; 508 + }; 509 + 510 + pinctrl_usdhc2: usdhc2grp { 511 + fsl,pins = < 512 + MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 513 + MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 514 + MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 515 + MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 516 + MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 517 + MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059 518 + >; 519 + }; 520 + 521 + pinctrl_usdhc3: usdhc3grp { 522 + fsl,pins = < 523 + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 524 + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 525 + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 526 + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 527 + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 528 + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 529 + MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0 530 + >; 531 + }; 532 + }; 533 + }; 534 + 535 + &ldb { 536 + status = "okay"; 537 + 538 + lvds-channel@0 { 539 + fsl,data-mapping = "spwg"; 540 + fsl,data-width = <18>; 541 + status = "okay"; 542 + 543 + port@4 { 544 + reg = <4>; 545 + 546 + lvds0_out: endpoint { 547 + remote-endpoint = <&panel_in_lvds0>; 548 + }; 549 + }; 550 + }; 551 + }; 552 + 553 + &pcie { 554 + status = "okay"; 555 + }; 556 + 557 + &pwm1 { 558 + pinctrl-names = "default"; 559 + pinctrl-0 = <&pinctrl_pwm1>; 560 + status = "okay"; 561 + }; 562 + 563 + &pwm3 { 564 + pinctrl-names = "default"; 565 + pinctrl-0 = <&pinctrl_pwm3>; 566 + status = "okay"; 567 + }; 568 + 569 + &pwm4 { 570 + pinctrl-names = "default"; 571 + pinctrl-0 = <&pinctrl_pwm4>; 572 + status = "okay"; 573 + }; 574 + 575 + &ssi1 { 576 + status = "okay"; 577 + }; 578 + 579 + &uart1 { 580 + pinctrl-names = "default"; 581 + pinctrl-0 = <&pinctrl_uart1>; 582 + status = "okay"; 583 + }; 584 + 585 + &uart2 { 586 + pinctrl-names = "default"; 587 + pinctrl-0 = <&pinctrl_uart2>; 588 + status = "okay"; 589 + }; 590 + 591 + &uart3 { 592 + pinctrl-names = "default"; 593 + pinctrl-0 = <&pinctrl_uart3>; 594 + fsl,uart-has-rtscts; 595 + status = "okay"; 596 + }; 597 + 598 + &usbh1 { 599 + status = "okay"; 600 + }; 601 + 602 + &usbotg { 603 + vbus-supply = <&reg_usb_otg_vbus>; 604 + pinctrl-names = "default"; 605 + pinctrl-0 = <&pinctrl_usbotg>; 606 + disable-over-current; 607 + status = "okay"; 608 + }; 609 + 610 + &usdhc2 { 611 + pinctrl-names = "default"; 612 + pinctrl-0 = <&pinctrl_usdhc2>; 613 + bus-width = <4>; 614 + non-removable; 615 + vmmc-supply = <&reg_3p3v>; 616 + vqmmc-supply = <&reg_wlan_vmmc>; 617 + vqmmc-1-8-v; 618 + ocr-limit = <0x180>; /* 1.65v - 2.1v */ 619 + cap-power-off-card; 620 + keep-power-in-suspend; 621 + status = "okay"; 622 + }; 623 + 624 + &usdhc3 { 625 + pinctrl-names = "default"; 626 + pinctrl-0 = <&pinctrl_usdhc3>; 627 + cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 628 + vmmc-supply = <&reg_3p3v>; 629 + status = "okay"; 630 + };
+873
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
··· 1 + /* 2 + * Copyright 2015 Boundary Devices, Inc. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License 11 + * version 2 as published by the Free Software Foundation. 12 + * 13 + * This file is distributed in the hope that it will be useful 14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 + * GNU General Public License for more details. 17 + * 18 + * Or, alternatively 19 + * 20 + * b) Permission is hereby granted, free of charge, to any person 21 + * obtaining a copy of this software and associated documentation 22 + * files (the "Software"), to deal in the Software without 23 + * restriction, including without limitation the rights to use 24 + * copy, modify, merge, publish, distribute, sublicense, and/or 25 + * sell copies of the Software, and to permit persons to whom the 26 + * Software is furnished to do so, subject to the following 27 + * conditions: 28 + * 29 + * The above copyright notice and this permission notice shall be 30 + * included in all copies or substantial portions of the Software. 31 + * 32 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 + * OTHER DEALINGS IN THE SOFTWARE. 40 + */ 41 + #include <dt-bindings/gpio/gpio.h> 42 + #include <dt-bindings/input/input.h> 43 + 44 + / { 45 + chosen { 46 + stdout-path = &uart2; 47 + }; 48 + 49 + memory { 50 + reg = <0x10000000 0xF0000000>; 51 + }; 52 + 53 + regulators { 54 + compatible = "simple-bus"; 55 + #address-cells = <1>; 56 + #size-cells = <0>; 57 + 58 + reg_1p8v: regulator@0 { 59 + compatible = "regulator-fixed"; 60 + reg = <0>; 61 + regulator-name = "1P8V"; 62 + regulator-min-microvolt = <1800000>; 63 + regulator-max-microvolt = <1800000>; 64 + regulator-always-on; 65 + }; 66 + 67 + reg_2p5v: regulator@1 { 68 + compatible = "regulator-fixed"; 69 + reg = <1>; 70 + regulator-name = "2P5V"; 71 + regulator-min-microvolt = <2500000>; 72 + regulator-max-microvolt = <2500000>; 73 + regulator-always-on; 74 + }; 75 + 76 + reg_3p3v: regulator@2 { 77 + compatible = "regulator-fixed"; 78 + reg = <2>; 79 + regulator-name = "3P3V"; 80 + regulator-min-microvolt = <3300000>; 81 + regulator-max-microvolt = <3300000>; 82 + regulator-always-on; 83 + }; 84 + 85 + reg_usb_otg_vbus: regulator@3 { 86 + compatible = "regulator-fixed"; 87 + reg = <3>; 88 + regulator-name = "usb_otg_vbus"; 89 + regulator-min-microvolt = <5000000>; 90 + regulator-max-microvolt = <5000000>; 91 + gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 92 + enable-active-high; 93 + }; 94 + 95 + reg_usb_h1_vbus: regulator@4 { 96 + compatible = "regulator-fixed"; 97 + reg = <4>; 98 + pinctrl-names = "default"; 99 + pinctrl-0 = <&pinctrl_usbh1>; 100 + regulator-name = "usb_h1_vbus"; 101 + regulator-min-microvolt = <3300000>; 102 + regulator-max-microvolt = <3300000>; 103 + gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; 104 + enable-active-high; 105 + }; 106 + 107 + reg_wlan_vmmc: regulator@5 { 108 + compatible = "regulator-fixed"; 109 + reg = <5>; 110 + pinctrl-names = "default"; 111 + pinctrl-0 = <&pinctrl_wlan_vmmc>; 112 + regulator-name = "reg_wlan_vmmc"; 113 + regulator-min-microvolt = <3300000>; 114 + regulator-max-microvolt = <3300000>; 115 + gpio = <&gpio6 15 GPIO_ACTIVE_HIGH>; 116 + startup-delay-us = <70000>; 117 + enable-active-high; 118 + }; 119 + 120 + reg_can_xcvr: regulator@6 { 121 + compatible = "regulator-fixed"; 122 + reg = <6>; 123 + regulator-name = "CAN XCVR"; 124 + regulator-min-microvolt = <3300000>; 125 + regulator-max-microvolt = <3300000>; 126 + pinctrl-names = "default"; 127 + pinctrl-0 = <&pinctrl_can_xcvr>; 128 + gpio = <&gpio1 2 GPIO_ACTIVE_LOW>; 129 + }; 130 + }; 131 + 132 + gpio-keys { 133 + compatible = "gpio-keys"; 134 + pinctrl-names = "default"; 135 + pinctrl-0 = <&pinctrl_gpio_keys>; 136 + 137 + power { 138 + label = "Power Button"; 139 + gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; 140 + linux,code = <KEY_POWER>; 141 + gpio-key,wakeup; 142 + }; 143 + 144 + menu { 145 + label = "Menu"; 146 + gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 147 + linux,code = <KEY_MENU>; 148 + }; 149 + 150 + home { 151 + label = "Home"; 152 + gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; 153 + linux,code = <KEY_HOME>; 154 + }; 155 + 156 + back { 157 + label = "Back"; 158 + gpios = <&gpio2 2 GPIO_ACTIVE_LOW>; 159 + linux,code = <KEY_BACK>; 160 + }; 161 + 162 + volume-up { 163 + label = "Volume Up"; 164 + gpios = <&gpio7 13 GPIO_ACTIVE_LOW>; 165 + linux,code = <KEY_VOLUMEUP>; 166 + }; 167 + 168 + volume-down { 169 + label = "Volume Down"; 170 + gpios = <&gpio7 1 GPIO_ACTIVE_LOW>; 171 + linux,code = <KEY_VOLUMEDOWN>; 172 + }; 173 + }; 174 + 175 + i2cmux@2 { 176 + compatible = "i2c-mux-gpio"; 177 + pinctrl-names = "default"; 178 + pinctrl-0 = <&pinctrl_i2c2mux>; 179 + #address-cells = <1>; 180 + #size-cells = <0>; 181 + mux-gpios = <&gpio3 20 GPIO_ACTIVE_HIGH 182 + &gpio4 15 GPIO_ACTIVE_HIGH>; 183 + i2c-parent = <&i2c2>; 184 + idle-state = <0>; 185 + 186 + i2c2@1 { 187 + reg = <1>; 188 + #address-cells = <1>; 189 + #size-cells = <0>; 190 + }; 191 + 192 + i2c2@2 { 193 + reg = <2>; 194 + #address-cells = <1>; 195 + #size-cells = <0>; 196 + }; 197 + }; 198 + 199 + i2cmux@3 { 200 + compatible = "i2c-mux-gpio"; 201 + pinctrl-names = "default"; 202 + pinctrl-0 = <&pinctrl_i2c3mux>; 203 + #address-cells = <1>; 204 + #size-cells = <0>; 205 + mux-gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>; 206 + i2c-parent = <&i2c3>; 207 + idle-state = <0>; 208 + 209 + i2c3@1 { 210 + reg = <1>; 211 + #address-cells = <1>; 212 + #size-cells = <0>; 213 + }; 214 + }; 215 + 216 + leds { 217 + compatible = "gpio-leds"; 218 + 219 + speaker-enable { 220 + gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; 221 + retain-state-suspended; 222 + default-state = "off"; 223 + }; 224 + 225 + ttymxc4-rs232 { 226 + gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>; 227 + retain-state-suspended; 228 + default-state = "on"; 229 + }; 230 + }; 231 + 232 + backlight_lcd: backlight_lcd { 233 + compatible = "pwm-backlight"; 234 + pwms = <&pwm1 0 5000000>; 235 + brightness-levels = <0 4 8 16 32 64 128 255>; 236 + default-brightness-level = <7>; 237 + power-supply = <&reg_3p3v>; 238 + status = "okay"; 239 + }; 240 + 241 + backlight_lvds0: backlight_lvds0 { 242 + compatible = "pwm-backlight"; 243 + pwms = <&pwm4 0 5000000>; 244 + brightness-levels = <0 4 8 16 32 64 128 255>; 245 + default-brightness-level = <7>; 246 + power-supply = <&reg_3p3v>; 247 + status = "okay"; 248 + }; 249 + 250 + backlight_lvds1: backlight_lvds1 { 251 + compatible = "pwm-backlight"; 252 + pwms = <&pwm2 0 5000000>; 253 + brightness-levels = <0 4 8 16 32 64 128 255>; 254 + default-brightness-level = <7>; 255 + power-supply = <&reg_3p3v>; 256 + status = "okay"; 257 + }; 258 + 259 + lcd_display: display@di0 { 260 + compatible = "fsl,imx-parallel-display"; 261 + #address-cells = <1>; 262 + #size-cells = <0>; 263 + interface-pix-fmt = "bgr666"; 264 + pinctrl-names = "default"; 265 + pinctrl-0 = <&pinctrl_j15>; 266 + status = "okay"; 267 + 268 + port@0 { 269 + reg = <0>; 270 + 271 + lcd_display_in: endpoint { 272 + remote-endpoint = <&ipu1_di0_disp0>; 273 + }; 274 + }; 275 + 276 + port@1 { 277 + reg = <1>; 278 + 279 + lcd_display_out: endpoint { 280 + remote-endpoint = <&lcd_panel_in>; 281 + }; 282 + }; 283 + }; 284 + 285 + panel_lcd { 286 + compatible = "okaya,rs800480t-7x0gp"; 287 + backlight = <&backlight_lcd>; 288 + 289 + port { 290 + lcd_panel_in: endpoint { 291 + remote-endpoint = <&lcd_display_out>; 292 + }; 293 + }; 294 + }; 295 + 296 + panel_lvds0 { 297 + compatible = "hannstar,hsd100pxn1"; 298 + backlight = <&backlight_lvds0>; 299 + 300 + port { 301 + panel_in_lvds0: endpoint { 302 + remote-endpoint = <&lvds0_out>; 303 + }; 304 + }; 305 + }; 306 + 307 + panel_lvds1 { 308 + compatible = "hannstar,hsd100pxn1"; 309 + backlight = <&backlight_lvds1>; 310 + 311 + port { 312 + panel_in_lvds1: endpoint { 313 + remote-endpoint = <&lvds1_out>; 314 + }; 315 + }; 316 + }; 317 + 318 + sound { 319 + compatible = "fsl,imx6q-nitrogen6_max-sgtl5000", 320 + "fsl,imx-audio-sgtl5000"; 321 + model = "imx6q-nitrogen6_max-sgtl5000"; 322 + pinctrl-names = "default"; 323 + pinctrl-0 = <&pinctrl_sgtl5000>; 324 + ssi-controller = <&ssi1>; 325 + audio-codec = <&codec>; 326 + audio-routing = 327 + "MIC_IN", "Mic Jack", 328 + "Mic Jack", "Mic Bias", 329 + "Headphone Jack", "HP_OUT"; 330 + mux-int-port = <1>; 331 + mux-ext-port = <3>; 332 + }; 333 + }; 334 + 335 + &audmux { 336 + pinctrl-names = "default"; 337 + pinctrl-0 = <&pinctrl_audmux>; 338 + status = "okay"; 339 + }; 340 + 341 + &can1 { 342 + pinctrl-names = "default"; 343 + pinctrl-0 = <&pinctrl_can1>; 344 + xceiver-supply = <&reg_can_xcvr>; 345 + status = "okay"; 346 + }; 347 + 348 + &clks { 349 + assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, 350 + <&clks IMX6QDL_CLK_LDB_DI1_SEL>; 351 + assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>, 352 + <&clks IMX6QDL_CLK_PLL3_USB_OTG>; 353 + }; 354 + 355 + &ecspi1 { 356 + fsl,spi-num-chipselects = <1>; 357 + cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 358 + pinctrl-names = "default"; 359 + pinctrl-0 = <&pinctrl_ecspi1>; 360 + status = "okay"; 361 + 362 + flash: m25p80@0 { 363 + compatible = "microchip,sst25vf016b"; 364 + spi-max-frequency = <20000000>; 365 + reg = <0>; 366 + }; 367 + }; 368 + 369 + &fec { 370 + pinctrl-names = "default"; 371 + pinctrl-0 = <&pinctrl_enet>; 372 + phy-mode = "rgmii"; 373 + phy-reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; 374 + txen-skew-ps = <0>; 375 + txc-skew-ps = <3000>; 376 + rxdv-skew-ps = <0>; 377 + rxc-skew-ps = <3000>; 378 + rxd0-skew-ps = <0>; 379 + rxd1-skew-ps = <0>; 380 + rxd2-skew-ps = <0>; 381 + rxd3-skew-ps = <0>; 382 + txd0-skew-ps = <0>; 383 + txd1-skew-ps = <0>; 384 + txd2-skew-ps = <0>; 385 + txd3-skew-ps = <0>; 386 + interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 387 + <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 388 + status = "okay"; 389 + }; 390 + 391 + &hdmi { 392 + ddc-i2c-bus = <&i2c2>; 393 + status = "okay"; 394 + }; 395 + 396 + &i2c1 { 397 + clock-frequency = <100000>; 398 + pinctrl-names = "default"; 399 + pinctrl-0 = <&pinctrl_i2c1>; 400 + status = "okay"; 401 + 402 + codec: sgtl5000@0a { 403 + compatible = "fsl,sgtl5000"; 404 + reg = <0x0a>; 405 + clocks = <&clks 201>; 406 + VDDA-supply = <&reg_2p5v>; 407 + VDDIO-supply = <&reg_3p3v>; 408 + }; 409 + 410 + rtc: rtc@68 { 411 + compatible = "st,rv4162"; 412 + pinctrl-names = "default"; 413 + pinctrl-0 = <&pinctrl_rv4162>; 414 + reg = <0x68>; 415 + interrupts-extended = <&gpio4 6 IRQ_TYPE_LEVEL_LOW>; 416 + }; 417 + }; 418 + 419 + &i2c2 { 420 + clock-frequency = <100000>; 421 + pinctrl-names = "default"; 422 + pinctrl-0 = <&pinctrl_i2c2>; 423 + status = "okay"; 424 + }; 425 + 426 + &i2c3 { 427 + clock-frequency = <100000>; 428 + pinctrl-names = "default"; 429 + pinctrl-0 = <&pinctrl_i2c3>; 430 + status = "okay"; 431 + 432 + touchscreen@04 { 433 + compatible = "eeti,egalax_ts"; 434 + reg = <0x04>; 435 + interrupt-parent = <&gpio1>; 436 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 437 + wakeup-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; 438 + }; 439 + 440 + touchscreen@38 { 441 + compatible = "edt,edt-ft5x06"; 442 + reg = <0x38>; 443 + interrupt-parent = <&gpio1>; 444 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 445 + }; 446 + }; 447 + 448 + &iomuxc { 449 + imx6q-nitrogen6_max { 450 + pinctrl_audmux: audmuxgrp { 451 + fsl,pins = < 452 + MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 453 + MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0 454 + MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0 455 + MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0 456 + >; 457 + }; 458 + 459 + pinctrl_can1: can1grp { 460 + fsl,pins = < 461 + MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b0 462 + MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b0 463 + >; 464 + }; 465 + 466 + pinctrl_can_xcvr: can-xcvrgrp { 467 + fsl,pins = < 468 + /* Flexcan XCVR enable */ 469 + MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0 470 + >; 471 + }; 472 + 473 + pinctrl_ecspi1: ecspi1grp { 474 + fsl,pins = < 475 + MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 476 + MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 477 + MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 478 + MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x000b1 479 + >; 480 + }; 481 + 482 + pinctrl_enet: enetgrp { 483 + fsl,pins = < 484 + MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x100b0 485 + MX6QDL_PAD_ENET_MDC__ENET_MDC 0x100b0 486 + MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x100b0 487 + MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x100b0 488 + MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x100b0 489 + MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x100b0 490 + MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x100b0 491 + MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x100b0 492 + MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0 493 + MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 494 + MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 495 + MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 496 + MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 497 + MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 498 + MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 499 + /* Phy reset */ 500 + MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x0f0b0 501 + MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 502 + MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1 503 + >; 504 + }; 505 + 506 + pinctrl_gpio_keys: gpio_keysgrp { 507 + fsl,pins = < 508 + /* Power Button */ 509 + MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 510 + /* Menu Button */ 511 + MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0 512 + /* Home Button */ 513 + MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0 514 + /* Back Button */ 515 + MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0 516 + /* Volume Up Button */ 517 + MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b0b0 518 + /* Volume Down Button */ 519 + MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1b0b0 520 + >; 521 + }; 522 + 523 + pinctrl_i2c1: i2c1grp { 524 + fsl,pins = < 525 + MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 526 + MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 527 + >; 528 + }; 529 + 530 + pinctrl_i2c2: i2c2grp { 531 + fsl,pins = < 532 + MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 533 + MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 534 + >; 535 + }; 536 + 537 + pinctrl_i2c2mux: i2c2muxgrp { 538 + fsl,pins = < 539 + /* ov5642 camera i2c enable */ 540 + MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x000b0 541 + /* ov5640_mipi camera i2c enable */ 542 + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x000b0 543 + >; 544 + }; 545 + 546 + pinctrl_i2c3: i2c3grp { 547 + fsl,pins = < 548 + MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 549 + MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 550 + MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 551 + >; 552 + }; 553 + 554 + pinctrl_i2c3mux: i2c3muxgrp { 555 + fsl,pins = < 556 + /* PCIe I2C enable */ 557 + MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x000b0 558 + >; 559 + }; 560 + 561 + pinctrl_j15: j15grp { 562 + fsl,pins = < 563 + MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10 564 + MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10 565 + MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10 566 + MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10 567 + MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10 568 + MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10 569 + MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10 570 + MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10 571 + MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10 572 + MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10 573 + MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10 574 + MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10 575 + MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10 576 + MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10 577 + MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10 578 + MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10 579 + MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10 580 + MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10 581 + MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10 582 + MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10 583 + MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10 584 + MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10 585 + MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10 586 + MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10 587 + MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10 588 + MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10 589 + MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10 590 + MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10 591 + >; 592 + }; 593 + 594 + pinctrl_pcie: pciegrp { 595 + fsl,pins = < 596 + /* PCIe reset */ 597 + MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x000b0 598 + >; 599 + }; 600 + 601 + pinctrl_pwm1: pwm1grp { 602 + fsl,pins = < 603 + MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1 604 + >; 605 + }; 606 + 607 + pinctrl_pwm2: pwm2grp { 608 + fsl,pins = < 609 + MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 610 + >; 611 + }; 612 + 613 + pinctrl_pwm3: pwm3grp { 614 + fsl,pins = < 615 + MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1 616 + >; 617 + }; 618 + 619 + pinctrl_pwm4: pwm4grp { 620 + fsl,pins = < 621 + MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 622 + >; 623 + }; 624 + 625 + pinctrl_rv4162: rv4162grp { 626 + fsl,pins = < 627 + MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 628 + >; 629 + }; 630 + 631 + pinctrl_sgtl5000: sgtl5000grp { 632 + fsl,pins = < 633 + MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0 634 + MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b0 635 + MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 636 + >; 637 + }; 638 + 639 + pinctrl_uart1: uart1grp { 640 + fsl,pins = < 641 + MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 642 + MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 643 + >; 644 + }; 645 + 646 + pinctrl_uart2: uart2grp { 647 + fsl,pins = < 648 + MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 649 + MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1 650 + >; 651 + }; 652 + 653 + pinctrl_uart5: uart5grp { 654 + fsl,pins = < 655 + MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x130b1 656 + MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x030b1 657 + /* RS485 RX Enable: pull up */ 658 + MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b0b1 659 + /* RS485 DEN: pull down */ 660 + MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x030b1 661 + /* RS485/!RS232 Select: pull down (rs232) */ 662 + MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x030b1 663 + /* ON: pull down */ 664 + MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x030b1 665 + >; 666 + }; 667 + 668 + pinctrl_usbh1: usbh1grp { 669 + fsl,pins = < 670 + MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x0b0b0 671 + >; 672 + }; 673 + 674 + pinctrl_usbotg: usbotggrp { 675 + fsl,pins = < 676 + MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 677 + MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0 678 + /* power enable, high active */ 679 + MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x000b0 680 + >; 681 + }; 682 + 683 + pinctrl_usdhc2: usdhc2grp { 684 + fsl,pins = < 685 + MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 686 + MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 687 + MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 688 + MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 689 + MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 690 + MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059 691 + >; 692 + }; 693 + 694 + pinctrl_usdhc3: usdhc3grp { 695 + fsl,pins = < 696 + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 697 + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 698 + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 699 + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 700 + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 701 + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 702 + MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x100b0 703 + MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0 704 + >; 705 + }; 706 + 707 + pinctrl_usdhc4: usdhc4grp { 708 + fsl,pins = < 709 + MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059 710 + MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059 711 + MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059 712 + MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059 713 + MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059 714 + MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059 715 + MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059 716 + MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059 717 + MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059 718 + MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059 719 + >; 720 + }; 721 + 722 + pinctrl_wlan_vmmc: wlan_vmmcgrp { 723 + fsl,pins = < 724 + MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x100b0 725 + MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0 726 + MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x000b0 727 + MX6QDL_PAD_SD1_CLK__OSC32K_32K_OUT 0x000b0 728 + >; 729 + }; 730 + }; 731 + }; 732 + 733 + &ipu1_di0_disp0 { 734 + remote-endpoint = <&lcd_display_in>; 735 + }; 736 + 737 + &ldb { 738 + status = "okay"; 739 + 740 + lvds-channel@0 { 741 + fsl,data-mapping = "spwg"; 742 + fsl,data-width = <18>; 743 + status = "okay"; 744 + 745 + port@4 { 746 + reg = <4>; 747 + 748 + lvds0_out: endpoint { 749 + remote-endpoint = <&panel_in_lvds0>; 750 + }; 751 + }; 752 + }; 753 + 754 + lvds-channel@1 { 755 + fsl,data-mapping = "spwg"; 756 + fsl,data-width = <18>; 757 + status = "okay"; 758 + 759 + port@4 { 760 + reg = <4>; 761 + 762 + lvds1_out: endpoint { 763 + remote-endpoint = <&panel_in_lvds1>; 764 + }; 765 + }; 766 + }; 767 + }; 768 + 769 + &pcie { 770 + pinctrl-names = "default"; 771 + pinctrl-0 = <&pinctrl_pcie>; 772 + reset-gpio = <&gpio6 31 GPIO_ACTIVE_LOW>; 773 + status = "okay"; 774 + }; 775 + 776 + &pwm1 { 777 + pinctrl-names = "default"; 778 + pinctrl-0 = <&pinctrl_pwm1>; 779 + status = "okay"; 780 + }; 781 + 782 + &pwm2 { 783 + pinctrl-names = "default"; 784 + pinctrl-0 = <&pinctrl_pwm2>; 785 + status = "okay"; 786 + }; 787 + 788 + &pwm3 { 789 + pinctrl-names = "default"; 790 + pinctrl-0 = <&pinctrl_pwm3>; 791 + status = "okay"; 792 + }; 793 + 794 + &pwm4 { 795 + pinctrl-names = "default"; 796 + pinctrl-0 = <&pinctrl_pwm4>; 797 + status = "okay"; 798 + }; 799 + 800 + &ssi1 { 801 + status = "okay"; 802 + }; 803 + 804 + &uart1 { 805 + pinctrl-names = "default"; 806 + pinctrl-0 = <&pinctrl_uart1>; 807 + status = "okay"; 808 + }; 809 + 810 + &uart2 { 811 + pinctrl-names = "default"; 812 + pinctrl-0 = <&pinctrl_uart2>; 813 + status = "okay"; 814 + }; 815 + 816 + &uart5 { 817 + pinctrl-names = "default"; 818 + pinctrl-0 = <&pinctrl_uart5>; 819 + status = "okay"; 820 + }; 821 + 822 + &usbh1 { 823 + vbus-supply = <&reg_usb_h1_vbus>; 824 + status = "okay"; 825 + }; 826 + 827 + &usbotg { 828 + vbus-supply = <&reg_usb_otg_vbus>; 829 + pinctrl-names = "default"; 830 + pinctrl-0 = <&pinctrl_usbotg>; 831 + disable-over-current; 832 + status = "okay"; 833 + }; 834 + 835 + &usdhc2 { 836 + pinctrl-names = "default"; 837 + pinctrl-0 = <&pinctrl_usdhc2>; 838 + bus-width = <4>; 839 + non-removable; 840 + vmmc-supply = <&reg_wlan_vmmc>; 841 + cap-power-off-card; 842 + keep-power-in-suspend; 843 + status = "okay"; 844 + 845 + #address-cells = <1>; 846 + #size-cells = <0>; 847 + wlcore: wlcore@2 { 848 + compatible = "ti,wl1271"; 849 + reg = <2>; 850 + interrupt-parent = <&gpio6>; 851 + interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; 852 + ref-clock-frequency = <38400000>; 853 + }; 854 + }; 855 + 856 + &usdhc3 { 857 + pinctrl-names = "default"; 858 + pinctrl-0 = <&pinctrl_usdhc3>; 859 + cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 860 + bus-width = <4>; 861 + vmmc-supply = <&reg_3p3v>; 862 + status = "okay"; 863 + }; 864 + 865 + &usdhc4 { 866 + pinctrl-names = "default"; 867 + pinctrl-0 = <&pinctrl_usdhc4>; 868 + bus-width = <8>; 869 + non-removable; 870 + vmmc-supply = <&reg_1p8v>; 871 + keep-power-in-suspend; 872 + status = "okay"; 873 + };
+182 -7
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
··· 3 3 * Copyright 2011 Freescale Semiconductor, Inc. 4 4 * Copyright 2011 Linaro Ltd. 5 5 * 6 - * The code contained herein is licensed under the GNU General Public 7 - * License. You may obtain a copy of the GNU General Public License 8 - * Version 2 or later at the following locations: 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 9 10 * 10 - * http://www.opensource.org/licenses/gpl-license.html 11 - * http://www.gnu.org/copyleft/gpl.html 11 + * a) This file is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License 13 + * version 2 as published by the Free Software Foundation. 14 + * 15 + * This file is distributed in the hope that it will be useful 16 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 + * GNU General Public License for more details. 19 + * 20 + * Or, alternatively 21 + * 22 + * b) Permission is hereby granted, free of charge, to any person 23 + * obtaining a copy of this software and associated documentation 24 + * files (the "Software"), to deal in the Software without 25 + * restriction, including without limitation the rights to use 26 + * copy, modify, merge, publish, distribute, sublicense, and/or 27 + * sell copies of the Software, and to permit persons to whom the 28 + * Software is furnished to do so, subject to the following 29 + * conditions: 30 + * 31 + * The above copyright notice and this permission notice shall be 32 + * included in all copies or substantial portions of the Software. 33 + * 34 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 + * OTHER DEALINGS IN THE SOFTWARE. 12 42 */ 13 43 #include <dt-bindings/gpio/gpio.h> 14 44 #include <dt-bindings/input/input.h> ··· 94 64 pinctrl-names = "default"; 95 65 pinctrl-0 = <&pinctrl_can_xcvr>; 96 66 gpio = <&gpio1 2 GPIO_ACTIVE_LOW>; 67 + }; 68 + 69 + reg_wlan_vmmc: regulator@4 { 70 + compatible = "regulator-fixed"; 71 + reg = <4>; 72 + pinctrl-names = "default"; 73 + pinctrl-0 = <&pinctrl_wlan_vmmc>; 74 + regulator-name = "reg_wlan_vmmc"; 75 + regulator-min-microvolt = <3300000>; 76 + regulator-max-microvolt = <3300000>; 77 + gpio = <&gpio6 15 GPIO_ACTIVE_HIGH>; 78 + startup-delay-us = <70000>; 79 + enable-active-high; 97 80 }; 98 81 }; 99 82 ··· 167 124 mux-ext-port = <3>; 168 125 }; 169 126 170 - backlight_lcd { 127 + backlight_lcd: backlight_lcd { 171 128 compatible = "pwm-backlight"; 172 129 pwms = <&pwm1 0 5000000>; 173 130 brightness-levels = <0 4 8 16 32 64 128 255>; ··· 183 140 default-brightness-level = <7>; 184 141 power-supply = <&reg_3p3v>; 185 142 status = "okay"; 143 + }; 144 + 145 + lcd_display: display@di0 { 146 + compatible = "fsl,imx-parallel-display"; 147 + #address-cells = <1>; 148 + #size-cells = <0>; 149 + interface-pix-fmt = "bgr666"; 150 + pinctrl-names = "default"; 151 + pinctrl-0 = <&pinctrl_j15>; 152 + status = "okay"; 153 + 154 + port@0 { 155 + reg = <0>; 156 + 157 + lcd_display_in: endpoint { 158 + remote-endpoint = <&ipu1_di0_disp0>; 159 + }; 160 + }; 161 + 162 + port@1 { 163 + reg = <1>; 164 + 165 + lcd_display_out: endpoint { 166 + remote-endpoint = <&lcd_panel_in>; 167 + }; 168 + }; 169 + }; 170 + 171 + lcd_panel { 172 + compatible = "okaya,rs800480t-7x0gp"; 173 + backlight = <&backlight_lcd>; 174 + 175 + port { 176 + lcd_panel_in: endpoint { 177 + remote-endpoint = <&lcd_display_out>; 178 + }; 179 + }; 186 180 }; 187 181 188 182 panel { ··· 262 182 status = "okay"; 263 183 264 184 flash: m25p80@0 { 265 - compatible = "sst,sst25vf016b"; 185 + compatible = "sst,sst25vf016b", "jedec,spi-nor"; 266 186 spi-max-frequency = <20000000>; 267 187 reg = <0>; 268 188 }; ··· 327 247 pinctrl-names = "default"; 328 248 pinctrl-0 = <&pinctrl_i2c3>; 329 249 status = "okay"; 250 + 251 + touchscreen@04 { 252 + compatible = "eeti,egalax_ts"; 253 + reg = <0x04>; 254 + interrupt-parent = <&gpio1>; 255 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 256 + wakeup-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; 257 + }; 258 + 259 + touchscreen@38 { 260 + compatible = "edt,edt-ft5x06"; 261 + reg = <0x38>; 262 + interrupt-parent = <&gpio1>; 263 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 264 + }; 330 265 }; 331 266 332 267 &iomuxc { ··· 353 258 fsl,pins = < 354 259 /* SGTL5000 sys_mclk */ 355 260 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x030b0 261 + MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 356 262 >; 357 263 }; 358 264 ··· 450 354 >; 451 355 }; 452 356 357 + pinctrl_j15: j15grp { 358 + fsl,pins = < 359 + MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10 360 + MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10 361 + MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10 362 + MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10 363 + MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10 364 + MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10 365 + MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10 366 + MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10 367 + MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10 368 + MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10 369 + MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10 370 + MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10 371 + MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10 372 + MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10 373 + MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10 374 + MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10 375 + MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10 376 + MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10 377 + MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10 378 + MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10 379 + MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10 380 + MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10 381 + MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10 382 + MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10 383 + MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10 384 + MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10 385 + MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10 386 + MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10 387 + >; 388 + }; 389 + 453 390 pinctrl_pwm1: pwm1grp { 454 391 fsl,pins = < 455 392 MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1 ··· 524 395 >; 525 396 }; 526 397 398 + pinctrl_usdhc2: usdhc2grp { 399 + fsl,pins = < 400 + MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17071 401 + MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10071 402 + MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17071 403 + MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17071 404 + MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17071 405 + MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17071 406 + MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0 407 + >; 408 + }; 409 + 527 410 pinctrl_usdhc3: usdhc3grp { 528 411 fsl,pins = < 529 412 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 ··· 559 418 MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x1b0b0 /* CD */ 560 419 >; 561 420 }; 421 + 422 + pinctrl_wlan_vmmc: wlan_vmmcgrp { 423 + fsl,pins = < 424 + MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x100b0 425 + MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0 426 + MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x000b0 427 + MX6QDL_PAD_SD1_CLK__OSC32K_32K_OUT 0x000b0 428 + >; 429 + }; 562 430 }; 431 + }; 432 + 433 + &ipu1_di0_disp0 { 434 + remote-endpoint = <&lcd_display_in>; 563 435 }; 564 436 565 437 &ldb { ··· 641 487 pinctrl-0 = <&pinctrl_usbotg>; 642 488 disable-over-current; 643 489 status = "okay"; 490 + }; 491 + 492 + &usdhc2 { 493 + pinctrl-names = "default"; 494 + pinctrl-0 = <&pinctrl_usdhc2>; 495 + bus-width = <4>; 496 + non-removable; 497 + vmmc-supply = <&reg_wlan_vmmc>; 498 + cap-power-off-card; 499 + keep-power-in-suspend; 500 + status = "okay"; 501 + 502 + #address-cells = <1>; 503 + #size-cells = <0>; 504 + wlcore: wlcore@2 { 505 + compatible = "ti,wl1271"; 506 + reg = <2>; 507 + interrupt-parent = <&gpio6>; 508 + interrupts = <14 IRQ_TYPE_LEVEL_HIGH>; 509 + ref-clock-frequency = <38400000>; 510 + }; 644 511 }; 645 512 646 513 &usdhc3 {
+3 -3
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
··· 12 12 #include <dt-bindings/gpio/gpio.h> 13 13 14 14 / { 15 - model = "Phytec phyFLEX-i.MX6 Ouad"; 15 + model = "Phytec phyFLEX-i.MX6 Quad"; 16 16 compatible = "phytec,imx6q-pfla02", "fsl,imx6q"; 17 17 18 18 memory { ··· 80 80 cs-gpios = <&gpio4 24 0>; 81 81 82 82 flash@0 { 83 - compatible = "m25p80"; 83 + compatible = "m25p80", "jedec,spi-nor"; 84 84 spi-max-frequency = <20000000>; 85 85 reg = <0>; 86 86 }; ··· 373 373 }; 374 374 375 375 &pcie { 376 - pinctrl-name = "default"; 376 + pinctrl-names = "default"; 377 377 pinctrl-0 = <&pinctrl_pcie>; 378 378 reset-gpio = <&gpio4 17 0>; 379 379 status = "disabled";
+1 -1
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
··· 133 133 flash: m25p80@0 { 134 134 #address-cells = <1>; 135 135 #size-cells = <1>; 136 - compatible = "st,m25p32"; 136 + compatible = "st,m25p32", "jedec,spi-nor"; 137 137 spi-max-frequency = <20000000>; 138 138 reg = <0>; 139 139 };
+111 -7
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
··· 2 2 * Copyright 2011 Freescale Semiconductor, Inc. 3 3 * Copyright 2011 Linaro Ltd. 4 4 * 5 - * The code contained herein is licensed under the GNU General Public 6 - * License. You may obtain a copy of the GNU General Public License 7 - * Version 2 or later at the following locations: 5 + * This file is dual-licensed: you can use it either under the terms 6 + * of the GPL or the X11 license, at your option. Note that this dual 7 + * licensing only applies to this file, and not this project as a 8 + * whole. 8 9 * 9 - * http://www.opensource.org/licenses/gpl-license.html 10 - * http://www.gnu.org/copyleft/gpl.html 10 + * a) This file is free software; you can redistribute it and/or 11 + * modify it under the terms of the GNU General Public License 12 + * version 2 as published by the Free Software Foundation. 13 + * 14 + * This file is distributed in the hope that it will be useful 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 11 41 */ 12 42 #include <dt-bindings/gpio/gpio.h> 13 43 #include <dt-bindings/input/input.h> ··· 153 123 mux-ext-port = <4>; 154 124 }; 155 125 156 - backlight_lcd { 126 + backlight_lcd: backlight_lcd { 157 127 compatible = "pwm-backlight"; 158 128 pwms = <&pwm1 0 5000000>; 159 129 brightness-levels = <0 4 8 16 32 64 128 255>; ··· 169 139 default-brightness-level = <7>; 170 140 power-supply = <&reg_3p3v>; 171 141 status = "okay"; 142 + }; 143 + 144 + lcd_display: display@di0 { 145 + compatible = "fsl,imx-parallel-display"; 146 + #address-cells = <1>; 147 + #size-cells = <0>; 148 + interface-pix-fmt = "bgr666"; 149 + pinctrl-names = "default"; 150 + pinctrl-0 = <&pinctrl_j15>; 151 + status = "okay"; 152 + 153 + port@0 { 154 + reg = <0>; 155 + 156 + lcd_display_in: endpoint { 157 + remote-endpoint = <&ipu1_di0_disp0>; 158 + }; 159 + }; 160 + 161 + port@1 { 162 + reg = <1>; 163 + 164 + lcd_display_out: endpoint { 165 + remote-endpoint = <&lcd_panel_in>; 166 + }; 167 + }; 168 + }; 169 + 170 + lcd_panel { 171 + compatible = "okaya,rs800480t-7x0gp"; 172 + backlight = <&backlight_lcd>; 173 + 174 + port { 175 + lcd_panel_in: endpoint { 176 + remote-endpoint = <&lcd_display_out>; 177 + }; 178 + }; 172 179 }; 173 180 174 181 panel { ··· 248 181 status = "okay"; 249 182 250 183 flash: m25p80@0 { 251 - compatible = "sst,sst25vf016b"; 184 + compatible = "sst,sst25vf016b", "jedec,spi-nor"; 252 185 spi-max-frequency = <20000000>; 253 186 reg = <0>; 254 187 }; ··· 415 348 >; 416 349 }; 417 350 351 + pinctrl_j15: j15grp { 352 + fsl,pins = < 353 + MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10 354 + MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10 355 + MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10 356 + MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10 357 + MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10 358 + MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10 359 + MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10 360 + MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10 361 + MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10 362 + MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10 363 + MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10 364 + MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10 365 + MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10 366 + MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10 367 + MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10 368 + MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10 369 + MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10 370 + MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10 371 + MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10 372 + MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10 373 + MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10 374 + MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10 375 + MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10 376 + MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10 377 + MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10 378 + MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10 379 + MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10 380 + MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10 381 + >; 382 + }; 383 + 418 384 pinctrl_pwm1: pwm1grp { 419 385 fsl,pins = < 420 386 MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1 ··· 514 414 >; 515 415 }; 516 416 }; 417 + }; 418 + 419 + &ipu1_di0_disp0 { 420 + remote-endpoint = <&lcd_display_in>; 517 421 }; 518 422 519 423 &ldb {
+1 -1
arch/arm/boot/dts/imx6qdl-sabresd.dtsi
··· 158 158 flash: m25p80@0 { 159 159 #address-cells = <1>; 160 160 #size-cells = <1>; 161 - compatible = "st,m25p32"; 161 + compatible = "st,m25p32", "jedec,spi-nor"; 162 162 spi-max-frequency = <20000000>; 163 163 reg = <0>; 164 164 };
+6 -6
arch/arm/boot/dts/imx6qdl.dtsi
··· 218 218 dmas = <&sdma 14 18 0>, 219 219 <&sdma 15 18 0>; 220 220 dma-names = "rx", "tx"; 221 - clocks = <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_OSC>, 222 - <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_DUMMY>, 223 - <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_DUMMY>, 224 - <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_DUMMY>, 225 - <&clks IMX6QDL_CLK_DUMMY>; 221 + clocks = <&clks IMX6QDL_CLK_SPDIF_GCLK>, <&clks IMX6QDL_CLK_OSC>, 222 + <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_ASRC>, 223 + <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_ESAI_EXTAL>, 224 + <&clks IMX6QDL_CLK_IPG>, <&clks IMX6QDL_CLK_MLB>, 225 + <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_SPBA>; 226 226 clock-names = "core", "rxtx0", 227 227 "rxtx1", "rxtx2", 228 228 "rxtx3", "rxtx4", 229 229 "rxtx5", "rxtx6", 230 - "rxtx7"; 230 + "rxtx7", "dma"; 231 231 status = "disabled"; 232 232 }; 233 233
+1 -1
arch/arm/boot/dts/imx6sl-evk.dts
··· 126 126 flash: m25p80@0 { 127 127 #address-cells = <1>; 128 128 #size-cells = <1>; 129 - compatible = "st,m25p32"; 129 + compatible = "st,m25p32", "jedec,spi-nor"; 130 130 spi-max-frequency = <20000000>; 131 131 reg = <0>; 132 132 };
+20 -1
arch/arm/boot/dts/imx6sl.dtsi
··· 135 135 ranges; 136 136 137 137 spdif: spdif@02004000 { 138 + compatible = "fsl,imx6sl-spdif", 139 + "fsl,imx35-spdif"; 138 140 reg = <0x02004000 0x4000>; 139 141 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>; 142 + dmas = <&sdma 14 18 0>, 143 + <&sdma 15 18 0>; 144 + dma-names = "rx", "tx"; 145 + clocks = <&clks IMX6SL_CLK_SPDIF_GCLK>, <&clks IMX6SL_CLK_OSC>, 146 + <&clks IMX6SL_CLK_SPDIF>, <&clks IMX6SL_CLK_DUMMY>, 147 + <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_DUMMY>, 148 + <&clks IMX6SL_CLK_IPG>, <&clks IMX6SL_CLK_DUMMY>, 149 + <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_SPBA>; 150 + clock-names = "core", "rxtx0", 151 + "rxtx1", "rxtx2", 152 + "rxtx3", "rxtx4", 153 + "rxtx5", "rxtx6", 154 + "rxtx7", "dma"; 155 + status = "disabled"; 140 156 }; 141 157 142 158 ecspi1: ecspi@02008000 { ··· 686 670 }; 687 671 688 672 dcp: dcp@020fc000 { 673 + compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp"; 689 674 reg = <0x020fc000 0x4000>; 690 - interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>; 675 + interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>, 676 + <0 100 IRQ_TYPE_LEVEL_HIGH>, 677 + <0 101 IRQ_TYPE_LEVEL_HIGH>; 691 678 }; 692 679 }; 693 680
+2 -2
arch/arm/boot/dts/imx6sx-sdb-reva.dts
··· 129 129 reg = <0>; 130 130 #address-cells = <1>; 131 131 #size-cells = <1>; 132 - compatible = "spansion,s25fl128s"; 132 + compatible = "spansion,s25fl128s", "jedec,spi-nor"; 133 133 spi-max-frequency = <66000000>; 134 134 }; 135 135 ··· 137 137 reg = <1>; 138 138 #address-cells = <1>; 139 139 #size-cells = <1>; 140 - compatible = "spansion,s25fl128s"; 140 + compatible = "spansion,s25fl128s", "jedec,spi-nor"; 141 141 spi-max-frequency = <66000000>; 142 142 }; 143 143 };
+2 -2
arch/arm/boot/dts/imx6sx-sdb.dts
··· 130 130 flash0: n25q256a@0 { 131 131 #address-cells = <1>; 132 132 #size-cells = <1>; 133 - compatible = "micron,n25q256a"; 133 + compatible = "micron,n25q256a", "jedec,spi-nor"; 134 134 spi-max-frequency = <29000000>; 135 135 reg = <0>; 136 136 }; ··· 138 138 flash1: n25q256a@1 { 139 139 #address-cells = <1>; 140 140 #size-cells = <1>; 141 - compatible = "micron,n25q256a"; 141 + compatible = "micron,n25q256a", "jedec,spi-nor"; 142 142 spi-max-frequency = <29000000>; 143 143 reg = <1>; 144 144 };
+1 -1
arch/arm/boot/dts/imx6sx-sdb.dtsi
··· 114 114 regulator-name = "peri_3v3"; 115 115 regulator-min-microvolt = <3300000>; 116 116 regulator-max-microvolt = <3300000>; 117 - gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; 117 + gpio = <&gpio4 16 GPIO_ACTIVE_HIGH>; 118 118 enable-active-high; 119 119 regulator-always-on; 120 120 };
+1 -1
arch/arm/boot/dts/imx6sx.dtsi
··· 211 211 dmas = <&sdma 14 18 0>, 212 212 <&sdma 15 18 0>; 213 213 dma-names = "rx", "tx"; 214 - clocks = <&clks IMX6SX_CLK_SPDIF>, 214 + clocks = <&clks IMX6SX_CLK_SPDIF_GCLK>, 215 215 <&clks IMX6SX_CLK_OSC>, 216 216 <&clks IMX6SX_CLK_SPDIF>, 217 217 <&clks 0>, <&clks 0>, <&clks 0>,
+22
arch/arm/boot/dts/imx6ul-14x14-evk.dts
··· 87 87 }; 88 88 }; 89 89 90 + &snvs_poweroff { 91 + status = "okay"; 92 + }; 93 + 94 + &tsc { 95 + pinctrl-names = "default"; 96 + pinctrl-0 = <&pinctrl_tsc>; 97 + xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>; 98 + measure-delay-time = <0xffff>; 99 + pre-charge-time = <0xfff>; 100 + status = "okay"; 101 + }; 102 + 90 103 &uart1 { 91 104 pinctrl-names = "default"; 92 105 pinctrl-0 = <&pinctrl_uart1>; ··· 287 274 MX6UL_PAD_CSI_DATA06__SIM2_PORT1_SVEN 0xb808 288 275 MX6UL_PAD_CSI_DATA07__SIM2_PORT1_TRXD 0xb809 289 276 MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x3008 277 + >; 278 + }; 279 + 280 + pinctrl_tsc: tscgrp { 281 + fsl,pins = < 282 + MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0 283 + MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0 284 + MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0 285 + MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0 290 286 >; 291 287 }; 292 288
+29
arch/arm/boot/dts/imx6ul.dtsi
··· 135 135 status = "disabled"; 136 136 }; 137 137 138 + ocram: sram@00900000 { 139 + compatible = "mmio-sram"; 140 + reg = <0x00900000 0x20000>; 141 + }; 142 + 138 143 aips1: aips-bus@02000000 { 139 144 compatible = "fsl,aips-bus", "simple-bus"; 140 145 #address-cells = <1>; ··· 429 424 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 430 425 }; 431 426 427 + snvs_poweroff: snvs-poweroff { 428 + compatible = "syscon-poweroff"; 429 + regmap = <&snvs>; 430 + offset = <0x38>; 431 + mask = <0x60>; 432 + status = "disabled"; 433 + }; 434 + 432 435 snvs_pwrkey: snvs-powerkey { 433 436 compatible = "fsl,sec-v4.0-pwrkey"; 434 437 regmap = <&snvs>; ··· 584 571 status = "disabled"; 585 572 }; 586 573 574 + tsc: tsc@02040000 { 575 + compatible = "fsl,imx6ul-tsc"; 576 + reg = <0x02040000 0x4000>, <0x0219c000 0x4000>; 577 + interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 578 + <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 579 + clocks = <&clks IMX6UL_CLK_IPG>, 580 + <&clks IMX6UL_CLK_ADC2>; 581 + clock-names = "tsc", "adc"; 582 + status = "disabled"; 583 + }; 584 + 587 585 usdhc1: usdhc@02190000 { 588 586 compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc"; 589 587 reg = <0x02190000 0x4000>; ··· 647 623 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 648 624 clocks = <&clks IMX6UL_CLK_I2C3>; 649 625 status = "disabled"; 626 + }; 627 + 628 + mmdc: mmdc@021b0000 { 629 + compatible = "fsl,imx6ul-mmdc", "fsl,imx6q-mmdc"; 630 + reg = <0x021b0000 0x4000>; 650 631 }; 651 632 652 633 qspi: qspi@021e0000 {
+119 -3
arch/arm/boot/dts/imx7d-pinfunc.h
··· 15 15 * <mux_reg conf_reg input_reg mux_mode input_val> 16 16 */ 17 17 18 + #define MX7D_PAD_GPIO1_IO00__GPIO1_IO0 0x0000 0x0030 0x0000 0x0 0x0 19 + #define MX7D_PAD_GPIO1_IO00__PWM4_OUT 0x0000 0x0030 0x0000 0x1 0x0 20 + #define MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_ANY 0x0000 0x0030 0x0000 0x2 0x0 21 + #define MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B 0x0000 0x0030 0x0000 0x3 0x0 22 + #define MX7D_PAD_GPIO1_IO00__WDOD1_WDOG__RST_B_DEB 0x0000 0x0030 0x0000 0x4 0x0 23 + #define MX7D_PAD_GPIO1_IO01__GPIO1_IO1 0x0004 0x0034 0x0000 0x0 0x0 24 + #define MX7D_PAD_GPIO1_IO01__PWM1_OUT 0x0004 0x0034 0x0000 0x1 0x0 25 + #define MX7D_PAD_GPIO1_IO01__CCM_ENET_REF_CLK3 0x0004 0x0034 0x0000 0x2 0x0 26 + #define MX7D_PAD_GPIO1_IO01__SAI1_MCLK 0x0004 0x0034 0x0000 0x3 0x0 27 + #define MX7D_PAD_GPIO1_IO01__ANATOP_24M_OUT 0x0004 0x0034 0x0000 0x4 0x0 28 + #define MX7D_PAD_GPIO1_IO01__OBSERVE0_OUT 0x0004 0x0034 0x0000 0x6 0x0 29 + #define MX7D_PAD_GPIO1_IO02__GPIO1_IO2 0x0008 0x0038 0x0000 0x0 0x0 30 + #define MX7D_PAD_GPIO1_IO02__PWM2_OUT 0x0008 0x0038 0x0000 0x1 0x0 31 + #define MX7D_PAD_GPIO1_IO02__CCM_ENET_REF_CLK1 0x0008 0x0038 0x0564 0x2 0x3 32 + #define MX7D_PAD_GPIO1_IO02__SAI2_MCLK 0x0008 0x0038 0x0000 0x3 0x0 33 + #define MX7D_PAD_GPIO1_IO02__CCM_CLKO1 0x0008 0x0038 0x0000 0x5 0x0 34 + #define MX7D_PAD_GPIO1_IO02__OBSERVE1_OUT 0x0008 0x0038 0x0000 0x6 0x0 35 + #define MX7D_PAD_GPIO1_IO02__USB_OTG1_ID 0x0008 0x0038 0x0734 0x7 0x3 36 + #define MX7D_PAD_GPIO1_IO03__GPIO1_IO3 0x000C 0x003C 0x0000 0x0 0x0 37 + #define MX7D_PAD_GPIO1_IO03__PWM3_OUT 0x000C 0x003C 0x0000 0x1 0x0 38 + #define MX7D_PAD_GPIO1_IO03__CCM_ENET_REF_CLK2 0x000C 0x003C 0x0570 0x2 0x3 39 + #define MX7D_PAD_GPIO1_IO03__SAI3_MCLK 0x000C 0x003C 0x0000 0x3 0x0 40 + #define MX7D_PAD_GPIO1_IO03__CCM_CLKO2 0x000C 0x003C 0x0000 0x5 0x0 41 + #define MX7D_PAD_GPIO1_IO03__OBSERVE2_OUT 0x000C 0x003C 0x0000 0x6 0x0 42 + #define MX7D_PAD_GPIO1_IO03__USB_OTG2_ID 0x000C 0x003C 0x0730 0x7 0x3 43 + #define MX7D_PAD_GPIO1_IO04__GPIO1_IO4 0x0010 0x0040 0x0000 0x0 0x0 44 + #define MX7D_PAD_GPIO1_IO04__USB_OTG1_OC 0x0010 0x0040 0x072C 0x1 0x1 45 + #define MX7D_PAD_GPIO1_IO04__FLEXTIMER1_CH4 0x0010 0x0040 0x0594 0x2 0x1 46 + #define MX7D_PAD_GPIO1_IO04__UART5_CTS_B 0x0010 0x0040 0x0710 0x3 0x4 47 + #define MX7D_PAD_GPIO1_IO04__I2C1_SCL 0x0010 0x0040 0x05D4 0x4 0x2 48 + #define MX7D_PAD_GPIO1_IO04__OBSERVE3_OUT 0x0010 0x0040 0x0000 0x6 0x0 49 + #define MX7D_PAD_GPIO1_IO05__GPIO1_IO5 0x0014 0x0044 0x0000 0x0 0x0 50 + #define MX7D_PAD_GPIO1_IO05__USB_OTG1_PWR 0x0014 0x0044 0x0000 0x1 0x0 51 + #define MX7D_PAD_GPIO1_IO05__FLEXTIMER1_CH5 0x0014 0x0044 0x0598 0x2 0x1 52 + #define MX7D_PAD_GPIO1_IO05__UART5_RTS_B 0x0014 0x0044 0x0710 0x3 0x5 53 + #define MX7D_PAD_GPIO1_IO05__I2C1_SDA 0x0014 0x0044 0x05D8 0x4 0x2 54 + #define MX7D_PAD_GPIO1_IO05__OBSERVE4_OUT 0x0014 0x0044 0x0000 0x6 0x0 55 + #define MX7D_PAD_GPIO1_IO06__GPIO1_IO6 0x0018 0x0048 0x0000 0x0 0x0 56 + #define MX7D_PAD_GPIO1_IO06__USB_OTG2_OC 0x0018 0x0048 0x0728 0x1 0x1 57 + #define MX7D_PAD_GPIO1_IO06__FLEXTIMER1_CH6 0x0018 0x0048 0x059C 0x2 0x1 58 + #define MX7D_PAD_GPIO1_IO06__UART5_RX_DATA 0x0018 0x0048 0x0714 0x3 0x4 59 + #define MX7D_PAD_GPIO1_IO06__I2C2_SCL 0x0018 0x0048 0x05DC 0x4 0x2 60 + #define MX7D_PAD_GPIO1_IO06__CCM_WAIT 0x0018 0x0048 0x0000 0x5 0x0 61 + #define MX7D_PAD_GPIO1_IO06__KPP_ROW4 0x0018 0x0048 0x0624 0x6 0x1 62 + #define MX7D_PAD_GPIO1_IO07__GPIO1_IO7 0x001C 0x004C 0x0000 0x0 0x0 63 + #define MX7D_PAD_GPIO1_IO07__USB_OTG2_PWR 0x001C 0x004C 0x0000 0x1 0x0 64 + #define MX7D_PAD_GPIO1_IO07__FLEXTIMER1_CH7 0x001C 0x004C 0x05A0 0x2 0x1 65 + #define MX7D_PAD_GPIO1_IO07__UART5_TX_DATA 0x001C 0x004C 0x0714 0x3 0x5 66 + #define MX7D_PAD_GPIO1_IO07__I2C2_SDA 0x001C 0x004C 0x05E0 0x4 0x2 67 + #define MX7D_PAD_GPIO1_IO07__CCM_STOP 0x001C 0x004C 0x0000 0x5 0x0 68 + #define MX7D_PAD_GPIO1_IO07__KPP_COL4 0x001C 0x004C 0x0604 0x6 0x1 69 + #define MX7D_PAD_GPIO1_IO08__GPIO1_IO8 0x0014 0x026C 0x0000 0x0 0x0 70 + #define MX7D_PAD_GPIO1_IO08__SD1_VSELECT 0x0014 0x026C 0x0000 0x1 0x0 71 + #define MX7D_PAD_GPIO1_IO08__WDOG1_WDOG_B 0x0014 0x026C 0x0000 0x2 0x0 72 + #define MX7D_PAD_GPIO1_IO08__UART3_DCE_RX 0x0014 0x026C 0x0704 0x3 0x0 73 + #define MX7D_PAD_GPIO1_IO08__UART3_DTE_TX 0x0014 0x026C 0x0000 0x3 0x0 74 + #define MX7D_PAD_GPIO1_IO08__I2C3_SCL 0x0014 0x026C 0x05E4 0x4 0x0 75 + #define MX7D_PAD_GPIO1_IO08__KPP_COL5 0x0014 0x026C 0x0608 0x6 0x0 76 + #define MX7D_PAD_GPIO1_IO08__PWM1_OUT 0x0014 0x026C 0x0000 0x7 0x0 77 + #define MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x0018 0x0270 0x0000 0x0 0x0 78 + #define MX7D_PAD_GPIO1_IO09__SD1_LCTL 0x0018 0x0270 0x0000 0x1 0x0 79 + #define MX7D_PAD_GPIO1_IO09__CCM_ENET_REF_CLK3 0x0018 0x0270 0x0000 0x2 0x0 80 + #define MX7D_PAD_GPIO1_IO09__UART3_DCE_TX 0x0018 0x0270 0x0000 0x3 0x0 81 + #define MX7D_PAD_GPIO1_IO09__UART3_DTE_RX 0x0018 0x0270 0x0704 0x3 0x1 82 + #define MX7D_PAD_GPIO1_IO09__I2C3_SDA 0x0018 0x0270 0x05E8 0x4 0x0 83 + #define MX7D_PAD_GPIO1_IO09__CCM_PMIC_READY 0x0018 0x0270 0x04F4 0x5 0x0 84 + #define MX7D_PAD_GPIO1_IO09__KPP_ROW5 0x0018 0x0270 0x0628 0x6 0x0 85 + #define MX7D_PAD_GPIO1_IO09__PWM2_OUT 0x0018 0x0270 0x0000 0x7 0x0 86 + #define MX7D_PAD_GPIO1_IO10__GPIO1_IO10 0x001C 0x0274 0x0000 0x0 0x0 87 + #define MX7D_PAD_GPIO1_IO10__SD2_LCTL 0x001C 0x0274 0x0000 0x1 0x0 88 + #define MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x001C 0x0274 0x0568 0x2 0x0 89 + #define MX7D_PAD_GPIO1_IO10__UART3_DCE_RTS 0x001C 0x0274 0x0700 0x3 0x0 90 + #define MX7D_PAD_GPIO1_IO10__UART3_DTE_CTS 0x001C 0x0274 0x0000 0x3 0x0 91 + #define MX7D_PAD_GPIO1_IO10__I2C4_SCL 0x001C 0x0274 0x05EC 0x4 0x0 92 + #define MX7D_PAD_GPIO1_IO10__FLEXTIMER1_PHA 0x001C 0x0274 0x05A4 0x5 0x0 93 + #define MX7D_PAD_GPIO1_IO10__KPP_COL6 0x001C 0x0274 0x060C 0x6 0x0 94 + #define MX7D_PAD_GPIO1_IO10__PWM3_OUT 0x001C 0x0274 0x0000 0x7 0x0 95 + #define MX7D_PAD_GPIO1_IO11__GPIO1_IO11 0x0020 0x0278 0x0000 0x0 0x0 96 + #define MX7D_PAD_GPIO1_IO11__SD3_LCTL 0x0020 0x0278 0x0000 0x1 0x0 97 + #define MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x0020 0x0278 0x0000 0x2 0x0 98 + #define MX7D_PAD_GPIO1_IO11__UART3_DCE_CTS 0x0020 0x0278 0x0000 0x3 0x0 99 + #define MX7D_PAD_GPIO1_IO11__UART3_DTE_RTS 0x0020 0x0278 0x0700 0x3 0x1 100 + #define MX7D_PAD_GPIO1_IO11__I2C4_SDA 0x0020 0x0278 0x05F0 0x4 0x0 101 + #define MX7D_PAD_GPIO1_IO11__FLEXTIMER1_PHB 0x0020 0x0278 0x05A8 0x5 0x0 102 + #define MX7D_PAD_GPIO1_IO11__KPP_ROW6 0x0020 0x0278 0x062C 0x6 0x0 103 + #define MX7D_PAD_GPIO1_IO11__PWM4_OUT 0x0020 0x0278 0x0000 0x7 0x0 104 + #define MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x0024 0x027C 0x0000 0x0 0x0 105 + #define MX7D_PAD_GPIO1_IO12__SD2_VSELECT 0x0024 0x027C 0x0000 0x1 0x0 106 + #define MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x0024 0x027C 0x0564 0x2 0x0 107 + #define MX7D_PAD_GPIO1_IO12__FLEXCAN1_RX 0x0024 0x027C 0x04DC 0x3 0x0 108 + #define MX7D_PAD_GPIO1_IO12__CM4_NMI 0x0024 0x027C 0x0000 0x4 0x0 109 + #define MX7D_PAD_GPIO1_IO12__CCM_EXT_CLK1 0x0024 0x027C 0x04E4 0x5 0x0 110 + #define MX7D_PAD_GPIO1_IO12__SNVS_VIO_5 0x0024 0x027C 0x0000 0x6 0x0 111 + #define MX7D_PAD_GPIO1_IO12__USB_OTG1_ID 0x0024 0x027C 0x0734 0x7 0x0 112 + #define MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x0028 0x0280 0x0000 0x0 0x0 113 + #define MX7D_PAD_GPIO1_IO13__SD3_VSELECT 0x0028 0x0280 0x0000 0x1 0x0 114 + #define MX7D_PAD_GPIO1_IO13__CCM_ENET_REF_CLK2 0x0028 0x0280 0x0570 0x2 0x0 115 + #define MX7D_PAD_GPIO1_IO13__FLEXCAN1_TX 0x0028 0x0280 0x0000 0x3 0x0 116 + #define MX7D_PAD_GPIO1_IO13__CCM_PMIC_READY 0x0028 0x0280 0x04F4 0x4 0x1 117 + #define MX7D_PAD_GPIO1_IO13__CCM_EXT_CLK2 0x0028 0x0280 0x04E8 0x5 0x0 118 + #define MX7D_PAD_GPIO1_IO13__SNVS_VIO_5_CTL 0x0028 0x0280 0x0000 0x6 0x0 119 + #define MX7D_PAD_GPIO1_IO13__USB_OTG2_ID 0x0028 0x0280 0x0730 0x7 0x0 120 + #define MX7D_PAD_GPIO1_IO14__GPIO1_IO14 0x002C 0x0284 0x0000 0x0 0x0 121 + #define MX7D_PAD_GPIO1_IO14__SD3_CD_B 0x002C 0x0284 0x0738 0x1 0x0 122 + #define MX7D_PAD_GPIO1_IO14__ENET2_MDIO 0x002C 0x0284 0x0574 0x2 0x0 123 + #define MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX 0x002C 0x0284 0x04E0 0x3 0x0 124 + #define MX7D_PAD_GPIO1_IO14__WDOG3_WDOG_B 0x002C 0x0284 0x0000 0x4 0x0 125 + #define MX7D_PAD_GPIO1_IO14__CCM_EXT_CLK3 0x002C 0x0284 0x04EC 0x5 0x0 126 + #define MX7D_PAD_GPIO1_IO14__SDMA_EXT_EVENT0 0x002C 0x0284 0x06D8 0x6 0x0 127 + #define MX7D_PAD_GPIO1_IO15__GPIO1_IO15 0x0030 0x0288 0x0000 0x0 0x0 128 + #define MX7D_PAD_GPIO1_IO15__SD3_WP 0x0030 0x0288 0x073C 0x1 0x0 129 + #define MX7D_PAD_GPIO1_IO15__ENET2_MDC 0x0030 0x0288 0x0000 0x2 0x0 130 + #define MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX 0x0030 0x0288 0x0000 0x3 0x0 131 + #define MX7D_PAD_GPIO1_IO15__WDOG4_WDOG_B 0x0030 0x0288 0x0000 0x4 0x0 132 + #define MX7D_PAD_GPIO1_IO15__CCM_EXT_CLK4 0x0030 0x0288 0x04F0 0x5 0x0 133 + #define MX7D_PAD_GPIO1_IO15__SDMA_EXT_EVENT1 0x0030 0x0288 0x06DC 0x6 0x0 18 134 #define MX7D_PAD_EPDC_DATA00__EPDC_DATA0 0x0034 0x02A4 0x0000 0x0 0x0 19 135 #define MX7D_PAD_EPDC_DATA00__SIM1_PORT2_TRXD 0x0034 0x02A4 0x0000 0x1 0x0 20 136 #define MX7D_PAD_EPDC_DATA00__QSPI_A_DATA0 0x0034 0x02A4 0x0000 0x2 0x0 ··· 569 453 #define MX7D_PAD_LCD_DATA23__EIM_ADDR26 0x0124 0x0394 0x0000 0x4 0x0 570 454 #define MX7D_PAD_LCD_DATA23__GPIO3_IO28 0x0124 0x0394 0x0000 0x5 0x0 571 455 #define MX7D_PAD_LCD_DATA23__I2C4_SDA 0x0124 0x0394 0x05F0 0x6 0x1 572 - #define MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX 0x0128 0x0398 0x0000 0x0 0x0 456 + #define MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX 0x0128 0x0398 0x06F4 0x0 0x0 573 457 #define MX7D_PAD_UART1_RX_DATA__UART1_DTE_TX 0x0128 0x0398 0x0000 0x0 0x0 574 458 #define MX7D_PAD_UART1_RX_DATA__I2C1_SCL 0x0128 0x0398 0x05D4 0x1 0x0 575 459 #define MX7D_PAD_UART1_RX_DATA__CCM_PMIC_READY 0x0128 0x0398 0x0000 0x2 0x0 ··· 585 469 #define MX7D_PAD_UART1_TX_DATA__ENET2_1588_EVENT0_OUT 0x012C 0x039C 0x0000 0x4 0x0 586 470 #define MX7D_PAD_UART1_TX_DATA__GPIO4_IO1 0x012C 0x039C 0x0000 0x5 0x0 587 471 #define MX7D_PAD_UART1_TX_DATA__ENET1_MDC 0x012C 0x039C 0x0000 0x6 0x0 588 - #define MX7D_PAD_UART2_RX_DATA__UART2_DCE_RX 0x0130 0x03A0 0x0000 0x0 0x0 472 + #define MX7D_PAD_UART2_RX_DATA__UART2_DCE_RX 0x0130 0x03A0 0x06FC 0x0 0x2 589 473 #define MX7D_PAD_UART2_RX_DATA__UART2_DTE_TX 0x0130 0x03A0 0x0000 0x0 0x0 590 474 #define MX7D_PAD_UART2_RX_DATA__I2C2_SCL 0x0130 0x03A0 0x05DC 0x1 0x0 591 475 #define MX7D_PAD_UART2_RX_DATA__SAI3_RX_BCLK 0x0130 0x03A0 0x0000 0x2 0x0 ··· 617 501 #define MX7D_PAD_UART3_TX_DATA__ENET1_1588_EVENT0_OUT 0x013C 0x03AC 0x0000 0x4 0x0 618 502 #define MX7D_PAD_UART3_TX_DATA__GPIO4_IO5 0x013C 0x03AC 0x0000 0x5 0x0 619 503 #define MX7D_PAD_UART3_TX_DATA__SD2_LCTL 0x013C 0x03AC 0x0000 0x6 0x0 620 - #define MX7D_PAD_UART3_RTS_B__UART3_DCE_RTS 0x0140 0x03B0 0x0000 0x0 0x0 504 + #define MX7D_PAD_UART3_RTS_B__UART3_DCE_RTS 0x0140 0x03B0 0x0700 0x0 0x2 621 505 #define MX7D_PAD_UART3_RTS_B__UART3_DTE_CTS 0x0140 0x03B0 0x0000 0x0 0x0 622 506 #define MX7D_PAD_UART3_RTS_B__USB_OTG2_OC 0x0140 0x03B0 0x0728 0x1 0x0 623 507 #define MX7D_PAD_UART3_RTS_B__SAI3_TX_DATA0 0x0140 0x03B0 0x0000 0x2 0x0
+99 -1
arch/arm/boot/dts/imx7d-sdb.dts
··· 101 101 arm-supply = <&sw1a_reg>; 102 102 }; 103 103 104 + &fec1 { 105 + pinctrl-names = "default"; 106 + pinctrl-0 = <&pinctrl_enet1>; 107 + assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>, 108 + <&clks IMX7D_ENET1_TIME_ROOT_CLK>; 109 + assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>; 110 + assigned-clock-rates = <0>, <100000000>; 111 + phy-mode = "rgmii"; 112 + phy-handle = <&ethphy0>; 113 + fsl,magic-packet; 114 + status = "okay"; 115 + 116 + mdio { 117 + #address-cells = <1>; 118 + #size-cells = <0>; 119 + 120 + ethphy0: ethernet-phy@0 { 121 + reg = <0>; 122 + }; 123 + 124 + ethphy1: ethernet-phy@1 { 125 + reg = <1>; 126 + }; 127 + }; 128 + }; 129 + 130 + &fec2 { 131 + pinctrl-names = "default"; 132 + pinctrl-0 = <&pinctrl_enet2>; 133 + assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>, 134 + <&clks IMX7D_ENET2_TIME_ROOT_CLK>; 135 + assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>; 136 + assigned-clock-rates = <0>, <100000000>; 137 + phy-mode = "rgmii"; 138 + phy-handle = <&ethphy1>; 139 + fsl,magic-packet; 140 + status = "okay"; 141 + }; 142 + 104 143 &i2c1 { 105 144 pinctrl-names = "default"; 106 145 pinctrl-0 = <&pinctrl_i2c1>; ··· 270 231 status = "okay"; 271 232 }; 272 233 234 + &usbotg1 { 235 + vbus-supply = <&reg_usb_otg1_vbus>; 236 + status = "okay"; 237 + }; 238 + 239 + &usbotg2 { 240 + vbus-supply = <&reg_usb_otg2_vbus>; 241 + dr_mode = "host"; 242 + status = "okay"; 243 + }; 244 + 273 245 &usdhc1 { 274 246 pinctrl-names = "default"; 275 247 pinctrl-0 = <&pinctrl_usdhc1>; ··· 291 241 status = "okay"; 292 242 }; 293 243 244 + &usdhc3 { 245 + pinctrl-names = "default", "state_100mhz", "state_200mhz"; 246 + pinctrl-0 = <&pinctrl_usdhc3>; 247 + pinctrl-1 = <&pinctrl_usdhc3_100mhz>; 248 + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; 249 + assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>; 250 + assigned-clock-rates = <400000000>; 251 + bus-width = <8>; 252 + fsl,tuning-step = <2>; 253 + non-removable; 254 + status = "okay"; 255 + }; 256 + 294 257 &iomuxc { 295 258 pinctrl-names = "default"; 296 259 pinctrl-0 = <&pinctrl_hog>; 297 260 298 261 imx7d-sdb { 262 + pinctrl_enet1: enet1grp { 263 + fsl,pins = < 264 + MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x3 265 + MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x3 266 + MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC 0x1 267 + MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x1 268 + MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x1 269 + MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2 0x1 270 + MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3 0x1 271 + MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x1 272 + MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC 0x1 273 + MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x1 274 + MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x1 275 + MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2 0x1 276 + MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3 0x1 277 + MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1 278 + >; 279 + }; 280 + 281 + pinctrl_enet2: enet2grp { 282 + fsl,pins = < 283 + MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC 0x1 284 + MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0 0x1 285 + MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1 0x1 286 + MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2 0x1 287 + MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3 0x1 288 + MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL 0x1 289 + MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC 0x1 290 + MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0 0x1 291 + MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1 0x1 292 + MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2 0x1 293 + MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3 0x1 294 + MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL 0x1 295 + >; 296 + }; 297 + 299 298 pinctrl_hog: hoggrp { 300 299 fsl,pins = < 301 300 MX7D_PAD_UART3_CTS_B__GPIO4_IO7 0x14 ··· 379 280 MX7D_PAD_SAI1_RX_SYNC__I2C4_SCL 0x4000007f 380 281 >; 381 282 }; 382 - 383 283 384 284 pinctrl_uart1: uart1grp { 385 285 fsl,pins = <
+165
arch/arm/boot/dts/imx7d.dtsi
··· 446 446 status = "disabled"; 447 447 }; 448 448 449 + iomuxc_lpsr: iomuxc-lpsr@302c0000 { 450 + compatible = "fsl,imx7d-iomuxc-lpsr"; 451 + reg = <0x302c0000 0x10000>; 452 + fsl,input-sel = <&iomuxc>; 453 + }; 454 + 449 455 gpt1: gpt@302d0000 { 450 456 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 451 457 reg = <0x302d0000 0x10000>; ··· 573 567 reg = <0x30390000 0x10000>; 574 568 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 575 569 #reset-cells = <1>; 570 + }; 571 + }; 572 + 573 + aips2: aips-bus@30400000 { 574 + compatible = "fsl,aips-bus", "simple-bus"; 575 + #address-cells = <1>; 576 + #size-cells = <1>; 577 + reg = <0x30400000 0x400000>; 578 + ranges; 579 + 580 + pwm1: pwm@30660000 { 581 + compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 582 + reg = <0x30660000 0x10000>; 583 + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 584 + clocks = <&clks IMX7D_PWM1_ROOT_CLK>, 585 + <&clks IMX7D_PWM1_ROOT_CLK>; 586 + clock-names = "ipg", "per"; 587 + #pwm-cells = <2>; 588 + status = "disabled"; 589 + }; 590 + 591 + pwm2: pwm@30670000 { 592 + compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 593 + reg = <0x30670000 0x10000>; 594 + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 595 + clocks = <&clks IMX7D_PWM2_ROOT_CLK>, 596 + <&clks IMX7D_PWM2_ROOT_CLK>; 597 + clock-names = "ipg", "per"; 598 + #pwm-cells = <2>; 599 + status = "disabled"; 600 + }; 601 + 602 + pwm3: pwm@30680000 { 603 + compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 604 + reg = <0x30680000 0x10000>; 605 + interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 606 + clocks = <&clks IMX7D_PWM3_ROOT_CLK>, 607 + <&clks IMX7D_PWM3_ROOT_CLK>; 608 + clock-names = "ipg", "per"; 609 + #pwm-cells = <2>; 610 + status = "disabled"; 611 + }; 612 + 613 + pwm4: pwm@30690000 { 614 + compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 615 + reg = <0x30690000 0x10000>; 616 + interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 617 + clocks = <&clks IMX7D_PWM4_ROOT_CLK>, 618 + <&clks IMX7D_PWM4_ROOT_CLK>; 619 + clock-names = "ipg", "per"; 620 + #pwm-cells = <2>; 621 + status = "disabled"; 576 622 }; 577 623 }; 578 624 ··· 752 694 status = "disabled"; 753 695 }; 754 696 697 + usbotg1: usb@30b10000 { 698 + compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 699 + reg = <0x30b10000 0x200>; 700 + interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 701 + clocks = <&clks IMX7D_USB_CTRL_CLK>; 702 + fsl,usbphy = <&usbphynop1>; 703 + fsl,usbmisc = <&usbmisc1 0>; 704 + phy-clkgate-delay-us = <400>; 705 + status = "disabled"; 706 + }; 707 + 708 + usbotg2: usb@30b20000 { 709 + compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 710 + reg = <0x30b20000 0x200>; 711 + interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 712 + clocks = <&clks IMX7D_USB_CTRL_CLK>; 713 + fsl,usbphy = <&usbphynop2>; 714 + fsl,usbmisc = <&usbmisc2 0>; 715 + phy-clkgate-delay-us = <400>; 716 + status = "disabled"; 717 + }; 718 + 719 + usbh: usb@30b30000 { 720 + compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 721 + reg = <0x30b30000 0x200>; 722 + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 723 + clocks = <&clks IMX7D_USB_CTRL_CLK>; 724 + fsl,usbphy = <&usbphynop3>; 725 + fsl,usbmisc = <&usbmisc3 0>; 726 + phy_type = "hsic"; 727 + dr_mode = "host"; 728 + phy-clkgate-delay-us = <400>; 729 + status = "disabled"; 730 + }; 731 + 732 + usbmisc1: usbmisc@30b10200 { 733 + #index-cells = <1>; 734 + compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc"; 735 + reg = <0x30b10200 0x200>; 736 + }; 737 + 738 + usbmisc2: usbmisc@30b20200 { 739 + #index-cells = <1>; 740 + compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc"; 741 + reg = <0x30b20200 0x200>; 742 + }; 743 + 744 + usbmisc3: usbmisc@30b30200 { 745 + #index-cells = <1>; 746 + compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc"; 747 + reg = <0x30b30200 0x200>; 748 + }; 749 + 750 + usbphynop1: usbphynop1 { 751 + compatible = "usb-nop-xceiv"; 752 + clocks = <&clks IMX7D_USB_PHY1_CLK>; 753 + clock-names = "main_clk"; 754 + }; 755 + 756 + usbphynop2: usbphynop2 { 757 + compatible = "usb-nop-xceiv"; 758 + clocks = <&clks IMX7D_USB_PHY2_CLK>; 759 + clock-names = "main_clk"; 760 + }; 761 + 762 + usbphynop3: usbphynop3 { 763 + compatible = "usb-nop-xceiv"; 764 + clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>; 765 + clock-names = "main_clk"; 766 + }; 767 + 755 768 usdhc1: usdhc@30b40000 { 756 769 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc"; 757 770 reg = <0x30b40000 0x10000>; ··· 856 727 <&clks IMX7D_USDHC3_ROOT_CLK>; 857 728 clock-names = "ipg", "ahb", "per"; 858 729 bus-width = <4>; 730 + status = "disabled"; 731 + }; 732 + 733 + fec1: ethernet@30be0000 { 734 + compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec"; 735 + reg = <0x30be0000 0x10000>; 736 + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 737 + <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 738 + <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 739 + clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>, 740 + <&clks IMX7D_ENET_AXI_ROOT_CLK>, 741 + <&clks IMX7D_ENET1_TIME_ROOT_CLK>, 742 + <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, 743 + <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>; 744 + clock-names = "ipg", "ahb", "ptp", 745 + "enet_clk_ref", "enet_out"; 746 + fsl,num-tx-queues=<3>; 747 + fsl,num-rx-queues=<3>; 748 + status = "disabled"; 749 + }; 750 + 751 + fec2: ethernet@30bf0000 { 752 + compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec"; 753 + reg = <0x30bf0000 0x10000>; 754 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 755 + <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 756 + <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 757 + clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>, 758 + <&clks IMX7D_ENET_AXI_ROOT_CLK>, 759 + <&clks IMX7D_ENET2_TIME_ROOT_CLK>, 760 + <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, 761 + <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>; 762 + clock-names = "ipg", "ahb", "ptp", 763 + "enet_clk_ref", "enet_out"; 764 + fsl,num-tx-queues=<3>; 765 + fsl,num-rx-queues=<3>; 859 766 status = "disabled"; 860 767 }; 861 768 };
+13
arch/arm/boot/dts/ls1021a-twr.dts
··· 144 144 145 145 &i2c0 { 146 146 status = "okay"; 147 + 148 + ina220@40 { 149 + compatible = "ti,ina220"; 150 + reg = <0x40>; 151 + shunt-resistor = <1000>; 152 + }; 153 + 154 + ina220@41 { 155 + compatible = "ti,ina220"; 156 + reg = <0x41>; 157 + shunt-resistor = <1000>; 158 + }; 159 + 147 160 }; 148 161 149 162 &i2c1 {
+44
arch/arm/boot/dts/ls1021a.dtsi
··· 53 53 interrupt-parent = <&gic>; 54 54 55 55 aliases { 56 + crypto = &crypto; 56 57 ethernet0 = &enet0; 57 58 ethernet1 = &enet1; 58 59 ethernet2 = &enet2; ··· 147 146 compatible = "fsl,ls1021a-scfg", "syscon"; 148 147 reg = <0x0 0x1570000 0x0 0x10000>; 149 148 big-endian; 149 + }; 150 + 151 + crypto: crypto@1700000 { 152 + compatible = "fsl,sec-v5.0", "fsl,sec-v4.0"; 153 + fsl,sec-era = <7>; 154 + #address-cells = <1>; 155 + #size-cells = <1>; 156 + reg = <0x0 0x1700000 0x0 0x100000>; 157 + ranges = <0x0 0x0 0x1700000 0x100000>; 158 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 159 + 160 + sec_jr0: jr@10000 { 161 + compatible = "fsl,sec-v5.0-job-ring", 162 + "fsl,sec-v4.0-job-ring"; 163 + reg = <0x10000 0x10000>; 164 + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 165 + }; 166 + 167 + sec_jr1: jr@20000 { 168 + compatible = "fsl,sec-v5.0-job-ring", 169 + "fsl,sec-v4.0-job-ring"; 170 + reg = <0x20000 0x10000>; 171 + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 172 + }; 173 + 174 + sec_jr2: jr@30000 { 175 + compatible = "fsl,sec-v5.0-job-ring", 176 + "fsl,sec-v4.0-job-ring"; 177 + reg = <0x30000 0x10000>; 178 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 179 + }; 180 + 181 + sec_jr3: jr@40000 { 182 + compatible = "fsl,sec-v5.0-job-ring", 183 + "fsl,sec-v4.0-job-ring"; 184 + reg = <0x40000 0x10000>; 185 + interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 186 + }; 187 + 150 188 }; 151 189 152 190 clockgen: clocking@1ee1000 { ··· 445 405 model = "eTSEC"; 446 406 fsl,magic-packet; 447 407 ranges; 408 + dma-coherent; 448 409 449 410 queue-group@2d10000 { 450 411 #address-cells = <2>; ··· 474 433 interrupt-parent = <&gic>; 475 434 model = "eTSEC"; 476 435 ranges; 436 + dma-coherent; 477 437 478 438 queue-group@2d50000 { 479 439 #address-cells = <2>; ··· 503 461 interrupt-parent = <&gic>; 504 462 model = "eTSEC"; 505 463 ranges; 464 + dma-coherent; 506 465 507 466 queue-group@2d90000 { 508 467 #address-cells = <2>; ··· 537 494 reg = <0x0 0x3100000 0x0 0x10000>; 538 495 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 539 496 dr_mode = "host"; 497 + snps,quirk-frame-length-adjustment = <0x20>; 540 498 }; 541 499 }; 542 500 };
+39
arch/arm/boot/dts/vf-colibri.dtsi
··· 52 52 pinctrl-0 = <&pinctrl_i2c0>; 53 53 }; 54 54 55 + &nfc { 56 + assigned-clocks = <&clks VF610_CLK_NFC>; 57 + assigned-clock-rates = <33000000>; 58 + pinctrl-names = "default"; 59 + pinctrl-0 = <&pinctrl_nfc>; 60 + status = "okay"; 61 + 62 + nand@0 { 63 + compatible = "fsl,vf610-nfc-nandcs"; 64 + reg = <0>; 65 + #address-cells = <1>; 66 + #size-cells = <1>; 67 + nand-bus-width = <8>; 68 + nand-ecc-mode = "hw"; 69 + nand-ecc-strength = <32>; 70 + nand-ecc-step-size = <2048>; 71 + nand-on-flash-bbt; 72 + }; 73 + }; 74 + 55 75 &pwm0 { 56 76 pinctrl-names = "default"; 57 77 pinctrl-0 = <&pinctrl_pwm0>; ··· 173 153 fsl,pins = < 174 154 VF610_PAD_PTB14__I2C0_SCL 0x37ff 175 155 VF610_PAD_PTB15__I2C0_SDA 0x37ff 156 + >; 157 + }; 158 + 159 + pinctrl_nfc: nfcgrp { 160 + fsl,pins = < 161 + VF610_PAD_PTD23__NF_IO7 0x28df 162 + VF610_PAD_PTD22__NF_IO6 0x28df 163 + VF610_PAD_PTD21__NF_IO5 0x28df 164 + VF610_PAD_PTD20__NF_IO4 0x28df 165 + VF610_PAD_PTD19__NF_IO3 0x28df 166 + VF610_PAD_PTD18__NF_IO2 0x28df 167 + VF610_PAD_PTD17__NF_IO1 0x28df 168 + VF610_PAD_PTD16__NF_IO0 0x28df 169 + VF610_PAD_PTB24__NF_WE_B 0x28c2 170 + VF610_PAD_PTB25__NF_CE0_B 0x28c2 171 + VF610_PAD_PTB27__NF_RE_B 0x28c2 172 + VF610_PAD_PTC26__NF_RB_B 0x283d 173 + VF610_PAD_PTC27__NF_ALE 0x28c2 174 + VF610_PAD_PTC28__NF_CLE 0x28c2 176 175 >; 177 176 }; 178 177
+5
arch/arm/boot/dts/vf500-colibri-eval-v3.dts
··· 15 15 model = "Toradex Colibri VF50 on Colibri Evaluation Board"; 16 16 compatible = "toradex,vf500-colibri_vf50-on-eval", "toradex,vf500-colibri_vf50", "fsl,vf500"; 17 17 }; 18 + 19 + &touchscreen { 20 + vf50-ts-min-pressure = <200>; 21 + status = "okay"; 22 + };
+47
arch/arm/boot/dts/vf500-colibri.dtsi
··· 17 17 memory { 18 18 reg = <0x80000000 0x8000000>; 19 19 }; 20 + 21 + touchscreen: vf50-touchscreen { 22 + compatible = "toradex,vf50-touchscreen"; 23 + io-channels = <&adc1 0>,<&adc0 0>, 24 + <&adc0 1>,<&adc1 2>; 25 + xp-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; 26 + xm-gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; 27 + yp-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; 28 + ym-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>; 29 + interrupt-parent = <&gpio0>; 30 + interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 31 + pinctrl-names = "idle","default","gpios"; 32 + pinctrl-0 = <&pinctrl_touchctrl_idle>; 33 + pinctrl-1 = <&pinctrl_touchctrl_default>; 34 + pinctrl-2 = <&pinctrl_touchctrl_gpios>; 35 + vf50-ts-min-pressure = <200>; 36 + status = "disabled"; 37 + }; 38 + }; 39 + 40 + &iomuxc { 41 + vf610-colibri { 42 + pinctrl_touchctrl_idle: touchctrl_idle { 43 + fsl,pins = < 44 + VF610_PAD_PTA18__GPIO_8 0x006d 45 + VF610_PAD_PTA19__GPIO_9 0x006c 46 + >; 47 + }; 48 + 49 + pinctrl_touchctrl_default: touchctrl_default { 50 + fsl,pins = < 51 + VF610_PAD_PTA18__ADC0_SE0 0x0040 52 + VF610_PAD_PTA19__ADC0_SE1 0x0040 53 + VF610_PAD_PTA16__ADC1_SE0 0x0040 54 + VF610_PAD_PTB2__ADC1_SE2 0x0040 55 + >; 56 + }; 57 + 58 + pinctrl_touchctrl_gpios: touchctrl_gpios { 59 + fsl,pins = < 60 + VF610_PAD_PTA23__GPIO_13 0x22e9 61 + VF610_PAD_PTB23__GPIO_93 0x22e9 62 + VF610_PAD_PTA22__GPIO_12 0x22e9 63 + VF610_PAD_PTA11__GPIO_4 0x22e9 64 + >; 65 + }; 66 + }; 20 67 };
+47
arch/arm/boot/dts/vf610-twr.dts
··· 237 237 >; 238 238 }; 239 239 240 + pinctrl_nfc: nfcgrp { 241 + fsl,pins = < 242 + VF610_PAD_PTD31__NF_IO15 0x28df 243 + VF610_PAD_PTD30__NF_IO14 0x28df 244 + VF610_PAD_PTD29__NF_IO13 0x28df 245 + VF610_PAD_PTD28__NF_IO12 0x28df 246 + VF610_PAD_PTD27__NF_IO11 0x28df 247 + VF610_PAD_PTD26__NF_IO10 0x28df 248 + VF610_PAD_PTD25__NF_IO9 0x28df 249 + VF610_PAD_PTD24__NF_IO8 0x28df 250 + VF610_PAD_PTD23__NF_IO7 0x28df 251 + VF610_PAD_PTD22__NF_IO6 0x28df 252 + VF610_PAD_PTD21__NF_IO5 0x28df 253 + VF610_PAD_PTD20__NF_IO4 0x28df 254 + VF610_PAD_PTD19__NF_IO3 0x28df 255 + VF610_PAD_PTD18__NF_IO2 0x28df 256 + VF610_PAD_PTD17__NF_IO1 0x28df 257 + VF610_PAD_PTD16__NF_IO0 0x28df 258 + VF610_PAD_PTB24__NF_WE_B 0x28c2 259 + VF610_PAD_PTB25__NF_CE0_B 0x28c2 260 + VF610_PAD_PTB27__NF_RE_B 0x28c2 261 + VF610_PAD_PTC26__NF_RB_B 0x283d 262 + VF610_PAD_PTC27__NF_ALE 0x28c2 263 + VF610_PAD_PTC28__NF_CLE 0x28c2 264 + >; 265 + }; 266 + 240 267 pinctrl_pwm0: pwm0grp { 241 268 fsl,pins = < 242 269 VF610_PAD_PTB0__FTM0_CH0 0x1582 ··· 298 271 VF610_PAD_PTB7__UART2_RX 0x21a1 299 272 >; 300 273 }; 274 + }; 275 + }; 276 + 277 + &nfc { 278 + assigned-clocks = <&clks VF610_CLK_NFC>; 279 + assigned-clock-rates = <33000000>; 280 + pinctrl-names = "default"; 281 + pinctrl-0 = <&pinctrl_nfc>; 282 + status = "okay"; 283 + 284 + nand@0 { 285 + compatible = "fsl,vf610-nfc-nandcs"; 286 + reg = <0>; 287 + #address-cells = <1>; 288 + #size-cells = <1>; 289 + nand-bus-width = <16>; 290 + nand-ecc-mode = "hw"; 291 + nand-ecc-strength = <24>; 292 + nand-ecc-step-size = <2048>; 293 + nand-on-flash-bbt; 301 294 }; 302 295 }; 303 296
+11
arch/arm/boot/dts/vfxxx.dtsi
··· 564 564 status = "disabled"; 565 565 }; 566 566 567 + nfc: nand@400e0000 { 568 + #address-cells = <1>; 569 + #size-cells = <0>; 570 + compatible = "fsl,vf610-nfc"; 571 + reg = <0x400e0000 0x4000>; 572 + interrupts = <83 IRQ_TYPE_LEVEL_HIGH>; 573 + clocks = <&clks VF610_CLK_NFC>; 574 + clock-names = "nfc"; 575 + status = "disabled"; 576 + }; 577 + 567 578 i2c2: i2c@400e6000 { 568 579 #address-cells = <1>; 569 580 #size-cells = <0>;
+12
drivers/clk/imx/clk-imx25.c
··· 86 86 87 87 static struct clk *clk[clk_max]; 88 88 89 + static struct clk ** const uart_clks[] __initconst = { 90 + &clk[uart_ipg_per], 91 + &clk[uart1_ipg], 92 + &clk[uart2_ipg], 93 + &clk[uart3_ipg], 94 + &clk[uart4_ipg], 95 + &clk[uart5_ipg], 96 + NULL 97 + }; 98 + 89 99 static int __init __mx25_clocks_init(unsigned long osc_rate, 90 100 void __iomem *ccm_base) 91 101 { ··· 242 232 * is used on some imx25 board designs to clock the audio codec. 243 233 */ 244 234 clk_set_parent(clk[cko_sel], clk[ipg]); 235 + 236 + imx_register_uart_clocks(uart_clks); 245 237 246 238 return 0; 247 239 }
+13
drivers/clk/imx/clk-imx27.c
··· 47 47 static struct clk *clk[IMX27_CLK_MAX]; 48 48 static struct clk_onecell_data clk_data; 49 49 50 + static struct clk ** const uart_clks[] __initconst = { 51 + &clk[IMX27_CLK_PER1_GATE], 52 + &clk[IMX27_CLK_UART1_IPG_GATE], 53 + &clk[IMX27_CLK_UART2_IPG_GATE], 54 + &clk[IMX27_CLK_UART3_IPG_GATE], 55 + &clk[IMX27_CLK_UART4_IPG_GATE], 56 + &clk[IMX27_CLK_UART5_IPG_GATE], 57 + &clk[IMX27_CLK_UART6_IPG_GATE], 58 + NULL 59 + }; 60 + 50 61 static void __init _mx27_clocks_init(unsigned long fref) 51 62 { 52 63 BUG_ON(!ccm); ··· 173 162 clk_register_clkdev(clk[IMX27_CLK_CPU_DIV], NULL, "cpu0"); 174 163 175 164 clk_prepare_enable(clk[IMX27_CLK_EMI_AHB_GATE]); 165 + 166 + imx_register_uart_clocks(uart_clks); 176 167 177 168 imx_print_silicon_rev("i.MX27", mx27_revision()); 178 169 }
+28 -7
drivers/clk/imx/clk-imx31.c
··· 62 62 static struct clk *clk[clk_max]; 63 63 static struct clk_onecell_data clk_data; 64 64 65 - int __init mx31_clocks_init(unsigned long fref) 65 + static struct clk ** const uart_clks[] __initconst = { 66 + &clk[ipg], 67 + &clk[uart1_gate], 68 + &clk[uart2_gate], 69 + &clk[uart3_gate], 70 + &clk[uart4_gate], 71 + &clk[uart5_gate], 72 + NULL 73 + }; 74 + 75 + static void __init _mx31_clocks_init(unsigned long fref) 66 76 { 67 77 void __iomem *base; 68 78 struct device_node *np; ··· 142 132 143 133 imx_check_clocks(clk, ARRAY_SIZE(clk)); 144 134 135 + clk_set_parent(clk[csi], clk[upll]); 136 + clk_prepare_enable(clk[emi_gate]); 137 + clk_prepare_enable(clk[iim_gate]); 138 + mx31_revision(); 139 + clk_disable_unprepare(clk[iim_gate]); 140 + 145 141 np = of_find_compatible_node(NULL, NULL, "fsl,imx31-ccm"); 146 142 147 143 if (np) { ··· 155 139 clk_data.clk_num = ARRAY_SIZE(clk); 156 140 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); 157 141 } 142 + } 143 + 144 + int __init mx31_clocks_init(void) 145 + { 146 + u32 fref = 26000000; /* default */ 147 + 148 + _mx31_clocks_init(fref); 158 149 159 150 clk_register_clkdev(clk[gpt_gate], "per", "imx-gpt.0"); 160 151 clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0"); ··· 217 194 clk_register_clkdev(clk[sdma_gate], NULL, "imx31-sdma"); 218 195 clk_register_clkdev(clk[iim_gate], "iim", NULL); 219 196 220 - clk_set_parent(clk[csi], clk[upll]); 221 - clk_prepare_enable(clk[emi_gate]); 222 - clk_prepare_enable(clk[iim_gate]); 223 - mx31_revision(); 224 - clk_disable_unprepare(clk[iim_gate]); 225 197 198 + imx_register_uart_clocks(uart_clks); 226 199 mxc_timer_init(MX31_GPT1_BASE_ADDR, MX31_INT_GPT, GPT_TYPE_IMX31); 227 200 228 201 return 0; ··· 237 218 break; 238 219 } 239 220 240 - return mx31_clocks_init(fref); 221 + _mx31_clocks_init(fref); 222 + 223 + return 0; 241 224 }
+37 -22
drivers/clk/imx/clk-imx35.c
··· 84 84 85 85 static struct clk *clk[clk_max]; 86 86 87 - int __init mx35_clocks_init(void) 87 + static struct clk ** const uart_clks[] __initconst = { 88 + &clk[ipg], 89 + &clk[uart1_gate], 90 + &clk[uart2_gate], 91 + &clk[uart3_gate], 92 + NULL 93 + }; 94 + 95 + static void __init _mx35_clocks_init(void) 88 96 { 89 97 void __iomem *base; 90 98 u32 pdr0, consumer_sel, hsp_sel; ··· 228 220 229 221 imx_check_clocks(clk, ARRAY_SIZE(clk)); 230 222 223 + clk_prepare_enable(clk[spba_gate]); 224 + clk_prepare_enable(clk[gpio1_gate]); 225 + clk_prepare_enable(clk[gpio2_gate]); 226 + clk_prepare_enable(clk[gpio3_gate]); 227 + clk_prepare_enable(clk[iim_gate]); 228 + clk_prepare_enable(clk[emi_gate]); 229 + clk_prepare_enable(clk[max_gate]); 230 + clk_prepare_enable(clk[iomuxc_gate]); 231 + 232 + /* 233 + * SCC is needed to boot via mmc after a watchdog reset. The clock code 234 + * before conversion to common clk also enabled UART1 (which isn't 235 + * handled here and not needed for mmc) and IIM (which is enabled 236 + * unconditionally above). 237 + */ 238 + clk_prepare_enable(clk[scc_gate]); 239 + 240 + imx_register_uart_clocks(uart_clks); 241 + 242 + imx_print_silicon_rev("i.MX35", mx35_revision()); 243 + } 244 + 245 + int __init mx35_clocks_init(void) 246 + { 247 + _mx35_clocks_init(); 248 + 231 249 clk_register_clkdev(clk[pata_gate], NULL, "pata_imx"); 232 250 clk_register_clkdev(clk[can1_gate], NULL, "flexcan.0"); 233 251 clk_register_clkdev(clk[can2_gate], NULL, "flexcan.1"); ··· 313 279 clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); 314 280 clk_register_clkdev(clk[admux_gate], "audmux", NULL); 315 281 316 - clk_prepare_enable(clk[spba_gate]); 317 - clk_prepare_enable(clk[gpio1_gate]); 318 - clk_prepare_enable(clk[gpio2_gate]); 319 - clk_prepare_enable(clk[gpio3_gate]); 320 - clk_prepare_enable(clk[iim_gate]); 321 - clk_prepare_enable(clk[emi_gate]); 322 - clk_prepare_enable(clk[max_gate]); 323 - clk_prepare_enable(clk[iomuxc_gate]); 324 - 325 - /* 326 - * SCC is needed to boot via mmc after a watchdog reset. The clock code 327 - * before conversion to common clk also enabled UART1 (which isn't 328 - * handled here and not needed for mmc) and IIM (which is enabled 329 - * unconditionally above). 330 - */ 331 - clk_prepare_enable(clk[scc_gate]); 332 - 333 - imx_print_silicon_rev("i.MX35", mx35_revision()); 334 - 335 282 mxc_timer_init(MX35_GPT1_BASE_ADDR, MX35_INT_GPT, GPT_TYPE_IMX31); 336 283 337 284 return 0; ··· 320 305 321 306 static void __init mx35_clocks_init_dt(struct device_node *ccm_node) 322 307 { 308 + _mx35_clocks_init(); 309 + 323 310 clk_data.clks = clk; 324 311 clk_data.clk_num = ARRAY_SIZE(clk); 325 312 of_clk_add_provider(ccm_node, of_clk_src_onecell_get, &clk_data); 326 - 327 - mx35_clocks_init(); 328 313 } 329 314 CLK_OF_DECLARE(imx35, "fsl,imx35-ccm", mx35_clocks_init_dt);
+16
drivers/clk/imx/clk-imx51-imx53.c
··· 130 130 static struct clk *clk[IMX5_CLK_END]; 131 131 static struct clk_onecell_data clk_data; 132 132 133 + static struct clk ** const uart_clks[] __initconst = { 134 + &clk[IMX5_CLK_UART1_IPG_GATE], 135 + &clk[IMX5_CLK_UART1_PER_GATE], 136 + &clk[IMX5_CLK_UART2_IPG_GATE], 137 + &clk[IMX5_CLK_UART2_PER_GATE], 138 + &clk[IMX5_CLK_UART3_IPG_GATE], 139 + &clk[IMX5_CLK_UART3_PER_GATE], 140 + &clk[IMX5_CLK_UART4_IPG_GATE], 141 + &clk[IMX5_CLK_UART4_PER_GATE], 142 + &clk[IMX5_CLK_UART5_IPG_GATE], 143 + &clk[IMX5_CLK_UART5_PER_GATE], 144 + NULL 145 + }; 146 + 133 147 static void __init mx5_clocks_common_init(void __iomem *ccm_base) 134 148 { 135 149 clk[IMX5_CLK_DUMMY] = imx_clk_fixed("dummy", 0); ··· 324 310 clk_prepare_enable(clk[IMX5_CLK_TMAX1]); 325 311 clk_prepare_enable(clk[IMX5_CLK_TMAX2]); /* esdhc2, fec */ 326 312 clk_prepare_enable(clk[IMX5_CLK_TMAX3]); /* esdhc1, esdhc4 */ 313 + 314 + imx_register_uart_clocks(uart_clks); 327 315 } 328 316 329 317 static void __init mx50_clocks_init(struct device_node *np)
+11 -1
drivers/clk/imx/clk-imx6q.c
··· 119 119 static unsigned int share_count_ssi2; 120 120 static unsigned int share_count_ssi3; 121 121 static unsigned int share_count_mipi_core_cfg; 122 + static unsigned int share_count_spdif; 122 123 123 124 static inline int clk_on_imx6q(void) 124 125 { ··· 130 129 { 131 130 return of_machine_is_compatible("fsl,imx6dl"); 132 131 } 132 + 133 + static struct clk ** const uart_clks[] __initconst = { 134 + &clk[IMX6QDL_CLK_UART_IPG], 135 + &clk[IMX6QDL_CLK_UART_SERIAL], 136 + NULL 137 + }; 133 138 134 139 static void __init imx6q_clocks_init(struct device_node *ccm_node) 135 140 { ··· 463 456 clk[IMX6QDL_CLK_SATA] = imx_clk_gate2("sata", "ahb", base + 0x7c, 4); 464 457 clk[IMX6QDL_CLK_SDMA] = imx_clk_gate2("sdma", "ahb", base + 0x7c, 6); 465 458 clk[IMX6QDL_CLK_SPBA] = imx_clk_gate2("spba", "ipg", base + 0x7c, 12); 466 - clk[IMX6QDL_CLK_SPDIF] = imx_clk_gate2("spdif", "spdif_podf", base + 0x7c, 14); 459 + clk[IMX6QDL_CLK_SPDIF] = imx_clk_gate2_shared("spdif", "spdif_podf", base + 0x7c, 14, &share_count_spdif); 460 + clk[IMX6QDL_CLK_SPDIF_GCLK] = imx_clk_gate2_shared("spdif_gclk", "ipg", base + 0x7c, 14, &share_count_spdif); 467 461 clk[IMX6QDL_CLK_SSI1_IPG] = imx_clk_gate2_shared("ssi1_ipg", "ipg", base + 0x7c, 18, &share_count_ssi1); 468 462 clk[IMX6QDL_CLK_SSI2_IPG] = imx_clk_gate2_shared("ssi2_ipg", "ipg", base + 0x7c, 20, &share_count_ssi2); 469 463 clk[IMX6QDL_CLK_SSI3_IPG] = imx_clk_gate2_shared("ssi3_ipg", "ipg", base + 0x7c, 22, &share_count_ssi3); ··· 549 541 /* All existing boards with PCIe use LVDS1 */ 550 542 if (IS_ENABLED(CONFIG_PCI_IMX6)) 551 543 clk_set_parent(clk[IMX6QDL_CLK_LVDS1_SEL], clk[IMX6QDL_CLK_SATA_REF_100M]); 544 + 545 + imx_register_uart_clocks(uart_clks); 552 546 } 553 547 CLK_OF_DECLARE(imx6q, "fsl,imx6q-ccm", imx6q_clocks_init);
+11 -1
drivers/clk/imx/clk-imx6sl.c
··· 97 97 static unsigned int share_count_ssi1; 98 98 static unsigned int share_count_ssi2; 99 99 static unsigned int share_count_ssi3; 100 + static unsigned int share_count_spdif; 100 101 101 102 static struct clk *clks[IMX6SL_CLK_END]; 102 103 static struct clk_onecell_data clk_data; ··· 184 183 if (arm_div_for_wait == ARM_WAIT_DIV_396M) 185 184 imx6sl_enable_pll_arm(false); 186 185 } 186 + 187 + static struct clk ** const uart_clks[] __initconst = { 188 + &clks[IMX6SL_CLK_UART], 189 + &clks[IMX6SL_CLK_UART_SERIAL], 190 + NULL 191 + }; 187 192 188 193 static void __init imx6sl_clocks_init(struct device_node *ccm_node) 189 194 { ··· 398 391 clks[IMX6SL_CLK_PWM4] = imx_clk_gate2("pwm4", "perclk", base + 0x78, 22); 399 392 clks[IMX6SL_CLK_SDMA] = imx_clk_gate2("sdma", "ipg", base + 0x7c, 6); 400 393 clks[IMX6SL_CLK_SPBA] = imx_clk_gate2("spba", "ipg", base + 0x7c, 12); 401 - clks[IMX6SL_CLK_SPDIF] = imx_clk_gate2("spdif", "spdif0_podf", base + 0x7c, 14); 394 + clks[IMX6SL_CLK_SPDIF] = imx_clk_gate2_shared("spdif", "spdif0_podf", base + 0x7c, 14, &share_count_spdif); 395 + clks[IMX6SL_CLK_SPDIF_GCLK] = imx_clk_gate2_shared("spdif_gclk", "ipg", base + 0x7c, 14, &share_count_spdif); 402 396 clks[IMX6SL_CLK_SSI1_IPG] = imx_clk_gate2_shared("ssi1_ipg", "ipg", base + 0x7c, 18, &share_count_ssi1); 403 397 clks[IMX6SL_CLK_SSI2_IPG] = imx_clk_gate2_shared("ssi2_ipg", "ipg", base + 0x7c, 20, &share_count_ssi2); 404 398 clks[IMX6SL_CLK_SSI3_IPG] = imx_clk_gate2_shared("ssi3_ipg", "ipg", base + 0x7c, 22, &share_count_ssi3); ··· 447 439 448 440 clk_set_parent(clks[IMX6SL_CLK_LCDIF_AXI_SEL], 449 441 clks[IMX6SL_CLK_PLL2_PFD2]); 442 + 443 + imx_register_uart_clocks(uart_clks); 450 444 } 451 445 CLK_OF_DECLARE(imx6sl, "fsl,imx6sl-ccm", imx6sl_clocks_init);
+9
drivers/clk/imx/clk-imx6sx.c
··· 135 135 static u32 share_count_ssi2; 136 136 static u32 share_count_ssi3; 137 137 138 + static struct clk ** const uart_clks[] __initconst = { 139 + &clks[IMX6SX_CLK_UART_IPG], 140 + &clks[IMX6SX_CLK_UART_SERIAL], 141 + NULL 142 + }; 143 + 138 144 static void __init imx6sx_clocks_init(struct device_node *ccm_node) 139 145 { 140 146 struct device_node *np; ··· 460 454 clks[IMX6SX_CLK_SPBA] = imx_clk_gate2("spba", "ipg", base + 0x7c, 12); 461 455 clks[IMX6SX_CLK_AUDIO] = imx_clk_gate2_shared("audio", "audio_podf", base + 0x7c, 14, &share_count_audio); 462 456 clks[IMX6SX_CLK_SPDIF] = imx_clk_gate2_shared("spdif", "spdif_podf", base + 0x7c, 14, &share_count_audio); 457 + clks[IMX6SX_CLK_SPDIF_GCLK] = imx_clk_gate2_shared("spdif_gclk", "ipg", base + 0x7c, 14, &share_count_audio); 463 458 clks[IMX6SX_CLK_SSI1_IPG] = imx_clk_gate2_shared("ssi1_ipg", "ipg", base + 0x7c, 18, &share_count_ssi1); 464 459 clks[IMX6SX_CLK_SSI2_IPG] = imx_clk_gate2_shared("ssi2_ipg", "ipg", base + 0x7c, 20, &share_count_ssi2); 465 460 clks[IMX6SX_CLK_SSI3_IPG] = imx_clk_gate2_shared("ssi3_ipg", "ipg", base + 0x7c, 22, &share_count_ssi3); ··· 564 557 565 558 clk_set_parent(clks[IMX6SX_CLK_QSPI1_SEL], clks[IMX6SX_CLK_PLL2_BUS]); 566 559 clk_set_parent(clks[IMX6SX_CLK_QSPI2_SEL], clks[IMX6SX_CLK_PLL2_BUS]); 560 + 561 + imx_register_uart_clocks(uart_clks); 567 562 } 568 563 CLK_OF_DECLARE(imx6sx, "fsl,imx6sx-ccm", imx6sx_clocks_init);
+18
drivers/clk/imx/clk-imx6ul.c
··· 407 407 clk_data.clk_num = ARRAY_SIZE(clks); 408 408 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); 409 409 410 + /* 411 + * Lower the AHB clock rate before changing the parent clock source, 412 + * as AHB clock rate can NOT be higher than 133MHz, but its parent 413 + * will be switched from 396MHz PFD to 528MHz PLL in order to increase 414 + * AXI clock rate, so we need to lower AHB rate first to make sure at 415 + * any time, AHB rate is <= 133MHz. 416 + */ 417 + clk_set_rate(clks[IMX6UL_CLK_AHB], 99000000); 418 + 419 + /* Change periph_pre clock to pll2_bus to adjust AXI rate to 264MHz */ 420 + clk_set_parent(clks[IMX6UL_CLK_PERIPH_CLK2_SEL], clks[IMX6UL_CLK_PLL3_USB_OTG]); 421 + clk_set_parent(clks[IMX6UL_CLK_PERIPH], clks[IMX6UL_CLK_PERIPH_CLK2]); 422 + clk_set_parent(clks[IMX6UL_CLK_PERIPH_PRE], clks[IMX6UL_CLK_PLL2_BUS]); 423 + clk_set_parent(clks[IMX6UL_CLK_PERIPH], clks[IMX6UL_CLK_PERIPH_PRE]); 424 + 425 + /* Make sure AHB rate is 132MHz */ 426 + clk_set_rate(clks[IMX6UL_CLK_AHB], 132000000); 427 + 410 428 /* set perclk to from OSC */ 411 429 clk_set_parent(clks[IMX6UL_CLK_PERCLK_SEL], clks[IMX6UL_CLK_OSC]); 412 430
+14
drivers/clk/imx/clk-imx7d.c
··· 363 363 364 364 static struct clk_onecell_data clk_data; 365 365 366 + static struct clk ** const uart_clks[] __initconst = { 367 + &clks[IMX7D_UART1_ROOT_CLK], 368 + &clks[IMX7D_UART2_ROOT_CLK], 369 + &clks[IMX7D_UART3_ROOT_CLK], 370 + &clks[IMX7D_UART4_ROOT_CLK], 371 + &clks[IMX7D_UART5_ROOT_CLK], 372 + &clks[IMX7D_UART6_ROOT_CLK], 373 + &clks[IMX7D_UART7_ROOT_CLK], 374 + NULL 375 + }; 376 + 366 377 static void __init imx7d_clocks_init(struct device_node *ccm_node) 367 378 { 368 379 struct device_node *np; ··· 829 818 clks[IMX7D_CSI_MCLK_ROOT_CLK] = imx_clk_gate2("csi_mclk_root_clk", "csi_mclk_post_div", base + 0x4490, 0); 830 819 clks[IMX7D_AUDIO_MCLK_ROOT_CLK] = imx_clk_gate2("audio_mclk_root_clk", "audio_mclk_post_div", base + 0x4790, 0); 831 820 clks[IMX7D_WRCLK_ROOT_CLK] = imx_clk_gate2("wrclk_root_clk", "wrclk_post_div", base + 0x47a0, 0); 821 + clks[IMX7D_ADC_ROOT_CLK] = imx_clk_gate2("adc_root_clk", "ipg_root_clk", base + 0x4200, 0); 832 822 833 823 clks[IMX7D_GPT_3M_CLK] = imx_clk_fixed_factor("gpt_3m", "osc", 1, 8); 834 824 ··· 867 855 868 856 /* set uart module clock's parent clock source that must be great then 80MHz */ 869 857 clk_set_parent(clks[IMX7D_UART1_ROOT_SRC], clks[IMX7D_OSC_24M_CLK]); 858 + 859 + imx_register_uart_clocks(uart_clks); 870 860 871 861 } 872 862 CLK_OF_DECLARE(imx7d, "fsl,imx7d-ccm", imx7d_clocks_init);
+1
drivers/clk/imx/clk-vf610.c
··· 387 387 388 388 clk[VF610_CLK_SNVS] = imx_clk_gate2("snvs-rtc", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(7)); 389 389 clk[VF610_CLK_DAP] = imx_clk_gate("dap", "platform_bus", CCM_CCSR, 24); 390 + clk[VF610_CLK_OCOTP] = imx_clk_gate("ocotp", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(5)); 390 391 391 392 imx_check_clocks(clk, ARRAY_SIZE(clk)); 392 393
+38
drivers/clk/imx/clk.c
··· 73 73 *val ^= CSCMR1_FIXUP; 74 74 return; 75 75 } 76 + 77 + static int imx_keep_uart_clocks __initdata; 78 + static struct clk ** const *imx_uart_clocks __initdata; 79 + 80 + static int __init imx_keep_uart_clocks_param(char *str) 81 + { 82 + imx_keep_uart_clocks = 1; 83 + 84 + return 0; 85 + } 86 + __setup_param("earlycon", imx_keep_uart_earlycon, 87 + imx_keep_uart_clocks_param, 0); 88 + __setup_param("earlyprintk", imx_keep_uart_earlyprintk, 89 + imx_keep_uart_clocks_param, 0); 90 + 91 + void __init imx_register_uart_clocks(struct clk ** const clks[]) 92 + { 93 + if (imx_keep_uart_clocks) { 94 + int i; 95 + 96 + imx_uart_clocks = clks; 97 + for (i = 0; imx_uart_clocks[i]; i++) 98 + clk_prepare_enable(*imx_uart_clocks[i]); 99 + } 100 + } 101 + 102 + static int __init imx_clk_disable_uart(void) 103 + { 104 + if (imx_keep_uart_clocks && imx_uart_clocks) { 105 + int i; 106 + 107 + for (i = 0; imx_uart_clocks[i]; i++) 108 + clk_disable_unprepare(*imx_uart_clocks[i]); 109 + } 110 + 111 + return 0; 112 + } 113 + late_initcall_sync(imx_clk_disable_uart);
+1
drivers/clk/imx/clk.h
··· 7 7 extern spinlock_t imx_ccm_lock; 8 8 9 9 void imx_check_clocks(struct clk *clks[], unsigned int count); 10 + void imx_register_uart_clocks(struct clk ** const clks[]); 10 11 11 12 extern void imx_cscmr1_fixup(u32 *val); 12 13
+2 -1
include/dt-bindings/clock/imx6qdl-clock.h
··· 254 254 #define IMX6QDL_CLK_CAAM_MEM 241 255 255 #define IMX6QDL_CLK_CAAM_ACLK 242 256 256 #define IMX6QDL_CLK_CAAM_IPG 243 257 - #define IMX6QDL_CLK_END 244 257 + #define IMX6QDL_CLK_SPDIF_GCLK 244 258 + #define IMX6QDL_CLK_END 245 258 259 259 260 #endif /* __DT_BINDINGS_CLOCK_IMX6QDL_H */
+2 -1
include/dt-bindings/clock/imx6sl-clock.h
··· 174 174 #define IMX6SL_CLK_SSI1_IPG 161 175 175 #define IMX6SL_CLK_SSI2_IPG 162 176 176 #define IMX6SL_CLK_SSI3_IPG 163 177 - #define IMX6SL_CLK_END 164 177 + #define IMX6SL_CLK_SPDIF_GCLK 164 178 + #define IMX6SL_CLK_END 165 178 179 179 180 #endif /* __DT_BINDINGS_CLOCK_IMX6SL_H */
+2 -1
include/dt-bindings/clock/imx6sx-clock.h
··· 274 274 #define IMX6SX_PLL5_BYPASS 261 275 275 #define IMX6SX_PLL6_BYPASS 262 276 276 #define IMX6SX_PLL7_BYPASS 263 277 - #define IMX6SX_CLK_CLK_END 264 277 + #define IMX6SX_CLK_SPDIF_GCLK 264 278 + #define IMX6SX_CLK_CLK_END 265 278 279 279 280 #endif /* __DT_BINDINGS_CLOCK_IMX6SX_H */
+2 -1
include/dt-bindings/clock/imx7d-clock.h
··· 446 446 #define IMX7D_MU_ROOT_CLK 433 447 447 #define IMX7D_SEMA4_HS_ROOT_CLK 434 448 448 #define IMX7D_PLL_DRAM_TEST_DIV 435 449 - #define IMX7D_CLK_END 436 449 + #define IMX7D_ADC_ROOT_CLK 436 450 + #define IMX7D_CLK_END 437 450 451 #endif /* __DT_BINDINGS_CLOCK_IMX7D_H */
+2 -1
include/dt-bindings/clock/vf610-clock.h
··· 194 194 #define VF610_PLL7_BYPASS 181 195 195 #define VF610_CLK_SNVS 182 196 196 #define VF610_CLK_DAP 183 197 - #define VF610_CLK_END 184 197 + #define VF610_CLK_OCOTP 184 198 + #define VF610_CLK_END 185 198 199 199 200 #endif /* __DT_BINDINGS_CLOCK_VF610_H */