firefly-linux-kernel-4.4.55.git
9 years agopvtm: rk3368: add pvtm_pmu clk support (output 32k)
dkl [Fri, 30 Jan 2015 06:57:59 +0000 (14:57 +0800)]
pvtm: rk3368: add pvtm_pmu clk support (output 32k)

Support pvtm_pmu output 32k clk. By default, 32k use xin32k,
and pvtm_pmu 32k clk is disabled.

Signed-off-by: dkl <dkl@rock-chips.com>
9 years agork3368 codec : add support for headset detection of es8316
smj [Fri, 6 Mar 2015 04:09:26 +0000 (12:09 +0800)]
rk3368 codec : add support for headset detection of es8316

Signed-off-by: smj <smj@rock-chips.com>
9 years agork3368: thermal: rockchip_thermal support rk3368
David Wu [Fri, 6 Mar 2015 03:00:46 +0000 (11:00 +0800)]
rk3368: thermal: rockchip_thermal support rk3368

Signed-off-by: David Wu <wdc@rock-chips.com>
9 years agork3368: thermal: sync form upstream for rockchip-thermal
David Wu [Fri, 6 Mar 2015 02:56:39 +0000 (10:56 +0800)]
rk3368: thermal: sync form upstream for rockchip-thermal

Signed-off-by: David Wu <wdc@rock-chips.com>
9 years agoMerge tag 'lsk-v3.10-android-15.02'
Huang, Tao [Thu, 5 Mar 2015 09:11:40 +0000 (17:11 +0800)]
Merge tag 'lsk-v3.10-android-15.02'

LSK Android 15.02 v3.10

Conflicts:
drivers/Kconfig
drivers/regulator/core.c
include/linux/of.h

9 years agoA mistaken dts property name, cause driver could
Alpha Lin [Thu, 5 Mar 2015 06:47:18 +0000 (14:47 +0800)]
A mistaken dts property name, cause driver could
not get the irq resource.

Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
9 years agoMerge branch develop-3.10
Huang, Tao [Thu, 5 Mar 2015 02:21:27 +0000 (10:21 +0800)]
Merge branch develop-3.10

Conflicts:
drivers/staging/android/ion/rockchip/rockchip_ion.c

9 years agowifi: update broadcom wifi driver bcmdhd to 1.201.34.2
hwg [Thu, 5 Mar 2015 00:46:05 +0000 (08:46 +0800)]
wifi: update broadcom wifi driver bcmdhd to 1.201.34.2

9 years agowifi: update broadcom wifi driver bcmdhd to 1.201.34.2
hwg [Thu, 5 Mar 2015 00:46:05 +0000 (08:46 +0800)]
wifi: update broadcom wifi driver bcmdhd to 1.201.34.2

9 years agocamsys_drv config y defaultly
dalon.zhang [Wed, 4 Mar 2015 14:11:03 +0000 (22:11 +0800)]
camsys_drv config y defaultly

9 years agodtsi: add rk3368 camera support
dalon.zhang [Sat, 28 Feb 2015 07:25:41 +0000 (15:25 +0800)]
dtsi: add rk3368 camera support

Signed-off-by: dalon.zhang <dalon.zhang@rock-chips.com>
9 years ago camera:
dalon.zhang [Wed, 4 Mar 2015 13:40:28 +0000 (21:40 +0800)]
camera:
camsys_drv: v0.0x1c.0
    oneframe: v0.2.0
    pingpong: v0.1.a

Conflicts:
drivers/media/video/rk_camsys/camsys_gpio.h
drivers/media/video/rk_camsys/camsys_internal.h
drivers/media/video/rk_camsys/camsys_soc_priv.c
include/linux/rockchip/cru.h

9 years agork3368: rk818: enable HDMI 5V
Jianqun Xu [Wed, 4 Mar 2015 10:30:30 +0000 (18:30 +0800)]
rk3368: rk818: enable HDMI 5V

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
9 years agork3368: rk818 battery: allow capacity to be negative value
Jianqun Xu [Wed, 4 Mar 2015 09:58:53 +0000 (17:58 +0800)]
rk3368: rk818 battery: allow capacity to be negative value

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
9 years agork3368 codec : fix the es8316 codec capture gain
smj [Wed, 4 Mar 2015 08:14:50 +0000 (16:14 +0800)]
rk3368 codec : fix the es8316 codec capture gain

