Merge tag 'soc-fixes-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Nov 2022 19:14:09 +0000 (11:14 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Nov 2022 19:14:09 +0000 (11:14 -0800)
Pull ARM SoC fixes from Arnd Bergmann:
 "There are a bunch of late fixes that just came in, in particular a
  longer series for Rockchips devicetree files, but most of those just
  address cosmetic errors that were found during the binding validation.

  There are a couple of code changes:

   - A regression fix to the IXP42x PCI bus

   - A fix for a memory leak on optee, and another one for mach-mxs

   - Two fixes for the sunxi rsb bus driver, to address problems with
     the shutdown logic

  The rest are small but important devicetree fixes for a number of
  individual boards, addressing issues across all platforms:

   - arm global timer on older rockchip SoCs is unstable and needs to be
     disabled in favor of a more reliable clocksource

   - Corrections to fix bluetooth, mmc, and networking on a few Rockchip
     boards

   - at91/sam9g20ek UDC needs a pin controller config change

   - an omap board runs into mmc probe errors because of regulator nodes
     in the wrong place

   - imx8mp-evk has a minor inaccuracy with its pin config, but without
     user visible impact

   - The Allwinner H6 Hantro G2 video decoder needs an IOMMU reference
     to prevent the driver from crashing"

* tag 'soc-fixes-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (30 commits)
  bus: ixp4xx: Don't touch bit 7 on IXP42x
  ARM: dts: imx6q-prti6q: Fix ref/tcxo-clock-frequency properties
  arm64: dts: imx8mp-evk: correct pcie pad settings
  ARM: mxs: fix memory leak in mxs_machine_init()
  ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl
  tee: optee: fix possible memory leak in optee_register_device()
  arm64: dts: allwinner: h6: Add IOMMU reference to Hantro G2
  media: dt-bindings: allwinner: h6-vpu-g2: Add IOMMU reference property
  bus: sunxi-rsb: Support atomic transfers
  bus: sunxi-rsb: Remove the shutdown callback
  ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188
  arm64: dts: rockchip: Fix Pine64 Quartz4-B PMIC interrupt
  ARM: dts: am335x-pcm-953: Define fixed regulators in root node
  ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name
  arm64: dts: rockchip: fix ir-receiver node names
  ARM: dts: rockchip: fix ir-receiver node names
  arm64: dts: rockchip: fix adc-keys sub node names
  ARM: dts: rockchip: fix adc-keys sub node names
  arm: dts: rockchip: remove clock-frequency from rtc
  arm: dts: rockchip: fix node name for hym8563 rtc
  ...

45 files changed:
Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
arch/arm/boot/dts/am335x-pcm-953.dtsi
arch/arm/boot/dts/at91sam9g20ek_common.dtsi
arch/arm/boot/dts/imx6q-prti6q.dts
arch/arm/boot/dts/rk3036-evb.dts
arch/arm/boot/dts/rk3066a-mk808.dts
arch/arm/boot/dts/rk3188-radxarock.dts
arch/arm/boot/dts/rk3188.dtsi
arch/arm/boot/dts/rk3288-evb-act8846.dts
arch/arm/boot/dts/rk3288-evb.dtsi
arch/arm/boot/dts/rk3288-firefly.dtsi
arch/arm/boot/dts/rk3288-miqi.dts
arch/arm/boot/dts/rk3288-rock2-square.dts
arch/arm/boot/dts/rk3288-vmarc-som.dtsi
arch/arm/boot/dts/rk3xxx.dtsi
arch/arm/mach-mxs/mach-mxs.c
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
arch/arm64/boot/dts/freescale/imx8mp-evk.dts
arch/arm64/boot/dts/rockchip/px30-evb.dts
arch/arm64/boot/dts/rockchip/rk3308-evb.dts
arch/arm64/boot/dts/rockchip/rk3308-roc-cc.dts
arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts
arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts
arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts
arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts
arch/arm64/boot/dts/rockchip/rk3399pro-vmarc-som.dtsi
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
drivers/bus/intel-ixp4xx-eb.c
drivers/bus/sunxi-rsb.c
drivers/tee/optee/device.c

