VF61 - SPI CHIP select Issue in version 2.4

When we try to use chip select 2 from SPI port 1 the kernel crash and show the following messages:

[  671.631804] Unhandled fault: external abort on non-linefetch (0x1008) at 0x9007a014
[  671.639493] pgd = 80004000
[  671.642211] [9007a014] *pgd=8e005811, *pte=4002d653, *ppte=4002d453
[  671.648546] Internal error: : 1008 [#1] ARM
[  671.652735] Modules linked in:
[  671.655820] CPU: 0 PID: 44 Comm: spi1 Not tainted 4.0.2-v2.4b1+git+g3dc77db #1
[  671.663045] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
[  671.669496] task: 8e11a640 ti: 8e2f4000 task.ti: 8e2f4000
[  671.674920] PC is at regmap_mmio_read+0xe4/0x118
[  671.679558] LR is at clk_enable+0x34/0x3c
[  671.683577] pc : [<8033de38>]    lr : [<80444b04>]    psr: 60070093
[  671.683577] sp : 8e2f5da8  ip : 8e2f5d90  fp : 8e2f5dcc
[  671.695061] r10: 8e2f2a10  r9 : 80855e10  r8 : 8e2e5ac0
[  671.700296] r7 : 00000004  r6 : 8e2e5ac0  r5 : 8e2e5a00  r4 : 00000004
[  671.706830] r3 : 9007a014  r2 : 00000004  r1 : 00000014  r0 : 00000000
[  671.713368] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[  671.720768] Control: 10c5387d  Table: 8da24059  DAC: 00000015
[  671.726520] Process spi1 (pid: 44, stack limit = 0x8e2f4208)
[  671.732188] Stack: (0x8e2f5da8 to 0x8e2f6000)
[  671.736564] 5da0:                   00000000 8e2e9800 00000004 8e2e5ac0 8e2e5ac0 80855e10
[  671.744756] 5dc0: 8e2f5e04 8e2f5dd0 80339314 8033dd60 00000004 00000000 8084c358 00000014
[  671.752948] 5de0: 8e2f5e3c 8e2e9800 8e2e9800 8e2f5e6c 8e2f5e6c 8e2e9a00 8e2f5e24 8e2f5e08
[  671.761140] 5e00: 8033938c 80339270 8e2e9800 8e2e9800 00000014 8e2f5e6c 8e2f5e44 8e2f5e28
[  671.769333] 5e20: 80338d20 8033936c 8e2e9800 00000014 8e2f5e6c 8e2f2a10 8e2f5e64 8e2f5e48
[  671.777525] 5e40: 80338de0 80338cb8 8d93e600 8e2f2800 8d9afec0 8e2f2a10 8e2f5e9c 8e2f5e68
[  671.785718] 5e60: 8037d0bc 80338da4 10000000 8d9afec0 8e2f5e9c 8d93e600 8e2f2800 8d9afec0
[  671.793910] 5e80: 8d9afec0 8e2e9a00 80855e10 8e2f2a10 8e2f5eec 8e2f5ea0 8037d538 8037d098
[  671.802102] 5ea0: 8e2f5ed4 8e2f2800 80039434 8000989c 8e2fc01c 8e11a640 8084c358 00000000
[  671.810294] 5ec0: 8084ea38 a0070013 8e2f2800 8d9afec0 8e2f4000 8088ad30 00000000 00000000
[  671.818487] 5ee0: 8e2f5f2c 8e2f5ef0 8037b390 8037d400 8e2f5f14 8e2f5f00 8e04c000 8e11a640
[  671.826679] 5f00: 8e2f4000 8e2f4000 8e2f2994 8088ad30 8e2f4000 8088ad30 00000000 00000000
[  671.834872] 5f20: 8e2f5f3c 8e2f5f30 8037b5b0 8037b100 8e2f5f64 8e2f5f40 80038804 8037b5a4
[  671.843064] 5f40: 00000000 8e2e5dc0 8e2f2994 800387a8 00000000 00000000 8e2f5fac 8e2f5f68
[  671.851256] 5f60: 800389c8 800387b4 00000000 00000000 00000000 8e2f2994 00000000 8e2f5f7c
[  671.859449] 5f80: 8e2f5f7c 00000000 8e2f5f88 8e2f5f88 8e2e5dc0 800388ec 00000000 00000000
[  671.867641] 5fa0: 00000000 8e2f5fb0 8000e840 800388f8 00000000 00000000 00000000 00000000
[  671.875832] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  671.884024] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[  671.892202] Backtrace: 
[  671.894700] [<8033dd54>] (regmap_mmio_read) from [<80339314>] (_regmap_raw_read+0xb0/0xfc)
[  671.902967]  r9:80855e10 r8:8e2e5ac0 r7:8e2e5ac0 r6:00000004 r5:8e2e9800 r4:00000000
[  671.910811] [<80339264>] (_regmap_raw_read) from [<8033938c>] (_regmap_bus_read+0x2c/0x64)
[  671.919081]  r8:8e2e9a00 r7:8e2f5e6c r6:8e2f5e6c r5:8e2e9800 r4:8e2e9800
[  671.925875] [<80339360>] (_regmap_bus_read) from [<80338d20>] (_regmap_read+0x74/0xec)
[  671.933791]  r7:8e2f5e6c r6:00000014 r5:8e2e9800 r4:8e2e9800
[  671.939526] [<80338cac>] (_regmap_read) from [<80338de0>] (regmap_read+0x48/0x68)
[  671.947008]  r7:8e2f2a10 r6:8e2f5e6c r5:00000014 r4:8e2e9800
[  671.952755] [<80338d98>] (regmap_read) from [<8037d0bc>] (dspi_transfer_write+0x30/0x1e4)
[  671.960937]  r7:8e2f2a10 r6:8d9afec0 r5:8e2f2800 r4:8d93e600
[  671.966675] [<8037d08c>] (dspi_transfer_write) from [<8037d538>] (dspi_transfer_one_message+0x144/0x240)
[  671.976159]  r10:8e2f2a10 r9:80855e10 r8:8e2e9a00 r7:8d9afec0 r6:8d9afec0 r5:8e2f2800
[  671.984073]  r4:8d93e600
[  671.986636] [<8037d3f4>] (dspi_transfer_one_message) from [<8037b390>] (__spi_pump_messages+0x29c/0x4a4)
[  671.996119]  r10:00000000 r9:00000000 r8:8088ad30 r7:8e2f4000 r6:8d9afec0 r5:8e2f2800
[  672.004033]  r4:a0070013
[  672.006593] [<8037b0f4>] (__spi_pump_messages) from [<8037b5b0>] (spi_pump_messages+0x18/0x1c)
[  672.015211]  r10:00000000 r9:00000000 r8:8088ad30 r7:8e2f4000 r6:8088ad30 r5:8e2f2994
[  672.023125]  r4:8e2f4000
[  672.025695] [<8037b598>] (spi_pump_messages) from [<80038804>] (kthread_worker_fn+0x5c/0x144)
[  672.034245] [<800387a8>] (kthread_worker_fn) from [<800389c8>] (kthread+0xdc/0xf4)
[  672.041819]  r9:00000000 r8:00000000 r7:800387a8 r6:8e2f2994 r5:8e2e5dc0 r4:00000000
[  672.049669] [<800388ec>] (kthread) from [<8000e840>] (ret_from_fork+0x14/0x34)
[  672.056893]  r7:00000000 r6:00000000 r5:800388ec r4:8e2e5dc0
[  672.062625] Code: e5d81000 eaffffe5 e5953000 e0833001 (e5932000) 
[  672.068735] ---[ end trace 8e5978caa89477b0 ]---

These are the configuration of the SPI port 1 from device tree:

pinctrl_dspi1: dspi1grp {
			fsl,pins = <
				VF610_PAD_PTD5__DSPI1_CS0		0x33e2
				VF610_PAD_PTC30__DSPI1_CS2		0x33e2		// saida
				VF610_PAD_PTD6__DSPI1_SIN		0x33e1
				VF610_PAD_PTD7__DSPI1_SOUT		0x33e2
				VF610_PAD_PTD8__DSPI1_SCK		0x33e2
			>;
		};

&dspi1 {
	status = "okay";

	spidev12: dspi@2 {
		compatible = "spidev";
		reg = <2>;
		spi-max-frequency = <10000000>;
	};

If we change the configuration to Chip Select 0, we have no errors.

v2.4b1 is really a somewhat old release with the Linux 4.0 Kernel which is not a LTS version. I strongly suggest to move to v2.5b3 (release) which comes with Linux 4.1 or the latest Beta release (which uses Linux 4.4)… We are currently working on SPI DMA support for the Linux 4.4 and later.

As suggested in the comment, newer releases likely fix the issue. If you absolutely need to stay on 4.0, I guess commit spi-fsl-dspi: Fix CTAR Register access might fix your issue.