안녕하세요
imx6q칩을 사용하는데 WEIM을 사용하고 싶습니다.
DATASheet를 참고해서 devicetree를 수정했는데 cs0만 반응을 하고 cs1/cs2는 반응이 없습니다.
b_clk 핀에서 클럭도 나가게 설정했는데 오실로스코프로 측정해도 반응이 없습니다.
OE/RW/CS0 핀만 오실로스코프 사용시 신호가 변하는걸 확인 했습니다.
WEIM을 사용하기 위해서 다음과 같이 3가지 설정만 하면 되는지 궁금해서 질문합니다.
1. uboot -> IOMUX configurations
static iomux_v3_cfg_t mx6q_sabresd_pads[] = {....
/*Address Lines*/
MX6Q_PAD_EIM_DA0__WEIM_WEIM_DA_A_0,
MX6Q_PAD_EIM_DA1__WEIM_WEIM_DA_A_1,
...}
2. uboot -> IOMUXC_GPR1 설정
메모리 영역 설정을 위해서
3.Kernel->devicetree 수정
-메모리 맵 설정 -> ranges = <0 0 0x08000000 0x02000000 1 0 0x0a000000 0x02000000 ... >;
-타이밍 설정 -> fsl,weim-cs-timing = <0x31135387 0x00000000 0x10000000 0x00000000 0x10000000 0x00000000>;
ex)
&weim {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_weim_nor &pinctrl_weim_cs0 &pinctrl_weim_cs1 &pinctrl_weim_cs2 &pinctrl_weim_cs3>;
// weim memory map: 32MB on CS0, 32MB on CS1, 32MB on CS2
ranges = <0 0 0x08000000 0x02000000
1 0 0x0a000000 0x02000000
2 0 0x0c000000 0x02000000
3 0 0x0e000000 0x02000000
>;
fsl,weim-cs-gpr = <&gpr>;
// FPGA on CS1
fpga@0,0 {
compatible = "weim_fpga";
reg = <0 0 0x00010000>;
#address-cells = <1>;
#size-cells = <1>;
bank-width = <2>;
fsl,weim-cs-timing = <0x31135387 0x00000000 0x10000000
0x00000000 0x10000000 0x00000000>;
};
// FPGA on CS1
fpga@1,0 {
compatible = "weim_fpga";
reg = <1 0 0x00010000>;
#address-cells = <1>;
#size-cells = <1>;
bank-width = <2>;
fsl,weim-cs-timing = <0x01025007 0x00000000 0x10000000
0x00000000 0x10000000 0x00000000>;
};
};