Signed-off-by: smj <smj@rock-chips.com>
9 years agork fb: in no_dual mode, dsp parameter according to user setting
hjc [Wed, 4 Mar 2015 08:16:47 +0000 (16:16 +0800)]
rk fb: in no_dual mode, dsp parameter according to user setting

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork3368 lcdc: add support overscan
hjc [Wed, 4 Mar 2015 07:25:26 +0000 (15:25 +0800)]
rk3368 lcdc: add support overscan

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork3368-p9: backlight: Polarity reversal
guoyi [Wed, 4 Mar 2015 07:02:37 +0000 (15:02 +0800)]
rk3368-p9: backlight: Polarity reversal

9 years agoMerge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10
huang zhibao [Wed, 4 Mar 2015 03:04:47 +0000 (11:04 +0800)]
Merge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10

9 years agoadd support rk1000 codec and tvencoder
huang zhibao [Wed, 4 Mar 2015 02:52:18 +0000 (10:52 +0800)]
add support rk1000 codec and tvencoder

9 years agosupport different wifi bt chip auto compatible, modify
hwg [Wed, 4 Mar 2015 02:49:13 +0000 (10:49 +0800)]
support different wifi bt chip auto compatible, modify
 arch/arm64/boot/dts/rk3368-p9_818.dts, arch/arm64/boot/dts/rk3368-tb_8846.dts

9 years agoRevert "support different wifi bt chip auto compatible"
hwg [Wed, 4 Mar 2015 02:46:28 +0000 (10:46 +0800)]
Revert "support different wifi bt chip auto compatible"

This reverts commit 2506d1678c7f5ed228e2a7ed4130a5f9ede641db.

9 years agosupport different wifi bt chip auto compatible
hwg [Wed, 4 Mar 2015 02:44:44 +0000 (10:44 +0800)]
support different wifi bt chip auto compatible
 arch/arm64/boot/dts/rk3368-p9_818.dts
 arch/arm64/boot/dts/rk3368-tb_8846.dts

9 years agosolve make clean error causeed by wifi driver
hwg [Wed, 4 Mar 2015 02:37:27 +0000 (10:37 +0800)]
solve make clean error causeed by wifi driver

9 years agork: ion: fix compilation warning without CONFIG_COMPAT
CMY [Wed, 4 Mar 2015 01:27:51 +0000 (09:27 +0800)]
rk: ion: fix compilation warning without CONFIG_COMPAT

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork: ion: fix compilation error without CONFIG_COMPAT
Huang, Tao [Tue, 10 Feb 2015 08:48:02 +0000 (16:48 +0800)]
rk: ion: fix compilation error without CONFIG_COMPAT

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 52315d4d540dd3ef6db618b6856ceee0b5af8d98)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork: ion: fix compile warnning
CMY [Tue, 3 Mar 2015 05:56:52 +0000 (13:56 +0800)]
rk: ion: fix compile warnning

Signed-off-by: CMY <cmy@rock-chips.com>
(cherry picked from commit ee9707a058c52a0d0c27f5804db9e9e96075d363)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork: uboot_mem_reserve: lost a '=' in 'if' statement
CMY [Mon, 2 Mar 2015 07:42:55 +0000 (15:42 +0800)]
rk: uboot_mem_reserve: lost a '=' in 'if' statement
(cherry picked from commit b9721d0365d9e88d0c16c3f0c2aff4b2c09c9dec)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork: uboot_mem_reserve: fix print format
CMY [Mon, 2 Mar 2015 03:33:35 +0000 (11:33 +0800)]
rk: uboot_mem_reserve: fix print format

Signed-off-by: CMY <cmy@rock-chips.com>
(cherry picked from commit c9bbb3032c50e9b9ecaca58a4aa06ef4192bdbba)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork: ion: allow the cacheable buffer to map iommu
CMY [Fri, 27 Feb 2015 09:59:00 +0000 (17:59 +0800)]
rk: ion: allow the cacheable buffer to map iommu

Signed-off-by: CMY <cmy@rock-chips.com>
(cherry picked from commit db95a55ffa214b0bab8643454875a42d655a8ad7)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork: ion: assign sg's dma_length in ion allocation if CONFIG_NEED_SG_DMA_LENGTH is set
CMY [Sat, 14 Feb 2015 10:05:01 +0000 (18:05 +0800)]
rk: ion: assign sg's dma_length in ion allocation if CONFIG_NEED_SG_DMA_LENGTH is set
(cherry picked from commit c85ce1ade533fe0d02b7539dbe85d55b69386125)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agoARM64: ion: ION_IOC_GET_PHYS compat 32bit userspace app.
CMY [Wed, 7 Jan 2015 07:42:54 +0000 (15:42 +0800)]
ARM64: ion: ION_IOC_GET_PHYS compat 32bit userspace app.