index 24d7bf21499e4f1c94ff2907be1059ede0dc6857..9d44236f2debdca6df9386ce5bf660d8b8a48c2f 100644 (file)
@@ -36,6 +36,9 @@ properties:
   resets:
     maxItems: 1
 
+  iommus:
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -43,6 +46,7 @@ required:
   - clocks
   - clock-names
   - resets
+  - iommus
 
 additionalProperties: false
 
@@ -59,6 +63,7 @@ examples:
         clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
         clock-names = "bus", "mod";
         resets = <&ccu RST_BUS_VP9>;
+        iommus = <&iommu 5>;
     };
 
 ...
index dae448040a97b4abfa39889728a661d4c335ba33..94749741397788b0cc4cbfa7425cdc75ab2452a4 100644 (file)
        compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx";
 
        /* Power */
-       regulators {
-               vcc3v3: fixedregulator@1 {
-                       compatible = "regulator-fixed";
-                       regulator-name = "vcc3v3";
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-boot-on;
-               };
+       vcc3v3: fixedregulator1 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+       };
 
-               vcc1v8: fixedregulator@2 {
-                       compatible = "regulator-fixed";
-                       regulator-name = "vcc1v8";
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-boot-on;
-               };
+       vcc1v8: fixedregulator2 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
        };
 
        /* User IO */
index 60d61291f34445142c31b511ad349948c517407b..024af2db638ebe10537ee358463ae60ed4ae3faf 100644 (file)
 
                                };
 
+                               usb1 {
+                                       pinctrl_usb1_vbus_gpio: usb1_vbus_gpio {
+                                               atmel,pins =
+                                                       <AT91_PIOC 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;   /* PC5 GPIO */
+                                       };
+                               };
+
                                mmc0_slot1 {
                                        pinctrl_board_mmc0_slot1: mmc0_slot1-board {
                                                atmel,pins =
@@ -84,6 +91,8 @@
                        };
 
                        usb1: gadget@fffa4000 {
+                               pinctrl-0 = <&pinctrl_usb1_vbus_gpio>;
+                               pinctrl-names = "default";
                                atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
index b4605edfd2ab807ec67153163860b23cc7d5d411..d8fa83effd63863f373cdf67697a1f780015d5e4 100644 (file)
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_wifi>;
                interrupts-extended = <&gpio1 30 IRQ_TYPE_LEVEL_HIGH>;
-               ref-clock-frequency = "38400000";
-               tcxo-clock-frequency = "19200000";
+               ref-clock-frequency = <38400000>;
+               tcxo-clock-frequency = <19200000>;
        };
 };
 
index 9fd4d9db9f8f67c665eefd4bc12fbb96b2f3f21e..becdc0b664bfa422f81e79d7bea076c20ab69732 100644 (file)
 &i2c1 {
        status = "okay";
 
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "xin32k";
        };
 };
index cfa318a506eb03c10afe4e07cba074203acd8177..2db5ba7062086c3d6c08ebd9363c6215ca1ff911 100644 (file)
@@ -32,7 +32,7 @@
                keyup-threshold-microvolt = <2500000>;
                poll-interval = <100>;
 
