diff --git a/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi b/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi new file mode 100644 index 00000000..577603a5 --- /dev/null +++ b/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi @@ -0,0 +1,191 @@ +/ { + ocp { + pruss2_eth { + status = "disabled"; + }; + uio_pruss1_mem: uio_pruss1_mem { + compatible = "ti,uio-module-drv"; + ti,hwmods = "pruss1"; + mem = <0x4b200000 0x2000>, + <0x4b202000 0x2000>, + <0x4b210000 0x8000>, + <0x4b220000 0x2000>, + <0x4b226000 0x2000>, + <0x4b22e000 0x31c>, + <0x4b232000 0x58>; + mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg", + "iep", "mii_rt"; + status = "okay"; + }; + uio_pruss1_evt0: uio_pruss1_evt0 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss1_evt1: uio_pruss1_evt1 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss1_evt2: uio_pruss1_evt2 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss1_evt3: uio_pruss1_evt3 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss1_evt4: uio_pruss1_evt4 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss1_evt5: uio_pruss1_evt5 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss1_evt6: uio_pruss1_evt6 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss1_evt7: uio_pruss1_evt7 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + + uio_pruss1_0_mem: uio_pruss1_0_mem { + compatible = "ti,uio-module-drv"; + mem = <0x4b234000 0x3000>, + <0x4b222000 0x400>, + <0x4b222400 0x100>; + mem-names = "iram", "control", "debug"; + status = "okay"; + }; + + uio_pruss1_1_mem: uio_pruss1_1_mem { + compatible = "ti,uio-module-drv"; + mem = <0x4b238000 0x3000>, + <0x4b224000 0x400>, + <0x4b224400 0x100>; + mem-names = "iram", "control", "debug"; + status = "okay"; + }; + + uio_pruss1_mdio: uio_pruss1_mdio { + compatible = "ti,uio-module-drv"; + mem = <0x4b232400 0x90>; + status = "okay"; + }; + + uio_pruss2_mem: uio_pruss2_mem { + compatible = "ti,uio-module-drv"; + ti,hwmods = "pruss2"; + mem = <0x4b280000 0x2000>, + <0x4b282000 0x2000>, + <0x4b290000 0x8000>, + <0x4b2a0000 0x2000>, + <0x4b2a6000 0x2000>, + <0x4b2ae000 0x31c>, + <0x4b2b2000 0x58>; + mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg", + "iep", "mii_rt"; + status = "okay"; + }; + uio_pruss2_evt0: uio_pruss2_evt0 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss2_evt1: uio_pruss2_evt1 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss2_evt2: uio_pruss2_evt2 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss2_evt3: uio_pruss2_evt3 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss2_evt4: uio_pruss2_evt4 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss2_evt5: uio_pruss2_evt5 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss2_evt6: uio_pruss2_evt6 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + uio_pruss2_evt7: uio_pruss2_evt7 { + compatible = "ti,uio-module-drv"; + interrupts = ; + status = "okay"; + }; + + uio_pruss2_0_mem: uio_pruss2_0_mem { + compatible = "ti,uio-module-drv"; + mem = <0x4b2b4000 0x3000>, + <0x4b2a2000 0x400>, + <0x4b2a2400 0x100>; + mem-names = "iram", "control", "debug"; + status = "okay"; + }; + uio_pruss2_1_mem: uio_pruss2_1_mem { + compatible = "ti,uio-module-drv"; + mem = <0x4b2b8000 0x3000>, + <0x4b2a4000 0x400>, + <0x4b2a4400 0x100>; + mem-names = "iram", "control", "debug"; + status = "okay"; + }; + uio_pruss2_mdio: uio_pruss2_mdio { + compatible = "ti,uio-module-drv"; + mem = <0x4b2b2400 0x90>; + mem-names = "mdio"; + status = "okay"; + }; + }; +}; + +&pruss1 { + status = "disabled"; +}; + +&pru1_0 { + status = "disabled"; +}; + +&pru1_1 { + status = "disabled"; +}; + +&pruss2 { + status = "disabled"; +}; + +&pru2_0 { + status = "disabled"; +}; + +&pru2_1 { + status = "disabled"; +}; + +&pruss2_mdio { + status = "disabled"; +}; diff --git a/recipes-kernel/linux/ti-uio.inc b/recipes-kernel/linux/ti-uio.inc index 776e4a43..f038bc8d 100644 --- a/recipes-kernel/linux/ti-uio.inc +++ b/recipes-kernel/linux/ti-uio.inc @@ -2,6 +2,7 @@ SRC_URI_append_keystone = " file://keystone-uio.dtsi" SRC_URI_append_k2hk-evm = " file://k2hk-uio.dtsi" SRC_URI_append_k2l-evm = " file://k2l-uio.dtsi" SRC_URI_append_k2e-evm = " file://k2e-uio.dtsi" +SRC_URI_append_am57xx-evm = " file://am572x-pru-uio.dtsi" DTSI_LIST = "" DTSI_LIST_append_keystone = " keystone-uio.dtsi" @@ -9,6 +10,8 @@ DTSI_LIST_append_k2hk-evm = " k2hk-uio.dtsi" DTSI_LIST_append_k2l-evm = " k2l-uio.dtsi" DTSI_LIST_append_k2e-evm = " k2e-uio.dtsi" +KERNEL_DEVICETREE_append_am57xx-evm = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am572x-idk-pru-excl-uio.dtb", "", d)}" + do_setup_uio() { if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ] then @@ -24,4 +27,16 @@ do_setup_uio() { fi } +do_setup_uio_append_am57xx-evm() { + + if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ] + then + dts="am572x-idk-pru-excl-uio.dts" + dtsi="am572x-pru-uio.dtsi" + cp ${S}/arch/arm/boot/dts/am572x-idk.dts ${S}/arch/arm/boot/dts/$dts + cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/ + echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts + fi +} + do_patch[postfuncs] += "do_setup_uio"