Signed-off-by: CMY <cmy@rock-chips.com>
(cherry picked from commit 92ad540611e8599b7fb386a28793c77b410c81c6)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agoion: export ion_device for some kernel modules
CMY [Thu, 25 Dec 2014 03:39:38 +0000 (11:39 +0800)]
ion: export ion_device for some kernel modules
(cherry picked from commit c32433f1e0847cffdee4e0c04c6d8ee7d64392bc)

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agosolve make clean error causeed by wifi driver
hwg [Wed, 4 Mar 2015 02:37:27 +0000 (10:37 +0800)]
solve make clean error causeed by wifi driver

9 years agorfkill-wlan.c use CONFIG_MFD_SYSCON to compatible rk3368 and rk3288
hwg [Tue, 3 Mar 2015 09:56:58 +0000 (17:56 +0800)]
rfkill-wlan.c use CONFIG_MFD_SYSCON to compatible rk3368 and rk3288

9 years agoremove unused wifi driver: rda5990, mt5931, mt7601, mt6620
hwg [Sat, 28 Feb 2015 09:06:56 +0000 (17:06 +0800)]
remove unused wifi driver: rda5990, mt5931, mt7601, mt6620

9 years agosupport different wifi bt chip auto compatible
hwg [Sat, 28 Feb 2015 06:05:32 +0000 (14:05 +0800)]
support different wifi bt chip auto compatible
 like auto recognize rtl8188eu, ap6210, esp8089 in android

Conflicts:
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile
net/rfkill/rfkill-wlan.c

9 years agommc: rk_sdmmc: edmac limit FIFOTH when mburst exceed limitation
lintao [Tue, 3 Mar 2015 13:31:10 +0000 (21:31 +0800)]
mmc: rk_sdmmc: edmac limit FIFOTH when mburst exceed limitation

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agommc: rk_sdmmc: doesn't enforce hpclk to be used
lintao [Tue, 3 Mar 2015 13:09:54 +0000 (21:09 +0800)]
mmc: rk_sdmmc: doesn't enforce hpclk to be used

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agorfkill-wlan.c use CONFIG_MFD_SYSCON to compatible rk3368 and rk3288
hwg [Tue, 3 Mar 2015 09:56:58 +0000 (17:56 +0800)]
rfkill-wlan.c use CONFIG_MFD_SYSCON to compatible rk3368 and rk3288

9 years agorfkill-wlan.c: support rk3368
hwg [Thu, 12 Feb 2015 07:22:38 +0000 (15:22 +0800)]
rfkill-wlan.c: support rk3368

Conflicts:
net/rfkill/rfkill-wlan.c

9 years agoupdate rkwifi bcmdhd to version 1.201.34.1
hwg [Thu, 12 Feb 2015 07:21:52 +0000 (15:21 +0800)]
update rkwifi bcmdhd to version 1.201.34.1

Conflicts:
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile

9 years agork fb: if uboot logo not display, there is not need to poll blank and enable iommu
hjc [Tue, 3 Mar 2015 09:00:57 +0000 (17:00 +0800)]
rk fb: if uboot logo not display, there is not need to poll blank and enable iommu

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agommc: add hclk_mmc_peri for 3368
lintao [Tue, 3 Mar 2015 06:26:03 +0000 (14:26 +0800)]
mmc: add hclk_mmc_peri for 3368

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agork: ion: fix compile warnning
CMY [Tue, 3 Mar 2015 05:56:52 +0000 (13:56 +0800)]
rk: ion: fix compile warnning

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agoethernet: GMAC driver for RK3368
chenzhi [Tue, 3 Mar 2015 03:54:13 +0000 (11:54 +0800)]
ethernet: GMAC driver for RK3368

Signed-off-by: chenzhi <roger.chen@rock-chips.com>
9 years agommc: 3368: midgreed WA
lintao [Mon, 2 Mar 2015 10:11:11 +0000 (18:11 +0800)]
mmc: 3368: midgreed WA

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agork3368 mipi: fix the phase between the mipi clock and mipi data
chenyifu [Mon, 2 Mar 2015 09:03:57 +0000 (17:03 +0800)]
rk3368 mipi: fix the phase between the mipi clock and mipi data

The mipi screen may be no-display in rk3368 when the mipi rate
higher than 900M, so we need to fix the phase between the clock and data.

