认识一下gpio pin和pinctrl服务

该文描述了RK3588平台上I2C2接口的状态及其与OV5695摄像头模块的连接配置,包括引脚复用、时钟设置、电源域以及GPIO控制的重置和电源使能信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认识一下设备树,认识设备树,不要理解为“连线”,理解为:我cpu有很多资源形成了SoC,各种控制器,引脚这些一堆,我再要把他们分配给外设用,在设备树中结构成一个个节点,节点里的说明是,我哪些资源给你用,哪些资源给他用,这些资源的属性怎样,然后你要在你自己的驱动中获得这些分配信息,用好这些分配给你的资源,当然你的驱动也是运行在我cpu上的,这就很牛B。你cpu就很NB,你SoC就很NB

&i2c2 {

    status = "okay";

    pinctrl-0 = <&i2c2m4_xfer>;//裸的gpio gpio0-4 共5组bank,每组bank 0-31 共32个pin,每个ping有0-7 8种复用共能

                               //i2c2m4_xfer 里描述了 现在用到哪个pin 哪个复用的功能,具体怎么实现复用和选取特定复用共能

                               //就靠pinctrl 服务系统提供

    ov5695_1: ov5695@36 {

        status = "okay";

        compatible = "ovti,ov5695";

        reg = <0x36>;

        clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;

        clock-names = "xvclk";

        power-domains = <&power RK3588_PD_VI>;

        pinctrl-names = "default";//pinctl的client 有一种状态 state: default,还可能有 sleep等,这里没有

        pinctrl-0 = <&mipim0_camera1_clk>;//第0个状态的名字是default,对应引脚在此定义:一组引脚mipim0_camera1_clk,位于rk3588-pinctl.dtsi中pinctl mipi节点中,在那里用rockchip,pins 属性制定了具体是哪些引脚

        reset-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_LOW>;//oringal//裸的gpio 使用是最纯粹的,没有pinctrl 包装MUX

        //reset-gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>;

        pwdn-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>;

        rockchip,camera-module-index = <0>;

        rockchip,camera-module-facing = "back";

        rockchip,camera-module-name = "default";

        rockchip,camera-module-lens-name = "default";

        port {

            ov5695_out_1: endpoint {

                remote-endpoint = <&mipi_in_ucam0>;

                data-lanes = <1 2>;

            };

        };

    };

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值