MA35D1 FAQ-iic,EBI,

默认NAU8822IIC接口用GPIO-base的驱动,如何换成硬件IIC的驱动

修改dts配置文件,以som 256的camera为例,查看实际硬件连接的是i2C3:

&i2c_gpio0 {

        status = "disabled";

        hm1055@24 {

                compatible = "himax,hm1055";

                reg = <0x24>;

                pinctrl-names = "default";

                pinctrl-0 = <&pinctrl_ccap0>;

                clocks = <&clk CCAP0_GATE>;

                clock-names = "xclk";

                reset-gpios = <&gpiom 1 GPIO_ACTIVE_LOW>; /* PM1 */

                powerdown-gpios = <&gpiok 8 GPIO_ACTIVE_HIGH>; /* PK8 */

                port {

                        hm1055_0: endpoint {

                                remote-endpoint = <&ccap0_1>;

                        };

                };

        };

};

修改为:

&i2c3 {

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_i2c3>;

        hm1055@24 {

                compatible = "himax,hm1055";

                reg = <0x24>;

                pinctrl-names = "default";

                pinctrl-0 = <&pinctrl_ccap0>;

                clocks = <&clk CCAP0_GATE>;

                clock-names = "xclk";

                reset-gpios = <&gpiom 1 GPIO_ACTIVE_LOW>; /* PM1 */

                powerdown-gpios = <&gpiok 8 GPIO_ACTIVE_HIGH>; /* PK8 */

                port {

                        hm1055_0: endpoint {

                                remote-endpoint = <&ccap0_1>;

                        };

                };

        };

};

然后增加i2c3相关配置:

       i2c3 {

                pinctrl_i2c3: i2c3grp{

                        nuvoton,pins =

                                <SYS_GPM_MFPH_PM14MFP_I2C3_SDA   &pcfg_default>,

                                <SYS_GPM_MFPH_PM15MFP_I2C3_SCL   &pcfg_default>;

                };

        };

MA35D1】在IOT开发板的DTS基础上如何修改可以支持EBI接口

ma35d1-iot-512m.dts配置为例:

文件ma35d1.dtsi中有定义EBI,默认是disable的,如果需要打开,把status状态修改为“okay”

        ebi0: ebi@40100000 {

                compatible = "nuvoton,ma35d1-ebi";

                reg = <0x0 0x40100000 0x0 0x10>;

                bank = <0>;

                clock-enable = "ebi_gate";

                clock-names = "ebi_gate";

                clocks = <&clk EBI_GATE>;

                status = "disabled";

                busmode = <1>;//Address/Data Bus Separate Mode. 0:Disabled, 1:Enabled

                csactiveLevel = <0>;//0:Low, 1: High

                datawidth = <1>;//0:8bit, 1: 16bit

                MCLKDIV = <2>;//0 ~ 7,EBI_CTL0[10:8]

                tALE = <1>;//0 ~ 7,EBI_CTL0[18:16]

                tACC = <1>;//0 ~ 31, EBI_TCTLx[7:3]

                tAHD = <1>;//0 ~ 7, EBI_TCTLx[10:9]

                IDLE  = <3>;//0 ~ 15, EBI_TCTLx[27:24] and EBI_TCTLx[15:12]

        };

 

然后在文件ma35d1-iot-512m.dts中添加ebi 管脚配置(可以参考ma35d1-som-256m.dts):