Signed-off-by: chenyifu <chenyf@rock-chips.com>
9 years agork3368 lcdc: init pixclock when uboot logo on is open, it is need by DSI
hjc [Mon, 2 Mar 2015 07:25:38 +0000 (15:25 +0800)]
rk3368 lcdc: init pixclock when uboot logo on is open, it is need by DSI

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork: uboot_mem_reserve: lost a '=' in 'if' statement
CMY [Mon, 2 Mar 2015 07:42:55 +0000 (15:42 +0800)]
rk: uboot_mem_reserve: lost a '=' in 'if' statement

9 years agoarm64: mm: reserve memory region for uboot
CMY [Mon, 2 Mar 2015 03:44:54 +0000 (11:44 +0800)]
arm64: mm: reserve memory region for uboot

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork: uboot_mem_reserve: fix print format
CMY [Mon, 2 Mar 2015 03:33:35 +0000 (11:33 +0800)]
rk: uboot_mem_reserve: fix print format

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agork3368: iommu: fix 32bit iommu work error in 64bit kernel
Simon [Tue, 6 Jan 2015 06:13:31 +0000 (14:13 +0800)]
rk3368: iommu: fix 32bit iommu work error in 64bit kernel

unsigned long has 8bytes in 64bit kernel,Maybach iommu each entry
both dte and pte has 4bytes,so we can not use unsigned long type
to define the entry address,otherwise,wrong page table will be set up,
that will cause page fault.So,replace unsigned long with unsigned int to
define the entry address

Signed-off-by: Simon <xxm@rock-chips.com>
9 years agork3368 codec : add support for codec es8316
smj [Mon, 2 Mar 2015 02:33:08 +0000 (10:33 +0800)]
rk3368 codec : add support for codec es8316

Signed-off-by: smj <smj@rock-chips.com>
9 years agommc: replace tSD enumaration machanism
lintao [Mon, 2 Mar 2015 01:25:57 +0000 (09:25 +0800)]
mmc: replace tSD enumaration machanism

Remove dt property "support-tSD" and combine "support-emmc" with
"support-sd" in together for tSD/emmc distinguish by mmc core. More details
please refer to arch/arm/boot/dts/rk3288-tb.dts

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agorockchip: i2s: use subysys_initcall_sync for probe.
Sugar Zhang [Mon, 2 Mar 2015 00:50:41 +0000 (08:50 +0800)]
rockchip: i2s: use subysys_initcall_sync for probe.

because some codecs initialization depends on i2s mclk.

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
9 years agocamsys_drv: v0.0x1c.0
dalon.zhang [Sat, 28 Feb 2015 11:16:21 +0000 (19:16 +0800)]
camsys_drv: v0.0x1c.0

9 years agocamera:
dalon.zhang [Sat, 28 Feb 2015 11:09:34 +0000 (19:09 +0800)]
camera:
oneframe: v0.2.0
pingpong: v0.1.a

9 years agoremove unused wifi driver: rda5990, mt5931, mt7601, mt6620
hwg [Sat, 28 Feb 2015 09:06:56 +0000 (17:06 +0800)]
remove unused wifi driver: rda5990, mt5931, mt7601, mt6620

9 years agork3368: p9_dts: add lcd_en delay time
guoyi [Sat, 28 Feb 2015 08:57:06 +0000 (16:57 +0800)]
rk3368: p9_dts: add lcd_en delay time

9 years agork3368 lcdc: fix fbdc addr config error
hjc [Sat, 28 Feb 2015 07:09:28 +0000 (15:09 +0800)]
rk3368 lcdc: fix fbdc addr config error

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agosupport different wifi bt chip auto compatible
hwg [Sat, 28 Feb 2015 06:05:32 +0000 (14:05 +0800)]
support different wifi bt chip auto compatible
 like auto recognize rtl8188eu, ap6210, esp8089 in android

9 years agosupport different wifi bt chip auto compatible
hwg [Sat, 28 Feb 2015 06:03:13 +0000 (14:03 +0800)]
support different wifi bt chip auto compatible
 modify arch/arm/boot/dts/rk3128-86v.dts

9 years agosupport different wifi bt chip auto compatible
hwg [Sat, 28 Feb 2015 06:02:56 +0000 (14:02 +0800)]
support different wifi bt chip auto compatible
 modify arch/arm/boot/dts/rk3126-86v.dts

