From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751957AbbCJJdc (ORCPT ); Tue, 10 Mar 2015 05:33:32 -0400 Received: from bear.ext.ti.com ([192.94.94.41]:35235 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751408AbbCJJd3 (ORCPT ); Tue, 10 Mar 2015 05:33:29 -0400 Message-ID: <54FEBA64.3020102@ti.com> Date: Tue, 10 Mar 2015 11:33:24 +0200 From: Peter Ujfalusi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Mark Brown CC: "linux-kernel@vger.kernel.org" Subject: regmap: how to support devices with 'nested' pages Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Mark, I got a device which registers are arranged in 'books' and pages: book0 page0 page1 ... page127 book1 page0 page1 ... page127 ... book255 page0 page1 ... page127 The pages can be selected via register0 of each page (in a standard way), however the book switching can only be done via each book's page0's reg127. With regmap's ranges I can get the pages covered, but with that I can only stay within one book. At power on the chip is at book0, page0. If I want to access book0, page2: write 2 to reg0 // to switch to page2 access to the desired register in book0, page2 Now if I want to access let's say book3, page4: write 0 to reg0 // to switch to page0 of book0 write 3 to reg127 // to switch to book3 write 4 to reg0 // to switch to page4 of book3 access to the desired register Do you know any other device which have similar addressing? Do you have advice on how to handle this? Should I open code the book switching in the driver, which means that I should not use the cache at all in regmap. Thank you, Péter