|
27 | 27 | }; |
28 | 28 |
|
29 | 29 |
|
| 30 | +/* SEM-703: Overwriting the existing NXP gpu node to use the GCNanoUltra GPU |
| 31 | + The IMX8 mini we're using has two GPU's one for 3D rendering and one for 2D blitting. |
| 32 | + For our application only 3D rendering is needed. When enabling both the 2D and 3D core, |
| 33 | + we're running into memory crashes which seem related to the amount of memory used by both |
| 34 | + chips. |
| 35 | + */ |
| 36 | +&gpu { |
| 37 | + compatible = "vivante,gc"; |
| 38 | + reg = <0x0 0x38000000 0x0 0x8000>; |
| 39 | + |
| 40 | + /* Limit to ONE interrupt (The 3D Core IRQ) */ |
| 41 | + interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; |
| 42 | + |
| 43 | + /* Etnaviv looks for "core", "shader", "bus", "reg" */ |
| 44 | + clocks = <&clk IMX8MM_CLK_GPU3D_ROOT>, /* core */ |
| 45 | + <&clk IMX8MM_CLK_GPU3D_ROOT>, /* shader */ |
| 46 | + <&clk IMX8MM_CLK_GPU_BUS_ROOT>, /* bus */ |
| 47 | + <&clk IMX8MM_CLK_GPU_AHB>; /* reg */ |
| 48 | + |
| 49 | + clock-names = "core", "shader", "bus", "reg"; |
| 50 | + |
| 51 | + power-domains = <&pgc_gpu>; |
| 52 | + status = "okay"; |
| 53 | +}; |
| 54 | + |
| 55 | +/* Define the subsystem with just this single node */ |
| 56 | +/ { |
| 57 | + gpu-subsystem { |
| 58 | + compatible = "fsl,imx-gpu-subsystem"; |
| 59 | + cores = <&gpu>; |
| 60 | + status = "okay"; |
| 61 | + }; |
| 62 | +}; |
30 | 63 | /* Remove pins used in Ultiboard 5 from generic GPIOs pinctrl settings of imx8mm. */ |
31 | 64 | &pinctrl_gpio1 { |
32 | 65 | fsl,pins = < |
33 | 66 | MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x140 /* GPIO0 / CSI0 PWR */ |
34 | 67 | MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x140 /* TEST# */ |
35 | 68 | MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x140 /* GPIO12 */ |
36 | | - MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3 0x140 /* GPIO13 */ |
| 69 | + MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3 0x140 /* GPIO13 */ |
37 | 70 | >; |
38 | 71 | }; |
39 | 72 |
|
|
55 | 88 | }; |
56 | 89 |
|
57 | 90 | /* SEM-503: We need to connect the IMX8MM pad UART3_RXD and UART3_TXD to the GPIO5 controller, |
58 | | - removing them from the UART1 controller. So we need to re-define these pin control groups |
| 91 | + removing them from the UART1 controller. So we need to re-define these pin control groups |
59 | 92 | here, since it is not possible to delete a pin from a fsl,pin array */ |
60 | | - |
| 93 | + |
61 | 94 | &pinctrl_gpio5 { |
62 | 95 | fsl,pins = < |
63 | 96 | MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4 0x140 /* GPIO5 / PWMOUT */ |
|
80 | 113 | >; |
81 | 114 | }; |
82 | 115 |
|
83 | | - |
| 116 | + |
84 | 117 | /* Add GPIOs pinctrl for Ultboard 5. */ |
85 | 118 |
|
86 | 119 | /* GPIO PAD setting */ |
|
98 | 131 | MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x100 /* GPIO3 / CSI1 RST / Led-0 Kernel Heartbeat */ |
99 | 132 | >; |
100 | 133 | }; |
101 | | - |
| 134 | + |
102 | 135 | pinctrl_i2c3_tca6416: i2c3_tca6416 { |
103 | 136 | fsl,pins = < |
104 | | - MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x080 /* GPIO8 / U35 - TCA6416 INT */ |
| 137 | + MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x080 /* GPIO8 / U35 - TCA6416 INT */ |
105 | 138 | >; |
106 | 139 | }; |
107 | 140 | }; |
|
128 | 161 | Connecting the USB2514B to the I2C bus and increasing the POWER-ON TIME to 110 ms resolves the issue. In this configuration, |
129 | 162 | we set it to 200 ms to be on the safe side. |
130 | 163 | */ |
131 | | - |
| 164 | + |
132 | 165 | usb2514b@2c { |
133 | 166 | compatible = "microchip,usb2514b"; |
134 | 167 | reg = <0x2c>; |
|
138 | 171 | individual-port-switching; |
139 | 172 | power-on-time-ms = <200>; |
140 | 173 | }; |
141 | | - |
| 174 | + |
142 | 175 | tca6416@20 { |
143 | 176 | compatible = "ti,tca6416"; |
144 | 177 | reg = <0x20>; |
|
148 | 181 | interrupts = <0 IRQ_TYPE_LEVEL_LOW>; |
149 | 182 | gpio-controller; |
150 | 183 | #gpio-cells = <2>; |
151 | | - gpio-line-names = "VCC5_EXT_EN", "VCC5_EXT_OK", "VCC5_FAN_EN", "VCC5_FAN_OK", |
152 | | - "HDMI_PWR_EN", "HDMI_PWR_OK", "VCC5_PH_EN", "VCC5_PH_OK", |
153 | | - "VCC24_HP_PG", "VCC24_MOT_PG", "LVDS_PWR_EN", "LVDS_PWR_OK", |
| 184 | + gpio-line-names = "VCC5_EXT_EN", "VCC5_EXT_OK", "VCC5_FAN_EN", "VCC5_FAN_OK", |
| 185 | + "HDMI_PWR_EN", "HDMI_PWR_OK", "VCC5_PH_EN", "VCC5_PH_OK", |
| 186 | + "VCC24_HP_PG", "VCC24_MOT_PG", "LVDS_PWR_EN", "LVDS_PWR_OK", |
154 | 187 | "SAFETY_BTN_STATUS", "SAFETY_RESET", "VCC24_PH_EN", "VCC24_MOT_EN"; |
155 | 188 | }; |
156 | | - |
| 189 | + |
157 | 190 | cabin_light: pca9632@61 { |
158 | 191 | compatible = "nxp,pca9632"; |
159 | 192 | #address-cells = <1>; |
|
217 | 250 |
|
218 | 251 | /* Set pin names for IMXRT control lines */ |
219 | 252 | &gpio4 { |
220 | | - gpio-line-names = "TCA6416A_nINT", "USB2514B_Reset", "", "", "", "", "", "RESET_OUT", |
221 | | - "", "", "", "", "", "", "", "", |
222 | | - "", "", "", "", "IMXRT_nReset", "", "", "", |
| 253 | + gpio-line-names = "TCA6416A_nINT", "USB2514B_Reset", "", "", "", "", "", "RESET_OUT", |
| 254 | + "", "", "", "", "", "", "", "", |
| 255 | + "", "", "", "", "IMXRT_nReset", "", "", "", |
223 | 256 | "", "", "", "", "IMXRT_BootMode_En", "SAFETY_ENABLED", "", ""; |
224 | 257 | }; |
225 | 258 |
|
|
228 | 261 | /* SEM-503: The IMX8MM UART3_RXD pad (SMARC P138) is connected to the UMBus Drive Enable pin. It should be connected to VCC5 in HW, |
229 | 262 | but up to now (2025-01-22) the current ultimainboard 5 still has it connected to wired to the SoM, without any specific |
230 | 263 | reason / purpose. So here we claim this pin as gpio-hog and set it to high level and then it cannot be changed in runtime */ |
231 | | - |
| 264 | + |
232 | 265 | umbus_drive_enable_hog { |
233 | 266 | gpio-hog; |
234 | 267 | gpios = <26 GPIO_ACTIVE_HIGH>; |
|
280 | 313 | status = "disabled"; |
281 | 314 | }; |
282 | 315 | }; |
283 | | - |
|
0 commit comments