9 years agosupport different wifi bt chip auto compatible
hwg [Sat, 28 Feb 2015 05:59:24 +0000 (13:59 +0800)]
support different wifi bt chip auto compatible
 Attention: this is only for android 5.0, not compatible for android 4.4, meaning can't compatible for 4.4 after this commit
 modify arch/arm/boot/dts/rk3288-tb_8846.dts

9 years agork: ion: allow the cacheable buffer to map iommu
CMY [Fri, 27 Feb 2015 09:59:00 +0000 (17:59 +0800)]
rk: ion: allow the cacheable buffer to map iommu

Signed-off-by: CMY <cmy@rock-chips.com>
9 years agoHDMI:
Zheng Yang [Sat, 14 Feb 2015 08:22:35 +0000 (16:22 +0800)]
HDMI:
1. In DVI mode, input color and output color should be RGB[0-255];
   In HDMI mode, input color should be YCbCr;
2. For MID, HDMI is default disabled.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agohdmi: hdmiv1:
Zheng Yang [Sat, 14 Feb 2015 01:14:18 +0000 (09:14 +0800)]
hdmi: hdmiv1:
For nlpcm bitstream mode, we need to set audio
channel status nlpcm bit to 1.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agohdmi: fix set hdmi switch state error when remove hdmi.
Zheng Yang [Sat, 14 Feb 2015 00:51:54 +0000 (08:51 +0800)]
hdmi: fix set hdmi switch state error when remove hdmi.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agork3368 lcdc: inter bak register will lead to clear
hjc [Fri, 27 Feb 2015 07:39:30 +0000 (15:39 +0800)]
rk3368 lcdc: inter bak register will lead to clear
    other inter status, so when we clear inter inter
    status we should set clear register to zero.

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork31xx lvds: set clock lane enable int ttl mode
hjc [Fri, 27 Feb 2015 03:50:10 +0000 (11:50 +0800)]
rk31xx lvds: set clock lane enable int ttl mode

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork_sdmmc: speed up MMC for 3368
lintao [Fri, 27 Feb 2015 03:19:15 +0000 (11:19 +0800)]
rk_sdmmc: speed up MMC for 3368

   Test with p9-818 board, without DM for ext4 mount option.

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agork fb: if uboot-logo-on set 1, open iommu when iommu en
hjc [Thu, 26 Feb 2015 10:27:40 +0000 (18:27 +0800)]
rk fb: if uboot-logo-on set 1, open iommu when iommu en

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork312x/rk3036: not change aclk_core_div for stability
dkl [Thu, 26 Feb 2015 01:44:34 +0000 (09:44 +0800)]
rk312x/rk3036: not change aclk_core_div for stability

In rk312x/rk3036, do not change aclk_core_div for stability.
Also remove some unusued macros and codes.

Signed-off-by: dkl <dkl@rock-chips.com>
9 years agoMerge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
Mark Brown [Sat, 21 Feb 2015 09:06:59 +0000 (18:06 +0900)]
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android

9 years agoMerge branch 'lsk/v3.10/topic/of' into linux-linaro-lsk
Mark Brown [Sat, 21 Feb 2015 03:16:39 +0000 (12:16 +0900)]
Merge branch 'lsk/v3.10/topic/of' into linux-linaro-lsk

9 years agoi2c: Mark instantiated device nodes with OF_POPULATE
Pantelis Antoniou [Thu, 15 Jan 2015 18:33:18 +0000 (20:33 +0200)]
i2c: Mark instantiated device nodes with OF_POPULATE

Mark (and unmark) device nodes with the POPULATE flag as appropriate.
This is required to avoid multi probing when using I2C and device
overlays containing a mux.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit 6d0a0d9ad09be16e3ca676b245643945b4bff47d)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/i2c/i2c-core.c

9 years agoi2c: Mark instantiated device nodes with OF_POPULATE
Pantelis Antoniou [Thu, 15 Jan 2015 16:33:55 +0000 (18:33 +0200)]
i2c: Mark instantiated device nodes with OF_POPULATE

Mark (and unmark) device nodes with the POPULATE flag as appropriate.
This is required to avoid multi probing when using I2C and device
overlays containing a mux.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit d5285c36e6d27c1a411a3131c034641a5fa452cb)
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoi2c/of: Add OF_RECONFIG notifier handler
Pantelis Antoniou [Tue, 28 Oct 2014 20:36:03 +0000 (22:36 +0200)]
i2c/of: Add OF_RECONFIG notifier handler

