1 # SPDX-License-Identifier: GPL-2.0-only OR BSD 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/display/msm 4 $id: http://devicetree.org/schemas/display/msm/dsi-controller-main.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Qualcomm Display DSI controller 7 title: Qualcomm Display DSI controller 8 8 9 maintainers: 9 maintainers: 10 - Krishna Manikandan <quic_mkrishn@quicinc.co 10 - Krishna Manikandan <quic_mkrishn@quicinc.com> 11 11 12 properties: 12 properties: 13 compatible: 13 compatible: 14 oneOf: 14 oneOf: 15 - items: 15 - items: 16 - enum: 16 - enum: 17 - qcom,apq8064-dsi-ctrl 17 - qcom,apq8064-dsi-ctrl 18 - qcom,msm8226-dsi-ctrl 18 - qcom,msm8226-dsi-ctrl 19 - qcom,msm8916-dsi-ctrl 19 - qcom,msm8916-dsi-ctrl 20 - qcom,msm8953-dsi-ctrl 20 - qcom,msm8953-dsi-ctrl 21 - qcom,msm8974-dsi-ctrl 21 - qcom,msm8974-dsi-ctrl 22 - qcom,msm8976-dsi-ctrl 22 - qcom,msm8976-dsi-ctrl 23 - qcom,msm8996-dsi-ctrl 23 - qcom,msm8996-dsi-ctrl 24 - qcom,msm8998-dsi-ctrl 24 - qcom,msm8998-dsi-ctrl 25 - qcom,qcm2290-dsi-ctrl 25 - qcom,qcm2290-dsi-ctrl 26 - qcom,sc7180-dsi-ctrl 26 - qcom,sc7180-dsi-ctrl 27 - qcom,sc7280-dsi-ctrl 27 - qcom,sc7280-dsi-ctrl 28 - qcom,sdm660-dsi-ctrl 28 - qcom,sdm660-dsi-ctrl 29 - qcom,sdm670-dsi-ctrl 29 - qcom,sdm670-dsi-ctrl 30 - qcom,sdm845-dsi-ctrl 30 - qcom,sdm845-dsi-ctrl 31 - qcom,sm6115-dsi-ctrl 31 - qcom,sm6115-dsi-ctrl 32 - qcom,sm6125-dsi-ctrl 32 - qcom,sm6125-dsi-ctrl 33 - qcom,sm6350-dsi-ctrl 33 - qcom,sm6350-dsi-ctrl 34 - qcom,sm6375-dsi-ctrl 34 - qcom,sm6375-dsi-ctrl 35 - qcom,sm7150-dsi-ctrl 35 - qcom,sm7150-dsi-ctrl 36 - qcom,sm8150-dsi-ctrl 36 - qcom,sm8150-dsi-ctrl 37 - qcom,sm8250-dsi-ctrl 37 - qcom,sm8250-dsi-ctrl 38 - qcom,sm8350-dsi-ctrl 38 - qcom,sm8350-dsi-ctrl 39 - qcom,sm8450-dsi-ctrl 39 - qcom,sm8450-dsi-ctrl 40 - qcom,sm8550-dsi-ctrl 40 - qcom,sm8550-dsi-ctrl 41 - qcom,sm8650-dsi-ctrl 41 - qcom,sm8650-dsi-ctrl 42 - const: qcom,mdss-dsi-ctrl 42 - const: qcom,mdss-dsi-ctrl 43 - enum: 43 - enum: 44 - qcom,dsi-ctrl-6g-qcm2290 44 - qcom,dsi-ctrl-6g-qcm2290 45 - qcom,mdss-dsi-ctrl # This should a 45 - qcom,mdss-dsi-ctrl # This should always come with an SoC-specific compatible 46 deprecated: true 46 deprecated: true 47 47 48 reg: 48 reg: 49 maxItems: 1 49 maxItems: 1 50 50 51 reg-names: 51 reg-names: 52 const: dsi_ctrl 52 const: dsi_ctrl 53 53 54 interrupts: 54 interrupts: 55 maxItems: 1 55 maxItems: 1 56 56 57 clocks: 57 clocks: 58 description: | 58 description: | 59 Several clocks are used, depending on th 59 Several clocks are used, depending on the variant. Typical ones are:: 60 - bus:: Display AHB clock. 60 - bus:: Display AHB clock. 61 - byte:: Display byte clock. 61 - byte:: Display byte clock. 62 - byte_intf:: Display byte interface cl 62 - byte_intf:: Display byte interface clock. 63 - core:: Display core clock. 63 - core:: Display core clock. 64 - core_mss:: Core MultiMedia SubSystem 64 - core_mss:: Core MultiMedia SubSystem clock. 65 - iface:: Display AXI clock. 65 - iface:: Display AXI clock. 66 - mdp_core:: MDP Core clock. 66 - mdp_core:: MDP Core clock. 67 - mnoc:: MNOC clock 67 - mnoc:: MNOC clock 68 - pixel:: Display pixel clock. 68 - pixel:: Display pixel clock. 69 minItems: 3 69 minItems: 3 70 maxItems: 9 70 maxItems: 9 71 71 72 clock-names: 72 clock-names: 73 minItems: 3 73 minItems: 3 74 maxItems: 9 74 maxItems: 9 75 75 76 phys: 76 phys: 77 maxItems: 1 77 maxItems: 1 78 78 79 phy-names: 79 phy-names: 80 deprecated: true 80 deprecated: true 81 const: dsi 81 const: dsi 82 82 83 syscon-sfpb: 83 syscon-sfpb: 84 description: A phandle to mmss_sfpb syscon 84 description: A phandle to mmss_sfpb syscon node (only for DSIv2). 85 $ref: /schemas/types.yaml#/definitions/pha 85 $ref: /schemas/types.yaml#/definitions/phandle 86 86 87 qcom,dual-dsi-mode: 87 qcom,dual-dsi-mode: 88 type: boolean 88 type: boolean 89 description: | 89 description: | 90 Indicates if the DSI controller is drivi 90 Indicates if the DSI controller is driving a panel which needs 91 2 DSI links. 91 2 DSI links. 92 92 93 qcom,master-dsi: 93 qcom,master-dsi: 94 type: boolean 94 type: boolean 95 description: | 95 description: | 96 Indicates if the DSI controller is the m 96 Indicates if the DSI controller is the master DSI controller when 97 qcom,dual-dsi-mode enabled. 97 qcom,dual-dsi-mode enabled. 98 98 99 qcom,sync-dual-dsi: 99 qcom,sync-dual-dsi: 100 type: boolean 100 type: boolean 101 description: | 101 description: | 102 Indicates if the DSI controller needs to 102 Indicates if the DSI controller needs to sync the other DSI controller 103 with MIPI DCS commands when qcom,dual-ds 103 with MIPI DCS commands when qcom,dual-dsi-mode enabled. 104 104 105 assigned-clocks: 105 assigned-clocks: 106 minItems: 2 106 minItems: 2 107 maxItems: 4 107 maxItems: 4 108 description: | 108 description: | 109 Parents of "byte" and "pixel" for the gi 109 Parents of "byte" and "pixel" for the given platform. 110 For DSIv2 platforms this should contain 110 For DSIv2 platforms this should contain "byte", "esc", "src" and 111 "pixel_src" clocks. 111 "pixel_src" clocks. 112 112 113 assigned-clock-parents: 113 assigned-clock-parents: 114 minItems: 2 114 minItems: 2 115 maxItems: 4 115 maxItems: 4 116 description: | 116 description: | 117 The Byte clock and Pixel clock PLL outpu 117 The Byte clock and Pixel clock PLL outputs provided by a DSI PHY block. 118 118 119 power-domains: 119 power-domains: 120 maxItems: 1 120 maxItems: 1 121 121 122 operating-points-v2: true 122 operating-points-v2: true 123 123 124 opp-table: 124 opp-table: 125 type: object 125 type: object 126 126 127 ports: 127 ports: 128 $ref: /schemas/graph.yaml#/properties/port 128 $ref: /schemas/graph.yaml#/properties/ports 129 description: | 129 description: | 130 Contains DSI controller input and output 130 Contains DSI controller input and output ports as children, each 131 containing one endpoint subnode. 131 containing one endpoint subnode. 132 132 133 properties: 133 properties: 134 port@0: 134 port@0: 135 $ref: /schemas/graph.yaml#/$defs/port- 135 $ref: /schemas/graph.yaml#/$defs/port-base 136 unevaluatedProperties: false 136 unevaluatedProperties: false 137 description: | 137 description: | 138 Input endpoints of the controller. 138 Input endpoints of the controller. 139 properties: 139 properties: 140 endpoint: 140 endpoint: 141 $ref: /schemas/media/video-interfa 141 $ref: /schemas/media/video-interfaces.yaml# 142 unevaluatedProperties: false 142 unevaluatedProperties: false 143 properties: 143 properties: 144 data-lanes: 144 data-lanes: 145 maxItems: 4 145 maxItems: 4 146 minItems: 1 146 minItems: 1 147 items: 147 items: 148 enum: [ 0, 1, 2, 3 ] 148 enum: [ 0, 1, 2, 3 ] 149 149 150 port@1: 150 port@1: 151 $ref: /schemas/graph.yaml#/$defs/port- 151 $ref: /schemas/graph.yaml#/$defs/port-base 152 unevaluatedProperties: false 152 unevaluatedProperties: false 153 description: | 153 description: | 154 Output endpoints of the controller. 154 Output endpoints of the controller. 155 properties: 155 properties: 156 endpoint: 156 endpoint: 157 $ref: /schemas/media/video-interfa 157 $ref: /schemas/media/video-interfaces.yaml# 158 unevaluatedProperties: false 158 unevaluatedProperties: false 159 properties: 159 properties: 160 data-lanes: 160 data-lanes: 161 maxItems: 4 161 maxItems: 4 162 minItems: 1 162 minItems: 1 163 items: 163 items: 164 enum: [ 0, 1, 2, 3 ] 164 enum: [ 0, 1, 2, 3 ] 165 165 166 qcom,te-source: 166 qcom,te-source: 167 $ref: /schemas/types.yaml#/def 167 $ref: /schemas/types.yaml#/definitions/string 168 description: 168 description: 169 Specifies the source of vsyn 169 Specifies the source of vsync signal from the panel used for 170 tearing elimination. 170 tearing elimination. 171 default: mdp_vsync_p 171 default: mdp_vsync_p 172 enum: 172 enum: 173 - mdp_vsync_p 173 - mdp_vsync_p 174 - mdp_vsync_s 174 - mdp_vsync_s 175 - mdp_vsync_e 175 - mdp_vsync_e 176 - timer0 176 - timer0 177 - timer1 177 - timer1 178 - timer2 178 - timer2 179 - timer3 179 - timer3 180 - timer4 180 - timer4 181 181 182 required: 182 required: 183 - port@0 183 - port@0 184 - port@1 184 - port@1 185 185 186 avdd-supply: 186 avdd-supply: 187 description: 187 description: 188 Phandle to vdd regulator device node 188 Phandle to vdd regulator device node 189 189 190 refgen-supply: 190 refgen-supply: 191 description: 191 description: 192 Phandle to REFGEN regulator device node 192 Phandle to REFGEN regulator device node 193 193 194 vcca-supply: 194 vcca-supply: 195 description: 195 description: 196 Phandle to vdd regulator device node 196 Phandle to vdd regulator device node 197 197 198 vdd-supply: 198 vdd-supply: 199 description: 199 description: 200 VDD regulator 200 VDD regulator 201 201 202 vddio-supply: 202 vddio-supply: 203 description: 203 description: 204 VDD-IO regulator 204 VDD-IO regulator 205 205 206 vdda-supply: 206 vdda-supply: 207 description: 207 description: 208 VDDA regulator 208 VDDA regulator 209 209 210 required: 210 required: 211 - compatible 211 - compatible 212 - reg 212 - reg 213 - reg-names 213 - reg-names 214 - interrupts 214 - interrupts 215 - clocks 215 - clocks 216 - clock-names 216 - clock-names 217 - phys 217 - phys 218 - assigned-clocks 218 - assigned-clocks 219 - assigned-clock-parents 219 - assigned-clock-parents 220 - ports 220 - ports 221 221 222 allOf: 222 allOf: 223 - $ref: ../dsi-controller.yaml# 223 - $ref: ../dsi-controller.yaml# 224 - if: 224 - if: 225 properties: 225 properties: 226 compatible: 226 compatible: 227 contains: 227 contains: 228 enum: 228 enum: 229 - qcom,apq8064-dsi-ctrl 229 - qcom,apq8064-dsi-ctrl 230 then: 230 then: 231 properties: 231 properties: 232 clocks: 232 clocks: 233 maxItems: 7 233 maxItems: 7 234 clock-names: 234 clock-names: 235 items: 235 items: 236 - const: iface 236 - const: iface 237 - const: bus 237 - const: bus 238 - const: core_mmss 238 - const: core_mmss 239 - const: src 239 - const: src 240 - const: byte 240 - const: byte 241 - const: pixel 241 - const: pixel 242 - const: core 242 - const: core 243 243 244 - if: 244 - if: 245 properties: 245 properties: 246 compatible: 246 compatible: 247 contains: 247 contains: 248 enum: 248 enum: 249 - qcom,msm8916-dsi-ctrl 249 - qcom,msm8916-dsi-ctrl 250 then: 250 then: 251 properties: 251 properties: 252 clocks: 252 clocks: 253 maxItems: 6 253 maxItems: 6 254 clock-names: 254 clock-names: 255 items: 255 items: 256 - const: mdp_core 256 - const: mdp_core 257 - const: iface 257 - const: iface 258 - const: bus 258 - const: bus 259 - const: byte 259 - const: byte 260 - const: pixel 260 - const: pixel 261 - const: core 261 - const: core 262 262 263 - if: 263 - if: 264 properties: 264 properties: 265 compatible: 265 compatible: 266 contains: 266 contains: 267 enum: 267 enum: 268 - qcom,msm8953-dsi-ctrl 268 - qcom,msm8953-dsi-ctrl 269 - qcom,msm8976-dsi-ctrl 269 - qcom,msm8976-dsi-ctrl 270 then: 270 then: 271 properties: 271 properties: 272 clocks: 272 clocks: 273 maxItems: 6 273 maxItems: 6 274 clock-names: 274 clock-names: 275 items: 275 items: 276 - const: mdp_core 276 - const: mdp_core 277 - const: iface 277 - const: iface 278 - const: bus 278 - const: bus 279 - const: byte 279 - const: byte 280 - const: pixel 280 - const: pixel 281 - const: core 281 - const: core 282 282 283 - if: 283 - if: 284 properties: 284 properties: 285 compatible: 285 compatible: 286 contains: 286 contains: 287 enum: 287 enum: 288 - qcom,msm8226-dsi-ctrl 288 - qcom,msm8226-dsi-ctrl 289 - qcom,msm8974-dsi-ctrl 289 - qcom,msm8974-dsi-ctrl 290 then: 290 then: 291 properties: 291 properties: 292 clocks: 292 clocks: 293 maxItems: 7 293 maxItems: 7 294 clock-names: 294 clock-names: 295 items: 295 items: 296 - const: mdp_core 296 - const: mdp_core 297 - const: iface 297 - const: iface 298 - const: bus 298 - const: bus 299 - const: byte 299 - const: byte 300 - const: pixel 300 - const: pixel 301 - const: core 301 - const: core 302 - const: core_mmss 302 - const: core_mmss 303 303 304 - if: 304 - if: 305 properties: 305 properties: 306 compatible: 306 compatible: 307 contains: 307 contains: 308 enum: 308 enum: 309 - qcom,msm8996-dsi-ctrl 309 - qcom,msm8996-dsi-ctrl 310 then: 310 then: 311 properties: 311 properties: 312 clocks: 312 clocks: 313 maxItems: 7 313 maxItems: 7 314 clock-names: 314 clock-names: 315 items: 315 items: 316 - const: mdp_core 316 - const: mdp_core 317 - const: byte 317 - const: byte 318 - const: iface 318 - const: iface 319 - const: bus 319 - const: bus 320 - const: core_mmss 320 - const: core_mmss 321 - const: pixel 321 - const: pixel 322 - const: core 322 - const: core 323 323 324 - if: 324 - if: 325 properties: 325 properties: 326 compatible: 326 compatible: 327 contains: 327 contains: 328 enum: 328 enum: 329 - qcom,msm8998-dsi-ctrl 329 - qcom,msm8998-dsi-ctrl 330 - qcom,sm6125-dsi-ctrl 330 - qcom,sm6125-dsi-ctrl 331 - qcom,sm6350-dsi-ctrl 331 - qcom,sm6350-dsi-ctrl 332 then: 332 then: 333 properties: 333 properties: 334 clocks: 334 clocks: 335 maxItems: 6 335 maxItems: 6 336 clock-names: 336 clock-names: 337 items: 337 items: 338 - const: byte 338 - const: byte 339 - const: byte_intf 339 - const: byte_intf 340 - const: pixel 340 - const: pixel 341 - const: core 341 - const: core 342 - const: iface 342 - const: iface 343 - const: bus 343 - const: bus 344 344 345 - if: 345 - if: 346 properties: 346 properties: 347 compatible: 347 compatible: 348 contains: 348 contains: 349 enum: 349 enum: 350 - qcom,sc7180-dsi-ctrl 350 - qcom,sc7180-dsi-ctrl 351 - qcom,sc7280-dsi-ctrl 351 - qcom,sc7280-dsi-ctrl 352 - qcom,sm7150-dsi-ctrl 352 - qcom,sm7150-dsi-ctrl 353 - qcom,sm8150-dsi-ctrl 353 - qcom,sm8150-dsi-ctrl 354 - qcom,sm8250-dsi-ctrl 354 - qcom,sm8250-dsi-ctrl 355 - qcom,sm8350-dsi-ctrl 355 - qcom,sm8350-dsi-ctrl 356 - qcom,sm8450-dsi-ctrl 356 - qcom,sm8450-dsi-ctrl 357 - qcom,sm8550-dsi-ctrl 357 - qcom,sm8550-dsi-ctrl 358 - qcom,sm8650-dsi-ctrl 358 - qcom,sm8650-dsi-ctrl 359 then: 359 then: 360 properties: 360 properties: 361 clocks: 361 clocks: 362 maxItems: 6 362 maxItems: 6 363 clock-names: 363 clock-names: 364 items: 364 items: 365 - const: byte 365 - const: byte 366 - const: byte_intf 366 - const: byte_intf 367 - const: pixel 367 - const: pixel 368 - const: core 368 - const: core 369 - const: iface 369 - const: iface 370 - const: bus 370 - const: bus 371 371 372 - if: 372 - if: 373 properties: 373 properties: 374 compatible: 374 compatible: 375 contains: 375 contains: 376 enum: 376 enum: 377 - qcom,sdm660-dsi-ctrl 377 - qcom,sdm660-dsi-ctrl 378 then: 378 then: 379 properties: 379 properties: 380 clocks: 380 clocks: 381 maxItems: 9 381 maxItems: 9 382 clock-names: 382 clock-names: 383 items: 383 items: 384 - const: mdp_core 384 - const: mdp_core 385 - const: byte 385 - const: byte 386 - const: byte_intf 386 - const: byte_intf 387 - const: mnoc 387 - const: mnoc 388 - const: iface 388 - const: iface 389 - const: bus 389 - const: bus 390 - const: core_mmss 390 - const: core_mmss 391 - const: pixel 391 - const: pixel 392 - const: core 392 - const: core 393 393 394 - if: 394 - if: 395 properties: 395 properties: 396 compatible: 396 compatible: 397 contains: 397 contains: 398 enum: 398 enum: 399 - qcom,sdm845-dsi-ctrl 399 - qcom,sdm845-dsi-ctrl 400 - qcom,sm6115-dsi-ctrl 400 - qcom,sm6115-dsi-ctrl 401 - qcom,sm6375-dsi-ctrl 401 - qcom,sm6375-dsi-ctrl 402 then: 402 then: 403 properties: 403 properties: 404 clocks: 404 clocks: 405 maxItems: 6 405 maxItems: 6 406 clock-names: 406 clock-names: 407 items: 407 items: 408 - const: byte 408 - const: byte 409 - const: byte_intf 409 - const: byte_intf 410 - const: pixel 410 - const: pixel 411 - const: core 411 - const: core 412 - const: iface 412 - const: iface 413 - const: bus 413 - const: bus 414 414 415 unevaluatedProperties: false 415 unevaluatedProperties: false 416 416 417 examples: 417 examples: 418 - | 418 - | 419 #include <dt-bindings/interrupt-controlle 419 #include <dt-bindings/interrupt-controller/arm-gic.h> 420 #include <dt-bindings/clock/qcom,dispcc-s 420 #include <dt-bindings/clock/qcom,dispcc-sdm845.h> 421 #include <dt-bindings/clock/qcom,gcc-sdm8 421 #include <dt-bindings/clock/qcom,gcc-sdm845.h> 422 #include <dt-bindings/power/qcom-rpmpd.h> 422 #include <dt-bindings/power/qcom-rpmpd.h> 423 423 424 dsi@ae94000 { 424 dsi@ae94000 { 425 compatible = "qcom,sc7180-dsi-ctrl" 425 compatible = "qcom,sc7180-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 426 reg = <0x0ae94000 0x400>; 426 reg = <0x0ae94000 0x400>; 427 reg-names = "dsi_ctrl"; 427 reg-names = "dsi_ctrl"; 428 428 429 #address-cells = <1>; 429 #address-cells = <1>; 430 #size-cells = <0>; 430 #size-cells = <0>; 431 431 432 interrupt-parent = <&mdss>; 432 interrupt-parent = <&mdss>; 433 interrupts = <4>; 433 interrupts = <4>; 434 434 435 clocks = <&dispcc DISP_CC_MDSS_BYTE 435 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 436 <&dispcc DISP_CC_MDSS_BYTE 436 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 437 <&dispcc DISP_CC_MDSS_PCLK 437 <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 438 <&dispcc DISP_CC_MDSS_ESC0 438 <&dispcc DISP_CC_MDSS_ESC0_CLK>, 439 <&dispcc DISP_CC_MDSS_AHB_ 439 <&dispcc DISP_CC_MDSS_AHB_CLK>, 440 <&dispcc DISP_CC_MDSS_AXI_ 440 <&dispcc DISP_CC_MDSS_AXI_CLK>; 441 clock-names = "byte", 441 clock-names = "byte", 442 "byte_intf", 442 "byte_intf", 443 "pixel", 443 "pixel", 444 "core", 444 "core", 445 "iface", 445 "iface", 446 "bus"; 446 "bus"; 447 447 448 phys = <&dsi0_phy>; 448 phys = <&dsi0_phy>; 449 phy-names = "dsi"; 449 phy-names = "dsi"; 450 450 451 assigned-clocks = <&dispcc DISP_CC_ 451 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 452 assigned-clock-parents = <&dsi_phy 452 assigned-clock-parents = <&dsi_phy 0>, <&dsi_phy 1>; 453 453 454 power-domains = <&rpmhpd SC7180_CX> 454 power-domains = <&rpmhpd SC7180_CX>; 455 operating-points-v2 = <&dsi_opp_tab 455 operating-points-v2 = <&dsi_opp_table>; 456 456 457 ports { 457 ports { 458 #address-cells = <1>; 458 #address-cells = <1>; 459 #size-cells = <0>; 459 #size-cells = <0>; 460 460 461 port@0 { 461 port@0 { 462 reg = <0>; 462 reg = <0>; 463 dsi0_in: endpoint { 463 dsi0_in: endpoint { 464 remote-endp 464 remote-endpoint = <&dpu_intf1_out>; 465 }; 465 }; 466 }; 466 }; 467 467 468 port@1 { 468 port@1 { 469 reg = <1>; 469 reg = <1>; 470 dsi0_out: endpoint { 470 dsi0_out: endpoint { 471 remote-endp 471 remote-endpoint = <&sn65dsi86_in>; 472 data-lanes 472 data-lanes = <0 1 2 3>; 473 qcom,te-sou 473 qcom,te-source = "mdp_vsync_e"; 474 }; 474 }; 475 }; 475 }; 476 }; 476 }; 477 }; 477 }; 478 ... 478 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.