&ebi0 {

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_ebi0_16bit>;

};

       ebi0 {

                pinctrl_ebi0_16bit: ebi0_16bitgrp{

                        nuvoton,pins =

                                <SYS_GPG_MFPH_PG11MFP_EBI_AD0           &pcfg_default>,

                                <SYS_GPG_MFPH_PG12MFP_EBI_AD1           &pcfg_default>,

                                <SYS_GPG_MFPH_PG13MFP_EBI_AD2           &pcfg_default>,

                                <SYS_GPG_MFPH_PG14MFP_EBI_AD3           &pcfg_default>,

                                <SYS_GPG_MFPH_PG15MFP_EBI_AD4           &pcfg_default>,

......

 

 

具体的管脚需要确认电路图有没有和其他模块复用,然后根据实际情况来配置管脚。

然后make linux-menuconfig,

打开ebi配置选项:Device Driver->Misc devices

找到Nuvoton MA35D1 EBI support并勾选这个

修改保存后make linux-rebuild

然后make

MA35D1】支持RGMIIRMII,在设备树应该如何配置?

在文件ma35d1.dtsi中原始配置默认的是千兆,即:phy-mode = "rgmii-id"

如需要修改,在对应的DTS文件中进行相应的配置,以ma35d1-som-256m.dts为例:

&gmac0 {

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_gmac0>;

};

没有重定义phy-mode,默认是1000M,如果要配置成100M,修改如下:

&gmac0 {

        status = "okay";

        phy-mode = "rmii";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_gmac0>;

};

备注:

100M:

phy-mode = "rmii";

1000M:

phy-mode = "rgmii-id";

MA35D1】如何修改配置让MT29F8G08ABACA NAND可以正常启动

nand flash 8G, page size 4K, 64pages/block, block size 256Kbytes

W29N08GVxxA flash 8G, page size 2K, 64pages, block size 128KB

1NuWriter:

header-nand.json:

{

    "header":

    {

        "version": "0x20210119",

        "spiinfo":

        {

            "pagesize": "4096",

            "sparearea": "224",

            "pageperblk": "64",

            "quadread": "0x6B",

            "readsts": "0x05",

            "writests": "0x01",

            "stsvalue": "0x02",

            "dummy1": "0",

            "dummy2": "1",

            "suspintvl": "1"

        },

        "secureboot": "no",

        "entrypoint": "0x28000000",

        "aeskey" : "5E76953BF598581F925B7995157844747FABE669ABF000345E0EE21B63624D59",

        "ecdsakey": "5E76953BF598581F925B7995157844747FABE669ABF000345E0EE21B63624D59",

        "image":

        [

            {

              "offset": "0x300000",

              "loadaddr": "0x28023000",

              "type": "3",

              "file": "bl2.dtb"

            },

            {

              "offset": "0x380000",

              "loadaddr": "0x28000000",

              "type": "4",

              "file": "bl2.bin"

            }

        ]

    }

}

pack-nand.json:

{

    "image":

    [

        {  

          "offset": "0x000000",

          "file": "header.bin",

          "type": 1

        },

        {

          "offset": "0x300000",

          "file": "bl2.dtb",

          "type": 0

        },

        {

          "offset": "0x380000",

          "file": "bl2.bin",

          "type": 0

        },

        {

          "offset": "0x400000",

          "file": "fip.bin-nand",

          "type": 1

        },

        {

          "offset": "0x600000",

          "file": "uboot-env.bin-nand",

          "type": 1

        },

        {

          "offset": "0x700000",

          "file": "Image.dtb",

          "type": 1

        },

        {

          "offset": "0x800000",

          "file": "Image",

          "type": 1

        },

        {

          "offset": "0x1C00000",

          "file": "rootfs.ubi",

          "type": 1

        }

    ]

}

2TFA:

ma35d1.dtsi:

        nand: nand@401A0000 {

                compatible = "nuvoton,ma35d1-nand";

                nand-on-flash-bbt;

                /* nand information */

                nand-ecc-strength = <8>;

                nand-ecc-step-size = <512>;

                nand-page-size = <4096>;

                nand-oob-size = <224>;

                nand-page-count = <64>;

                nand-block-count = <4096>;

                nand-image-offset = <0x400000>;

        };

3uboot:

CONFIG_NAND_BOOT=y

CONFIG_ENV_SIZE=0x100000

CONFIG_ENV_OFFSET=0x600000

CONFIG_MTDPARTS_DEFAULT="mtdparts=nand0:6m(uboot),1m(uboot-env),1m(device-tree),20m(kernel),100m(rootfs)"

4Linux:

ma35d1.dtsi:

                nand-ecc-strength = <8>;

                nand-ecc-step-size = <512>;

                nand-on-flash-bbt;

                partitions {

                        compatible = "fixed-partitions";

                        #address-cells = <1>;

                        #size-cells = <1>;

                        uboot@0 {

                                label = "nand-uboot";

                                reg = <0x0000000 0x600000>;

                                read-only;

                        };

                        uboot-env@600000 {

                                label = "nand-uboot-env";

                                reg = <0x600000 0x100000>;

                        };

                        device-tree@700000 {

                                label = "nand-device-tree";

                                reg = <0x700000 0x100000>;

                        };

                        kernel@800000 {

                                label = "nand-kernel";

                                reg = <0x800000 0x1400000>;

                        };

                        rootfs@1C00000 {

                                label = "nand-rootfs";

                                reg = <0x1C00000 0x6400000>;

                        };

                };

        };

5Rootfs:

BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000

BR2_TARGET_ROOTFS_UBI_SUBSIZE=4096

BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x3E000

BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x1000

BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=400

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值