CONFIG_OF_DYNAMIC enables runtime changes to the device tree which in
turn may trigger addition or removal of devices from Linux. Add an
OF_RECONFIG notifier handler to receive tree change events and to
creating or destroy i2c devices as required.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
[grant.likely: clean up #ifdefs and drop unneeded error handling]
Signed-off-by: Grant Likely <grant.likely@linaro.org>
Reviewed-by: Wolfram Sang <wsa@the-dreams.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: linux-i2c@vger.kernel.org
(cherry picked from commit ea7513bbc04170f1cbf42953187a4d8b731c71c4)
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoi2c/of: Factor out Devicetree registration code
Pantelis Antoniou [Tue, 28 Oct 2014 20:36:02 +0000 (22:36 +0200)]
i2c/of: Factor out Devicetree registration code

Dynamically inserting i2c client device nodes requires the use
of a single device registration method. Factor out the loop body of
of_i2c_register_devices() so that it can be called for individual
device_nodes instead of for all the children of a node.

Note: The diff of this commit looks far more complicated than it
actually is due the indentation being changed for a large block of code.
When viewed using the diff -w flag to ignore whitespace changes it can
be seen that the change is actually quite simple.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
[grant.likely: Made new function static and removed changes to header]
Signed-off-by: Grant Likely <grant.likely@linaro.org>
Reviewed-by: Wolfram Sang <wsa@the-dreams.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: linux-i2c@vger.kernel.org
(cherry picked from commit a430a3455f2c48995e06b359a82a1109a419e9ef)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/i2c/i2c-core.c

9 years agoi2c: move OF helpers into the core
Wolfram Sang [Thu, 11 Jul 2013 11:56:15 +0000 (12:56 +0100)]
i2c: move OF helpers into the core

I2C of helpers used to live in of_i2c.c but experience (from SPI) shows
that it is much cleaner to have this in the core. This also removes a
circular dependency between the helpers and the core, and so we can
finally register child nodes in the core instead of doing this manually
in each driver. So, fix the drivers and documentation, too.

[Modified to keep a stub device registration API exposed to drivers in
order to avoid disruption]

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
(cherry picked from commit 687b81d083c082bc1e853032e3a2a54f8c251d27)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/i2c/busses/i2c-designware-platdrv.c
drivers/i2c/busses/i2c-imx.c
drivers/i2c/busses/i2c-stu300.c
drivers/i2c/busses/i2c-wmt.c
drivers/of/Kconfig
drivers/of/Makefile
drivers/staging/imx-drm/imx-tve.c
sound/soc/fsl/imx-wm8962.c

9 years agoMerge remote-tracking branch 'lsk/v3.10/topic/aosp' into linux-linaro-lsk-android
Mark Brown [Fri, 20 Feb 2015 05:29:33 +0000 (14:29 +0900)]
Merge remote-tracking branch 'lsk/v3.10/topic/aosp' into linux-linaro-lsk-android

Conflicts:
drivers/Kconfig
drivers/Makefile
fs/pstore/inode.c
fs/pstore/ram.c

9 years agoMerge branch 'linaro-android-3.10-lsk' of git://android.git.linaro.org/kernel/linaro...
Mark Brown [Fri, 20 Feb 2015 05:27:48 +0000 (14:27 +0900)]
Merge branch 'linaro-android-3.10-lsk' of git://android.git.linaro.org/kernel/linaro-android into lsk-v3.10-aosp

9 years agoMerge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
Mark Brown [Thu, 19 Feb 2015 10:17:15 +0000 (19:17 +0900)]
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android

9 years agoMerge remote-tracking branch 'lsk/v3.10/topic/of' into linux-linaro-lsk
Mark Brown [Thu, 19 Feb 2015 10:17:10 +0000 (19:17 +0900)]
Merge remote-tracking branch 'lsk/v3.10/topic/of' into linux-linaro-lsk

Conflicts:
drivers/of/Makefile

9 years agoof/overlay: Directly include idr.h
Mark Brown [Tue, 17 Feb 2015 02:35:02 +0000 (11:35 +0900)]
of/overlay: Directly include idr.h

The overlay code uses IDRs but does not explicitly include the header
providing the interface, instead relying on an implicit inclusion. Make
the dependency implict to avoid potential future build issues if the
implicit inclusion goes away.

Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoof/platform: Handle of_populate drivers in notifier
Pantelis Antoniou [Tue, 16 Dec 2014 17:45:26 +0000 (19:45 +0200)]
of/platform: Handle of_populate drivers in notifier

When using overlays with drivers calling of_populate the notifier
will try to create the device twice. Using the populated bit
before proceeding protects against this.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit 15204ab1ebc5aba608cd19c83c37b98438b938b0)
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoof/overlay: Do not generate duplicate nodes
Pantelis Antoniou [Tue, 16 Dec 2014 17:45:25 +0000 (19:45 +0200)]
of/overlay: Do not generate duplicate nodes