-               recovery {
+               button-recovery {
                        label = "recovery";
                        linux,code = <KEY_VENDOR>;
                        press-threshold-microvolt = <0>;
index e7cf18823558abb2c438176d0528cdf07555f393..118deacd38c4a6f6b86c960f2be626342a193087 100644 (file)
@@ -71,7 +71,7 @@
                #sound-dai-cells = <0>;
        };
 
-       ir_recv: gpio-ir-receiver {
+       ir_recv: ir-receiver {
                compatible = "gpio-ir-receiver";
                gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
index cdd4a0bd5133d45fbf33a8eaabe9cec82eaec350..44b54af0bbf9fa328b1c1917474945cc09b1102d 100644 (file)
                                rockchip,pins = <2 RK_PD3 1 &pcfg_pull_none>;
                        };
 
-                       lcdc1_rgb24: ldcd1-rgb24 {
+                       lcdc1_rgb24: lcdc1-rgb24 {
                                rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
                                                <2 RK_PA1 1 &pcfg_pull_none>,
                                                <2 RK_PA2 1 &pcfg_pull_none>,
 
 &global_timer {
        interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
-       status = "disabled";
 };
 
 &local_timer {
index be695b8c1f672eae4b51217acb1e716188e443df..8a635c243127418459dd3e899386326f194c42ae 100644 (file)
@@ -54,7 +54,7 @@
                vin-supply = <&vcc_sys>;
        };
 
-       hym8563@51 {
+       rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
 
index 399d6b9c5fd4bbc054619280e7d56bbef2834fd6..382d2839cf472c0a95b46c9d1901fba374e770fb 100644 (file)
                        press-threshold-microvolt = <300000>;
                };
 
-               menu {
+               button-menu {
                        label = "Menu";
                        linux,code = <KEY_MENU>;
                        press-threshold-microvolt = <640000>;
                };
 
-               esc {
+               button-esc {
                        label = "Esc";
                        linux,code = <KEY_ESC>;
                        press-threshold-microvolt = <1000000>;
                };
 
-               home  {
+               button-home  {
                        label = "Home";
                        linux,code = <KEY_HOME>;
                        press-threshold-microvolt = <1300000>;
index 052afe5543e2ada206a316669ee810c7d359ed47..3836c61cfb76138f529a236445023ee5e735220f 100644 (file)
                vin-supply = <&vcc_sys>;
        };
 
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "xin32k";
                interrupt-parent = <&gpio7>;
                interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
index 713f55e143c691a437513eca4d680a6bdcfe1e5b..db1eb648e0e1a21fd4ef3619a65190eed72a459e 100644 (file)
                vin-supply = <&vcc_sys>;
        };
 
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "xin32k";
        };
 
index 80e0f07c8e878a9a412f4db2bbf4652b65973bb1..13cfdaa95cc7d70c40d73cbfb3cfc5fd63342c74 100644 (file)
 };
 
 &i2c0 {
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "xin32k";
                interrupt-parent = <&gpio0>;
                interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
index 0ae2bd150e37287902b29fdb02155b0dcbf9d072..793951655b73b84812c8ac78898b299858514712 100644 (file)
                interrupt-parent = <&gpio5>;
                interrupts = <RK_PC3 IRQ_TYPE_LEVEL_LOW>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "hym8563";
                pinctrl-names = "default";
                pinctrl-0 = <&hym8563_int>;
index bf285091a9eb11b15d527218051043a726cd8dad..cb4e42ede56a9a93c3edc5bdbf01b4a576fe4596 100644 (file)
                reg = <0x1013c200 0x20>;
                interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
                clocks = <&cru CORE_PERI>;
+               status = "disabled";
+               /* The clock source and the sched_clock provided by the arm_global_timer
+                * on Rockchip rk3066a/rk3188 are quite unstable because their rates
+                * depend on the CPU frequency.
+                * Keep the arm_global_timer disabled in order to have the
+                * DW_APB_TIMER (rk3066a) or ROCKCHIP_TIMER (rk3188) selected by default.
+                */
        };
 
        local_timer: local-timer@1013c600 {
index 25c9d184fa4c6da8caef30bdac7306a0caef2165..1c57ac401649382f8db912a54d3d46c512656e44 100644 (file)
@@ -393,8 +393,10 @@ static void __init mxs_machine_init(void)
 
        root = of_find_node_by_path("/");
        ret = of_property_read_string(root, "model", &soc_dev_attr->machine);
-       if (ret)
+       if (ret) {
+               kfree(soc_dev_attr);
                return;
+       }
 
        soc_dev_attr->family = "Freescale MXS Family";
        soc_dev_attr->soc_id = mxs_get_soc_id();
index 53f6660656ac59ef98273edfbf1435786920bb91..ca1d287a0a01d981f12cccf5f990303085a60462 100644 (file)
                        clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
                        clock-names = "bus", "mod";
                        resets = <&ccu RST_BUS_VP9>;
+                       iommus = <&iommu 5>;
                };
 
                video-codec@1c0e000 {
index 9f1469db554d3e0f85c8dccc962726a20a722c64..b4c1ef2559f2045920504b3ff26669163fc70009 100644 (file)
 
        pinctrl_pcie0: pcie0grp {
                fsl,pins = <
-                       MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B    0x61 /* open drain, pull up */
-                       MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07      0x41
+                       MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B    0x60 /* open drain, pull up */
+                       MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07      0x40
                >;
        };
 
        pinctrl_pcie0_reg: pcie0reggrp {
                fsl,pins = <
-                       MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06      0x41
+                       MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06      0x40
                >;
        };
 
index 07008d84434c19a7331edc16ec3cea774bc65153..c1bbd555f5f5b2cc4b51456dbf459da86912f65e 100644 (file)
                keyup-threshold-microvolt = <1800000>;
                poll-interval = <100>;
 
-               esc-key {
+               button-esc {
                        label = "esc";
                        linux,code = <KEY_ESC>;
                        press-threshold-microvolt = <1310000>;
                };
 
-               home-key {
+               button-home {
                        label = "home";
                        linux,code = <KEY_HOME>;
                        press-threshold-microvolt = <624000>;
                };
 
-               menu-key {
+               button-menu {
                        label = "menu";
                        linux,code = <KEY_MENU>;
                        press-threshold-microvolt = <987000>;
                };
 
-               vol-down-key {
+               button-down {
                        label = "volume down";
                        linux,code = <KEY_VOLUMEDOWN>;
                        press-threshold-microvolt = <300000>;
                };
 
-               vol-up-key {
+               button-up {
                        label = "volume up";
                        linux,code = <KEY_VOLUMEUP>;
                        press-threshold-microvolt = <17000>;
index 9fe9b0d11003a8681b8317c2166ba24e14f0fedf..184b84fdde075a751b063e4b7784eea77b7efec0 100644 (file)
@@ -23,7 +23,7 @@
                poll-interval = <100>;
                keyup-threshold-microvolt = <1800000>;
 
-               func-key {
+               button-func {
                        linux,code = <KEY_FN>;
                        label = "function";
                        press-threshold-microvolt = <18000>;
                poll-interval = <100>;
                keyup-threshold-microvolt = <1800000>;
 
-               esc-key {
+               button-esc {
                        linux,code = <KEY_MICMUTE>;
                        label = "micmute";
                        press-threshold-microvolt = <1130000>;
                };
 
-               home-key {
+               button-home {
                        linux,code = <KEY_MODE>;
                        label = "mode";
                        press-threshold-microvolt = <901000>;
                };
 
-               menu-key {
+               button-menu {
                        linux,code = <KEY_PLAY>;
                        label = "play";
                        press-threshold-microvolt = <624000>;
                };
 
-               vol-down-key {
+               button-down {
                        linux,code = <KEY_VOLUMEDOWN>;
                        label = "volume down";
                        press-threshold-microvolt = <300000>;
                };
 
-               vol-up-key {
+               button-up {
                        linux,code = <KEY_VOLUMEUP>;
                        label = "volume up";
                        press-threshold-microvolt = <18000>;
index ea6820902ede0401ccc7161025084ddbed6c8b34..7ea48167747c62b606a6308b179161638e2411af 100644 (file)
@@ -19,7 +19,7 @@
                stdout-path = "serial2:1500000n8";
        };
 
-       ir_rx {
+       ir-receiver {
                compatible = "gpio-ir-receiver";
                gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
index 43c928ac98f0fb606c3bf6cde17187dee4446305..1deef53a4c9407694fa71184c9eb08d691cf9a62 100644 (file)
@@ -25,7 +25,7 @@
                keyup-threshold-microvolt = <1800000>;
                poll-interval = <100>;
 
-               recovery {
+               button-recovery {
                        label = "recovery";
                        linux,code = <KEY_VENDOR>;
                        press-threshold-microvolt = <17000>;
index 7f5bba0c600146f09b0e1b6ded04ca16b9e84375..81d1064fdb2154e7d8e9f74ef4c18597992d6f9e 100644 (file)
                vin-supply = <&vcc_sys>;
        };
 
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "xin32k";
                /* rtc_int is not connected */
        };
index 38d757c00548823ac83e13c610e1d583ba431346..5589f3db6b36b42053883073a03e13161ca53c70 100644 (file)
                vin-supply = <&vcc_sys>;
        };
 
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "xin32k";
                /* rtc_int is not connected */
        };
index ed3348b558f8e3b161a75aece6f32e249b1ad6d5..a47d9f758611e2dfc11894b0edc7ff0fc39445ce 100644 (file)
@@ -734,10 +734,6 @@ camera: &i2c7 {
 };
 
 /* PINCTRL OVERRIDES */
-&ec_ap_int_l {
-       rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
-};
-
 &ap_fw_wp {
        rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 };
index 2a332763c35cd4130816a2dee9ae8976cda5d039..9d9297bc5f04a051ebff86aa5f92fa1b98180c3a 100644 (file)
                keyup-threshold-microvolt = <1800000>;
                poll-interval = <100>;
 
-               recovery {
+               button-recovery {
                        label = "Recovery";
                        linux,code = <KEY_VENDOR>;
                        press-threshold-microvolt = <18000>;
index 452728b82e42c64788974e23894443a281e9f232..3bf8f959e42c4484532faf6e1613fed334309410 100644 (file)
@@ -39,7 +39,7 @@
                keyup-threshold-microvolt = <1800000>;
                poll-interval = <100>;
 
-               recovery {
+               button-recovery {
                        label = "Recovery";
                        linux,code = <KEY_VENDOR>;
                        press-threshold-microvolt = <18000>;
index 72182c58cc46aa17a644381aa7ab7890cb727541..65cb21837b0cac715ec9ce84c58755f1aa7a2119 100644 (file)
@@ -19,7 +19,7 @@
                keyup-threshold-microvolt = <1500000>;
                poll-interval = <100>;
 
-               recovery {
+               button-recovery {
                        label = "Recovery";
                        linux,code = <KEY_VENDOR>;
                        press-threshold-microvolt = <18000>;
index 278123b4f911195f579ff657cfa537d54af6369f..b6e082f1f6d9791bd910a31227c06004efc87644 100644 (file)
 };
 
 &emmc_phy {
+       rockchip,enable-strobe-pulldown;
        status = "okay";
 };
 
index 9e2e246e0bab7ced29257394bbcb41c2d009d924..dba4d03bfc2b84e4a373d1e30ab2f9c4e0cb9ba3 100644 (file)
                        press-threshold-microvolt = <300000>;
                };
 
-               back {
+               button-back {
                        label = "Back";
                        linux,code = <KEY_BACK>;
                        press-threshold-microvolt = <985000>;
                };
 
-               menu {
+               button-menu {
                        label = "Menu";
                        linux,code = <KEY_MENU>;
                        press-threshold-microvolt = <1314000>;
index 04c752f49be98dfb7db9662b3acbfd8e1a83eedd..115c14c0a3c68c44be5c2ed1dc772c5d1496910b 100644 (file)
        cap-sd-highspeed;
        cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
        disable-wp;
-       max-frequency = <150000000>;
+       max-frequency = <40000000>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        vmmc-supply = <&vcc3v3_baseboard>;
index 5a2661ae0131ce407ce7f2283f1e2ba91e68da7e..7ba1c28f70a9a86bdeeb3b6a5fab91b43d1c55b0 100644 (file)
 };
 
 &i2c0 {
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                interrupt-parent = <&gpio0>;
                interrupts = <RK_PA5 IRQ_TYPE_EDGE_FALLING>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "xin32k";
                pinctrl-names = "default";
                pinctrl-0 = <&hym8563_int>;
index 2f4b1b2e3ac7cc98d2995abea3bed15a9e8eb0b8..bbf1e3f245857452c01e4bb78f20aecab8d5f832 100644 (file)
@@ -41,7 +41,7 @@
                keyup-threshold-microvolt = <1500000>;
                poll-interval = <100>;
 
-               recovery {
+               button-recovery {
                        label = "Recovery";
                        linux,code = <KEY_VENDOR>;
                        press-threshold-microvolt = <18000>;
index 645ced6617a65380fedd729b5b8952769e1d4903..1f76d3501bda31fdbb66636c3562cd9e7f291b5a 100644 (file)
 &i2s1 {
        rockchip,playback-channels = <2>;
        rockchip,capture-channels = <2>;
-       status = "okay";
 };
 
 &i2s2 {
index 13927e7d0724ebb7995ce75a8f8a685fcbd38c32..dbec2b7173a0b677a032fa71b5d6e65e33a1ab24 100644 (file)
                        press-threshold-microvolt = <300000>;
                };
 
-               back {
+               button-back {
                        label = "Back";
                        linux,code = <KEY_BACK>;
                        press-threshold-microvolt = <985000>;
                };
 
-               menu {
+               button-menu {
                        label = "Menu";
                        linux,code = <KEY_MENU>;
                        press-threshold-microvolt = <1314000>;
index 935b8c68a71d6c60db9c8d8b9070809c852d8b27..bf9eb0405b62724ede3dea0a424ebb09b6f4523f 100644 (file)
        clock-frequency = <400000>;
        status = "okay";
 
-       hym8563: hym8563@51 {
+       hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "hym8563";
                pinctrl-names = "default";
                pinctrl-0 = <&hym8563_int>;
index 0d45868132b9d7e0da91405f0d346cc8514bc13a..8d61f824c12dc8cdb5627ec3344ee8708a3666ca 100644 (file)
@@ -23,7 +23,7 @@
                io-channel-names = "buttons";
                keyup-threshold-microvolt = <1750000>;
 
-               recovery {
+               button-recovery {
                        label = "recovery";
                        linux,code = <KEY_VENDOR>;
                        press-threshold-microvolt = <0>;
index a05460b924153ec3df73fb9e311096b9ed3e4f87..25a8c781f4e755fda3b7364ae514359a3cad422d 100644 (file)
 
 &uart1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;
+       pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
        status = "okay";
        uart-has-rtscts;
 
                compatible = "brcm,bcm43438-bt";
                clocks = <&rk817 1>;
                clock-names = "lpo";
-               device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
-               host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
                shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
                vbat-supply = <&vcc_sys>;
                vddio-supply = <&vcca1v8_pmu>;
+               max-speed = <3000000>;
        };
 };
 
index 77b179cd20e729d05e16c8af7fb2e596db572018..b276eb0810c70e692a6a3b6792480d77a8e618a4 100644 (file)
                compatible = "rockchip,rk809";
                reg = <0x20>;
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
                assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
                assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
                clock-names = "mclk";
index dba648c2f57e87294e8c7dc32b831dc3b13c02f7..9fd262334d77dad41bdf37092a74f715d2e018e8 100644 (file)
        assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
        assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
        clock_in_out = "input";
-       phy-mode = "rgmii-id";
+       phy-mode = "rgmii";
        phy-supply = <&vcc_3v3>;
        pinctrl-names = "default";
        pinctrl-0 = <&gmac1m0_miim
 
 &i2c3 {
        pinctrl-names = "default";
-       pinctrl-0 = <&i2c3m1_xfer>;
-       status = "okay";
-};
-
-&i2c5 {
+       pinctrl-0 = <&i2c3m0_xfer>;
        status = "okay";
 };
 
index c282f6e7996078da5c6dbcb1ad45a4e31f8b9b15..26d7fda275edb69d4d0b11144320282b05c95655 100644 (file)
                interrupt-parent = <&gpio0>;
                interrupts = <RK_PD3 IRQ_TYPE_EDGE_FALLING>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "rtcic_32kout";
                pinctrl-names = "default";
                pinctrl-0 = <&hym8563_int>;
index fb87a168fe9676e2cafd79dec8787a0301bba7a3..539ef8cc7792347074def4d98cc45d32b24bcfb5 100644 (file)
                interrupt-parent = <&gpio0>;
                interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
                #clock-cells = <0>;
-               clock-frequency = <32768>;
                clock-output-names = "rtcic_32kout";
                pinctrl-names = "default";
                pinctrl-0 = <&hym8563_int>;
index a4388440aca7a8def5f4aaa3ab0a3ddcff4ddcce..91db001eb69a639b53ce2980b372713b88ffb403 100644 (file)
@@ -49,7 +49,7 @@
 #define IXP4XX_EXP_SIZE_SHIFT          10
 #define IXP4XX_EXP_CNFG_0              BIT(9) /* Always zero */
 #define IXP43X_EXP_SYNC_INTEL          BIT(8) /* Only on IXP43x */
-#define IXP43X_EXP_EXP_CHIP            BIT(7) /* Only on IXP43x */
+#define IXP43X_EXP_EXP_CHIP            BIT(7) /* Only on IXP43x, dangerous to touch on IXP42x */
 #define IXP4XX_EXP_BYTE_RD16           BIT(6)
 #define IXP4XX_EXP_HRDY_POL            BIT(5) /* Only on IXP42x */
 #define IXP4XX_EXP_MUX_EN              BIT(4)
@@ -57,8 +57,6 @@
 #define IXP4XX_EXP_WORD                        BIT(2) /* Always zero */
 #define IXP4XX_EXP_WR_EN               BIT(1)
 #define IXP4XX_EXP_BYTE_EN             BIT(0)
-#define IXP42X_RESERVED                        (BIT(30)|IXP4XX_EXP_CNFG_0|BIT(8)|BIT(7)|IXP4XX_EXP_WORD)
-#define IXP43X_RESERVED                        (BIT(30)|IXP4XX_EXP_CNFG_0|BIT(5)|IXP4XX_EXP_WORD)
 
 #define IXP4XX_EXP_CNFG0               0x20
 #define IXP4XX_EXP_CNFG0_MEM_MAP       BIT(31)
@@ -252,10 +250,9 @@ static void ixp4xx_exp_setup_chipselect(struct ixp4xx_eb *eb,
                cs_cfg |= val << IXP4XX_EXP_CYC_TYPE_SHIFT;
        }
 
-       if (eb->is_42x)
-               cs_cfg &= ~IXP42X_RESERVED;
        if (eb->is_43x) {
-               cs_cfg &= ~IXP43X_RESERVED;
+               /* Should always be zero */
+               cs_cfg &= ~IXP4XX_EXP_WORD;
                /*
                 * This bit for Intel strata flash is currently unused, but let's
                 * report it if we find one.
index 4cd2e127946ead27ba3a0a8368ce7b138669e5c5..3aa91aed3bf733a4876e5d36c8badf13150a771b 100644 (file)
@@ -267,6 +267,9 @@ EXPORT_SYMBOL_GPL(sunxi_rsb_driver_register);
 /* common code that starts a transfer */
 static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb)
 {
+       u32 int_mask, status;
+       bool timeout;
+
        if (readl(rsb->regs + RSB_CTRL) & RSB_CTRL_START_TRANS) {
                dev_dbg(rsb->dev, "RSB transfer still in progress\n");
                return -EBUSY;
@@ -274,13 +277,23 @@ static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb)
 
        reinit_completion(&rsb->complete);
 
-       writel(RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER,
-              rsb->regs + RSB_INTE);
+       int_mask = RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER;
+       writel(int_mask, rsb->regs + RSB_INTE);
        writel(RSB_CTRL_START_TRANS | RSB_CTRL_GLOBAL_INT_ENB,
               rsb->regs + RSB_CTRL);
 
-       if (!wait_for_completion_io_timeout(&rsb->complete,
-                                           msecs_to_jiffies(100))) {
+       if (irqs_disabled()) {
+               timeout = readl_poll_timeout_atomic(rsb->regs + RSB_INTS,
+                                                   status, (status & int_mask),
+                                                   10, 100000);
+               writel(status, rsb->regs + RSB_INTS);
+       } else {
+               timeout = !wait_for_completion_io_timeout(&rsb->complete,
+                                                         msecs_to_jiffies(100));
+               status = rsb->status;
+       }
+
+       if (timeout) {
                dev_dbg(rsb->dev, "RSB timeout\n");
 
                /* abort the transfer */
@@ -292,18 +305,18 @@ static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb)
                return -ETIMEDOUT;
        }
 
-       if (rsb->status & RSB_INTS_LOAD_BSY) {
+       if (status & RSB_INTS_LOAD_BSY) {
                dev_dbg(rsb->dev, "RSB busy\n");
                return -EBUSY;
        }
 
-       if (rsb->status & RSB_INTS_TRANS_ERR) {
-               if (rsb->status & RSB_INTS_TRANS_ERR_ACK) {
+       if (status & RSB_INTS_TRANS_ERR) {
+               if (status & RSB_INTS_TRANS_ERR_ACK) {
                        dev_dbg(rsb->dev, "RSB slave nack\n");
                        return -EINVAL;
                }
 
-               if (rsb->status & RSB_INTS_TRANS_ERR_DATA) {
+               if (status & RSB_INTS_TRANS_ERR_DATA) {
                        dev_dbg(rsb->dev, "RSB transfer data error\n");
                        return -EIO;
                }
@@ -812,14 +825,6 @@ static int sunxi_rsb_remove(struct platform_device *pdev)
        return 0;
 }
 
-static void sunxi_rsb_shutdown(struct platform_device *pdev)
-{
-       struct sunxi_rsb *rsb = platform_get_drvdata(pdev);
-
-       pm_runtime_disable(&pdev->dev);
-       sunxi_rsb_hw_exit(rsb);
-}
-
 static const struct dev_pm_ops sunxi_rsb_dev_pm_ops = {
        SET_RUNTIME_PM_OPS(sunxi_rsb_runtime_suspend,
                           sunxi_rsb_runtime_resume, NULL)
@@ -835,7 +840,6 @@ MODULE_DEVICE_TABLE(of, sunxi_rsb_of_match_table);
 static struct platform_driver sunxi_rsb_driver = {
        .probe = sunxi_rsb_probe,
        .remove = sunxi_rsb_remove,
-       .shutdown = sunxi_rsb_shutdown,
        .driver = {
                .name = RSB_CTRL_NAME,
                .of_match_table = sunxi_rsb_of_match_table,
index f3947be13e2e52cb670cb05c4602bb357a5d5196..64f0e047c23d2a16d54099f486400eec8c361adf 100644 (file)
@@ -80,7 +80,7 @@ static int optee_register_device(const uuid_t *device_uuid)
        rc = device_register(&optee_device->dev);
        if (rc) {
                pr_err("device registration failed, err: %d\n", rc);
-               kfree(optee_device);
+               put_device(&optee_device->dev);
        }
 
        return rc;