We are migrating from linux 3.10 to 4.14.
On our custom board we have an FPGA connected via SMC in the EBI block.
The goal is to steer this from the device tree and from there load a platform driver. For some reason the platform driver is not loaded in 4.14, whereas it was in 3.10.
In 3.10 we used the following code (snippet):
Code: Select all
hsmc0: hsmc@ffffc600 {
compatible = "atmel,sama5d3-hsmc";
reg = <0xffffc600 0x50>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x10000000 0x01000000
1 0 0x40000000 0x01000000>;
status = "okay";
p_s6@1,0 {
compatible = "agfa,p_s6";
reg = <1 0 0x00000400>;
#address-cells = <2>;
#size-cells = <1>;
ranges;
This is implemented in a file added in 'arch/arm/mach-at91' (with adapted Makefile to have it compiled into the kernel)
In the new device tree, there is a similar structure - full device tree available in patches
Code: Select all
ebi@ffffc600 {
compatible = "atmel,sama5d3-ebi";
#address-cells = <2>;
#size-cells = <1>;
atmel,smc = <&hsmc>;
reg = <0xffffc600 0x50>;
ranges = <
0 0 0x10000000 0x01000000
1 0 0x40000000 0x01000000>;
clocks = <&mck>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_s6>;
p_s6@1,0 {
compatible = "agfa,p_s6";
#address-cells = <2>;
#size-cells = <1>;
reg = <1 0 0x00000400>;
ranges;
I did try to move the 'p_s6' node to somewhere else - being higher in the tree hierarchy and not a child of the 'ebi' node. The platform driver is at lease probed then, but it requires the parent's clock so later on it fails.
So my question is: what am I missing to load the platform driver correctly?
Any suggestions on how I could trace or debug this situation are welcome.
Some words on the patches :
The board we use is called 'conios', this might help in understanding some namings,
Some preliminary tests were done on the development board 'sama5d31ek'.
From an architecture point of view there is a platform driver as interface to the fpga, for each subsystem in the fpga a dedicated driver exist (which will have to come later).
There is also a character driver to load the fpga image.
Thanks in advance.
Kr,
Bart.