During the course of the rewrites a bug sneaked in when dealing
with children nodes of overlays, which ends up duplicating
sub nodes.

Simply remove the duplicate traversal of child nodes to fix.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit 3e7f7626fd49a9ffba8520a1a073f62929acad63)
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoof/overlay: Introduce DT overlay support
Pantelis Antoniou [Tue, 28 Oct 2014 20:35:58 +0000 (22:35 +0200)]
of/overlay: Introduce DT overlay support

Overlays are a method to dynamically modify part of the kernel's
device tree with dynamically loaded data. Add the core functionality to
parse, apply and remove an overlay changeset. The core functionality
takes care of managing the overlay data format and performing the add
and remove. Drivers are expected to use the overlay functionality to
support custom expansion busses commonly found on consumer development
boards like the BeagleBone or Raspberry Pi.

The overlay code uses CONFIG_OF_DYNAMIC changesets to perform the low
level work of modifying the devicetree.

Documentation about internal and APIs is provided in
Documentation/devicetree/overlay-notes.txt

v2:
- Switch from __of_node_alloc() to __of_node_dup()
- Documentation fixups
- Remove 2-pass processing of properties
- Remove separate ov_lock; just use the DT mutex.
v1:
- Drop delete capability using '-' prefix. The '-' prefixed names
are valid properties and nodes and there is no need for it just yet.
- Do not update special properties - name & phandle ones.
- Change order of node attachment, so that the special property update
works.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit 7518b5890d8ac366faa2326ce2356ef6392ce63d)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/of/Makefile

9 years agoof: Refactor __of_node_alloc() into __of_node_dup()
Grant Likely [Mon, 17 Nov 2014 22:31:32 +0000 (22:31 +0000)]
of: Refactor __of_node_alloc() into __of_node_dup()

Add a node argument to __of_node_alloc() and rename it to
__of_node_dup() so that it can also be used to duplicate a node with
its properties. This is important for the overlay code so that it can
create new nodes without using separate changeset items for every single
property.

At the same time rework the overlay code to use the new function and
drop the extra changeset items.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit e51795815ef1a7adc018cbaf05aac46e3d24eda8)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/of/unittest.c

9 years agoof: Use vargs in __of_node_alloc
Grant Likely [Fri, 14 Nov 2014 15:33:07 +0000 (15:33 +0000)]
of: Use vargs in __of_node_alloc

The overlay code needs to construct a new full_name from the parent name
and the node name, but the current method has to allocate and then free
an temporary string which is wasteful. Fix this problem by using vargs
to pass in a format and arguments into __of_node_alloc().

At the same time remove the allocflags argument to __of_node_alloc().
The only users all use GFP_KERNEL, so there is no need to provide it as
an option. If there is ever a need later it can be added back.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit ef8bbd73a76197cf8362a2b43aaadc5717bd0746)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/of/unittest.c

9 years agoof/reconfig: Add OF_DYNAMIC notifier for platform_bus_type
Pantelis Antoniou [Tue, 28 Oct 2014 20:36:01 +0000 (22:36 +0200)]
of/reconfig: Add OF_DYNAMIC notifier for platform_bus_type

Add OF notifier handler needed for creating/destroying platform devices
according to dynamic runtime changes in the DT live tree.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit 801d728c10db4b28e01590b46bf1f0df930760cc)
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoof/platform: Fix of_platform_device_destroy iteration of devices
Grant Likely [Tue, 24 Jun 2014 15:13:47 +0000 (16:13 +0100)]
of/platform: Fix of_platform_device_destroy iteration of devices

of_platform_destroy does not work properly, since the tree
population test was iterating on all devices having as its parent
the given platform device.

The check was intended to check whether any other platform or amba
devices created by of_platform_populate were still populated, but
instead checked for every kind of device. This is wrong, since platform
devices typically create a subsystem regular device and set themselves
as parents.

Instead, go ahead and call the unregister functions for any devices
created with of_platform_populate. The driver core will take care of
unbinding drivers, and drivers are responsible for getting rid of any
child devices that weren't created by of_platform_populate.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
(cherry picked from commit 75f353b61342b5847c7f6d8499fd6301dce09845)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
include/linux/of_platform.h

9 years agoof: Keep track of populated platform devices
Pawel Moll [Thu, 15 May 2014 15:55:24 +0000 (16:55 +0100)]
of: Keep track of populated platform devices

In "Device Tree powered" systems, platform devices are usually massively
populated with of_platform_populate() call, executed at some level of
initcalls, either by generic architecture or by platform-specific code.

There are situations though where certain devices must be created (and
bound with drivers) before all the others. This presents a challenge,
as devices created explicitly would be created again by
of_platform_populate().

This patch tries to solve that issue in a generic way, adding a
"populated" flag for a DT node description. Subsequent
of_platform_populate() will skip such nodes (and its children) in
a similar way to the non-available ones.

This patch also adds of_platform_depopulate() as an operation
complementary to the _populate() one. It removes a platform or an amba
device populated from the Device Tree, together with its all children
(leaving, however, devices without associated of_node untouched)
clearing the "populated" flag on the way.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit c6e126de43e7d4abfd6cf796b40589db3a046167)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/of/platform.c
include/linux/of_platform.h

9 years agoMerge remote-tracking branch 'lsk/v3.10/topic/of' into linux-linaro-lsk
Mark Brown [Mon, 16 Feb 2015 07:57:48 +0000 (16:57 +0900)]
Merge remote-tracking branch 'lsk/v3.10/topic/of' into linux-linaro-lsk

Conflicts:
arch/powerpc/kernel/prom.c
drivers/of/Kconfig
drivers/of/Makefile
drivers/of/selftest.c
include/linux/of.h

9 years agoof/reconfig: Always use the same structure for notifiers
Grant Likely [Mon, 24 Nov 2014 17:58:01 +0000 (17:58 +0000)]
of/reconfig: Always use the same structure for notifiers

The OF_RECONFIG notifier callback uses a different structure depending
on whether it is a node change or a property change. This is silly, and
not very safe. Rework the code to use the same data structure regardless
of the type of notifier.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Cc: <linuxppc-dev@lists.ozlabs.org>
(cherry picked from commit f5242e5a883bf1c1aba6bfd87b85e7dda0e62191)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
arch/powerpc/platforms/pseries/hotplug-memory.c
include/linux/of.h

9 years agoof/reconfig: Add debug output for OF_RECONFIG notifiers
Grant Likely [Fri, 14 Nov 2014 14:34:55 +0000 (14:34 +0000)]
of/reconfig: Add debug output for OF_RECONFIG notifiers

Add some additional debug output to cover OF_RECONFIG notifier activity.
At the same time, refactor the changeset debug output to use the same
strings as the notifier debug output.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit 00aa37206e1a54dae61a0dba96bf2ee0938b99d7)
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoof/reconfig: Add of_reconfig_get_state_change() of notifier helper.
Pantelis Antoniou [Tue, 28 Oct 2014 20:33:53 +0000 (22:33 +0200)]
of/reconfig: Add of_reconfig_get_state_change() of notifier helper.

Introduce of_reconfig_get_state_change() which allows an of notifier
to query about device state changes.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit b53a2340d0d30468b7315992ba77fe188c3bc5c8)
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoof/resolver: Switch to new local fixups format.
Pantelis Antoniou [Tue, 28 Oct 2014 20:33:49 +0000 (22:33 +0200)]
of/resolver: Switch to new local fixups format.

The original resolver format is way too cryptic, switch
to using a tree based format that gets rid of repetitions,
is more compact and readable.

At the same time, update the selftests to using the new local fixups
format.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
[grant.likely: Squashed in testcase changes and merged similar functions]
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit da56d04c806a3e9986c66a061d7363ca3157c37b)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/of/unittest-data/testcases.dts

9 years agoof: Introduce Device Tree resolve support.
Pantelis Antoniou [Fri, 4 Jul 2014 16:59:20 +0000 (19:59 +0300)]
of: Introduce Device Tree resolve support.

Introduce support for dynamic device tree resolution.
Using it, it is possible to prepare a device tree that's
been loaded on runtime to be modified and inserted at the kernel
live tree.

Export of of_resolve and bug fix of double free by
Guenter Roeck <groeck@juniper.net>

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
[grant.likely: Don't need to select CONFIG_OF_DYNAMIC and CONFIG_OF_DEVICE]
[grant.likely: Don't need to depend on OF or !SPARC]
[grant.likely: Factor out duplicate code blocks into single function]
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit 7941b27b16e3282f6ec8817e36492f1deec753a7)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/of/Kconfig
drivers/of/Makefile